From d5bca0aad14860826cd8661a8da09050a8f2fc6d Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 7 Feb 2018 16:50:05 +0100 Subject: [PATCH] Speed up whitespace replacement Rather than compiling a pattern, pre-compile it once and keep it around. Change-Id: Ibb1879d2546f731daa25e536ef45f48bde671f4f Signed-off-by: Robert Varga --- .../javav2/generator/impl/util/YangTextTemplate.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/util/YangTextTemplate.java b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/util/YangTextTemplate.java index bbb1463f61..8fe8c49aee 100644 --- a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/util/YangTextTemplate.java +++ b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/util/YangTextTemplate.java @@ -12,6 +12,8 @@ import com.google.common.base.CharMatcher; import com.google.common.base.Strings; import com.google.common.collect.Iterables; import java.util.StringTokenizer; +import java.util.regex.Pattern; +import javax.annotation.RegEx; import org.opendaylight.yangtools.yang.common.QName; /** @@ -20,6 +22,9 @@ import org.opendaylight.yangtools.yang.common.QName; @Beta public final class YangTextTemplate { private static final CharMatcher NEWLINE_OR_TAB = CharMatcher.anyOf("\n\t"); + @RegEx + private static final String SPACES_REGEX = " +"; + private static final Pattern SPACES_PATTERN = Pattern.compile(SPACES_REGEX); private YangTextTemplate() { throw new UnsupportedOperationException("Util class"); @@ -58,7 +63,7 @@ public final class YangTextTemplate { final StringBuilder lineBuilder = new StringBuilder(); final String lineIndent = Strings.repeat(" ", nextLineIndent); final String textToFormat = NEWLINE_OR_TAB.removeFrom(text); - final String formattedText = textToFormat.replaceAll(" +", " "); + final String formattedText = SPACES_PATTERN.matcher(textToFormat).replaceAll(" "); final StringTokenizer tokenizer = new StringTokenizer(formattedText, " ", true); while (tokenizer.hasMoreElements()) { -- 2.36.6