Expose LIST_KEY_SPLITTER 56/27856/2
authorRobert Varga <rovarga@cisco.com>
Fri, 2 Oct 2015 23:06:22 +0000 (01:06 +0200)
committerRobert Varga <rovarga@cisco.com>
Sat, 3 Oct 2015 00:56:48 +0000 (02:56 +0200)
LIST_KEY_SEPARATOR is only ever used to instantiate a splitter, which is
what we already have a constant for. Remove LIST_KEY_SEPARATOR and make
its external user call LIST_KEY_SPLITTER, speeding it up.

Change-Id: I7144bd07903be4b2982f5341c5cdeb6956af5187
Signed-off-by: Robert Varga <rovarga@cisco.com>
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContextUtils.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/KeyStatementImpl.java

index 59863bdd7cd93c24d319f83283be3aa2c0fe07e6..f16937565aed6a584a6be3bac6857914ec0300e7 100644 (file)
@@ -22,9 +22,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
 import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.UnknownStatementImpl;
 
 public final class StmtContextUtils {
-
-    public static final char LIST_KEY_SEPARATOR = ' ';
-    private static final Splitter KEY_SPLITTER = Splitter.on(LIST_KEY_SEPARATOR).omitEmptyStrings().trimResults();
+    public static final Splitter LIST_KEY_SPLITTER = Splitter.on(' ').omitEmptyStrings().trimResults();
 
     private static final Function<StmtContext<?, ?,?>, DeclaredStatement<?>> BUILD_DECLARED =
             new Function<StmtContext<?,?,?>, DeclaredStatement<?>>() {
@@ -168,7 +166,7 @@ public final class StmtContextUtils {
             final QNameModule newQNameModule) {
 
         Set<SchemaNodeIdentifier> newKeys = new LinkedHashSet<>();
-        for (String keyToken : KEY_SPLITTER.split(keyStmtCtx.rawStatementArgument())) {
+        for (String keyToken : LIST_KEY_SPLITTER.split(keyStmtCtx.rawStatementArgument())) {
             final QName keyQName = QName.create(newQNameModule, keyToken);
             newKeys.add(SchemaNodeIdentifier.create(false, keyQName));
         }
index f05f259019c6cf7382a95a02bca35135858893ca..94d1049890bb3d99bd98c48c8966b9fbf466c44d 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.stmt.rfc6020;
 
-import com.google.common.base.Splitter;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
@@ -27,7 +26,7 @@ import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.KeyEffectiv
 public class KeyStatementImpl extends AbstractDeclaredStatement<Collection<SchemaNodeIdentifier>> implements
         KeyStatement {
 
-    protected KeyStatementImpl(StmtContext<Collection<SchemaNodeIdentifier>, KeyStatement, ?> context) {
+    protected KeyStatementImpl(final StmtContext<Collection<SchemaNodeIdentifier>, KeyStatement, ?> context) {
         super(context);
     }
 
@@ -40,37 +39,33 @@ public class KeyStatementImpl extends AbstractDeclaredStatement<Collection<Schem
         }
 
         @Override
-        public Collection<SchemaNodeIdentifier> parseArgumentValue(StmtContext<?, ?, ?> ctx, String value)
+        public Collection<SchemaNodeIdentifier> parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value)
                 throws SourceException {
 
-            Splitter keySplitter = Splitter.on(StmtContextUtils.LIST_KEY_SEPARATOR).omitEmptyStrings().trimResults();
-            List<String> keyTokens = keySplitter.splitToList(value);
+            final List<String> keyTokens = StmtContextUtils.LIST_KEY_SPLITTER.splitToList(value);
 
             // to detect if key contains duplicates
             if ((new HashSet<>(keyTokens)).size() < keyTokens.size()) {
                 throw new IllegalArgumentException();
             }
 
+            // FIXME: would an ImmutableSetBuilder be better?
             Set<SchemaNodeIdentifier> keyNodes = new LinkedHashSet<>();
-
             for (String keyToken : keyTokens) {
-
-                SchemaNodeIdentifier keyNode = SchemaNodeIdentifier
-                        .create(false, Utils.qNameFromArgument(ctx, keyToken));
-                keyNodes.add(keyNode);
+                keyNodes.add(SchemaNodeIdentifier.create(false, Utils.qNameFromArgument(ctx, keyToken)));
             }
 
             return keyNodes;
         }
 
         @Override
-        public KeyStatement createDeclared(StmtContext<Collection<SchemaNodeIdentifier>, KeyStatement, ?> ctx) {
+        public KeyStatement createDeclared(final StmtContext<Collection<SchemaNodeIdentifier>, KeyStatement, ?> ctx) {
             return new KeyStatementImpl(ctx);
         }
 
         @Override
         public EffectiveStatement<Collection<SchemaNodeIdentifier>, KeyStatement> createEffective(
-                StmtContext<Collection<SchemaNodeIdentifier>, KeyStatement, EffectiveStatement<Collection<SchemaNodeIdentifier>, KeyStatement>> ctx) {
+                final StmtContext<Collection<SchemaNodeIdentifier>, KeyStatement, EffectiveStatement<Collection<SchemaNodeIdentifier>, KeyStatement>> ctx) {
             return new KeyEffectiveStatementImpl(ctx);
         }
     }