Introduced ChildSchemaNodes namespace to parser
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / stmt / rfc6020 / KeyStatementImpl.java
index f80e0cd8c38d5ceab1a5a6489127e9bb373b410e..48f29b08f0f02e6c92d83af4ab822cd7df69dbc0 100644 (file)
@@ -7,11 +7,13 @@
  */
 package org.opendaylight.yangtools.yang.parser.stmt.rfc6020;
 
+import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
+
+import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.KeyEffectiveStatementImpl;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-
 import org.opendaylight.yangtools.yang.model.api.Rfc6020Mapping;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.KeyStatement;
@@ -20,7 +22,6 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
-
 import com.google.common.base.Splitter;
 
 public class KeyStatementImpl extends AbstractDeclaredStatement<Collection<SchemaNodeIdentifier>> implements
@@ -34,8 +35,6 @@ public class KeyStatementImpl extends AbstractDeclaredStatement<Collection<Schem
             extends
             AbstractStatementSupport<Collection<SchemaNodeIdentifier>, KeyStatement, EffectiveStatement<Collection<SchemaNodeIdentifier>, KeyStatement>> {
 
-        public static final char SEPARATOR = ' ';
-
         public Definition() {
             super(Rfc6020Mapping.KEY);
         }
@@ -44,7 +43,7 @@ public class KeyStatementImpl extends AbstractDeclaredStatement<Collection<Schem
         public Collection<SchemaNodeIdentifier> parseArgumentValue(StmtContext<?, ?, ?> ctx, String value)
                 throws SourceException {
 
-            Splitter keySplitter = Splitter.on(SEPARATOR).omitEmptyStrings().trimResults();
+            Splitter keySplitter = Splitter.on(StmtContextUtils.LIST_KEY_SEPARATOR).omitEmptyStrings().trimResults();
             List<String> keyTokens = keySplitter.splitToList(value);
 
             // to detect if key contains duplicates
@@ -57,7 +56,7 @@ public class KeyStatementImpl extends AbstractDeclaredStatement<Collection<Schem
             for (String keyToken : keyTokens) {
 
                 SchemaNodeIdentifier keyNode = SchemaNodeIdentifier
-                        .create(true, Utils.qNameFromArgument(ctx, keyToken));
+                        .create(false, Utils.qNameFromArgument(ctx, keyToken));
                 keyNodes.add(keyNode);
             }
 
@@ -72,7 +71,7 @@ public class KeyStatementImpl extends AbstractDeclaredStatement<Collection<Schem
         @Override
         public EffectiveStatement<Collection<SchemaNodeIdentifier>, KeyStatement> createEffective(
                 StmtContext<Collection<SchemaNodeIdentifier>, KeyStatement, EffectiveStatement<Collection<SchemaNodeIdentifier>, KeyStatement>> ctx) {
-            throw new UnsupportedOperationException();
+            return new KeyEffectiveStatementImpl(ctx);
         }
     }