Optimize JavaIdentifierNormalizer.convertFirst() 48/60448/2
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 5 Jul 2017 09:23:35 +0000 (11:23 +0200)
committerRobert Varga <nite@hq.sk>
Mon, 17 Jul 2017 08:07:54 +0000 (08:07 +0000)
Rather than fiddling around with temporary strings, perform a direct
replacement capabilities of CharMatcher with two possible matches.

Change-Id: I50c4f229ef38dcd9327da183372fc5e6d7c2faf3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 50d9f2ba56f265b5b0b1a19e67ad569ecabf61c3)

binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/JavaIdentifierNormalizer.java

index 44cb795778f765e1f83155107fb004667aca668f..3c478051fda276a13478b5029c29ea4c1de78a3a 100644 (file)
@@ -215,6 +215,7 @@ public final class JavaIdentifierNormalizer {
     private static final Set<String> PRIMITIVE_TYPES = ImmutableSet.of("char[]", "byte[]");
 
     private static final CharMatcher DASH_MATCHER = CharMatcher.is(DASH);
+    private static final CharMatcher DASH_OR_SPACE_MATCHER = CharMatcher.anyOf(" -");
     private static final Splitter DOT_SPLITTER = Splitter.on('.');
 
     private JavaIdentifierNormalizer() {
@@ -526,12 +527,8 @@ public final class JavaIdentifierNormalizer {
      * @return converted char
      */
     private static String convertFirst(final char c, final boolean existNext) {
-        String name = Character.getName(c);
-        if (name.contains(String.valueOf(DASH))) {
-            name = name.replaceAll(String.valueOf(DASH), String.valueOf(UNDERSCORE));
-        }
-        name = existNext ? name + "_" : name;
-        return name.contains(" ") ? name.replaceAll(" ", "_") : name;
+        final String name = DASH_OR_SPACE_MATCHER.replaceFrom(Character.getName(c), UNDERSCORE);
+        return existNext ? name + '_' : name;
     }
 
     /**