Fixed Enum statement not accepting allowed symbols. 58/27658/2
authorTony Tkacik <ttkacik@cisco.com>
Wed, 30 Sep 2015 13:40:20 +0000 (15:40 +0200)
committerTony Tkacik <ttkacik@cisco.com>
Wed, 30 Sep 2015 14:30:12 +0000 (16:30 +0200)
Change-Id: I267e4f70d96d459f068553a7c265c9bc24d43006
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/EnumStatement.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/EnumStatementImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/EnumEffectiveStatementImpl.java

index 28373caadfbbcd9f4dad2aae3969432968df4271..b81b1dcacd7bda18f47ff970cce59c1e7e21df9f 100644 (file)
@@ -13,7 +13,7 @@ import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface EnumStatement extends DeclaredStatement<QName>, DocumentationGroup.WithStatus {
+public interface EnumStatement extends DeclaredStatement<String>, DocumentationGroup.WithStatus {
 
     @Nonnull
     String getName();
index 40f8454b1941ebd8335416a7562639c00ecc8677..2e96a0f8334aca3a2bd23f3756dfd3a2bc0139f9 100644 (file)
@@ -20,32 +20,33 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.type.EnumEffectiveStatementImpl;
 
-public class EnumStatementImpl extends AbstractDeclaredStatement<QName> implements EnumStatement {
+public class EnumStatementImpl extends AbstractDeclaredStatement<String> implements EnumStatement {
 
-    protected EnumStatementImpl(StmtContext<QName, EnumStatement, ?> context) {
+    protected EnumStatementImpl(StmtContext<String, EnumStatement, ?> context) {
         super(context);
     }
 
     public static class Definition extends
-            AbstractStatementSupport<QName, EnumStatement, EffectiveStatement<QName, EnumStatement>> {
+            AbstractStatementSupport<String, EnumStatement, EffectiveStatement<String, EnumStatement>> {
 
         public Definition() {
             super(Rfc6020Mapping.ENUM);
         }
 
         @Override
-        public QName parseArgumentValue(StmtContext<?, ?, ?> ctx, String value) {
-            return Utils.qNameFromArgument(ctx, value);
+        public String parseArgumentValue(StmtContext<?, ?, ?> ctx, String value) {
+            // FIXME: Checks for real value
+            return value;
         }
 
         @Override
-        public EnumStatement createDeclared(StmtContext<QName, EnumStatement, ?> ctx) {
+        public EnumStatement createDeclared(StmtContext<String, EnumStatement, ?> ctx) {
             return new EnumStatementImpl(ctx);
         }
 
         @Override
-        public EffectiveStatement<QName, EnumStatement> createEffective(
-                StmtContext<QName, EnumStatement, EffectiveStatement<QName, EnumStatement>> ctx) {
+        public EffectiveStatement<String, EnumStatement> createEffective(
+                StmtContext<String, EnumStatement, EffectiveStatement<String, EnumStatement>> ctx) {
             return new EnumEffectiveStatementImpl(ctx);
         }
 
@@ -68,7 +69,7 @@ public class EnumStatementImpl extends AbstractDeclaredStatement<QName> implemen
 
     @Override
     public String getName() {
-        return argument().getLocalName();
+        return argument();
     }
 
     @Override
index a3d5feddbc01e2d0a32da39173794edc7343553c..87c275b0921714775d9d720914a5cd920806ef44 100644 (file)
@@ -24,18 +24,16 @@ import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.ReferenceEf
 import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.StatusEffectiveStatementImpl;
 import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.ValueEffectiveStatementImpl;
 
-public class EnumEffectiveStatementImpl extends EffectiveStatementBase<QName, EnumStatement> implements EnumPair {
-    private final QName qName;
+public class EnumEffectiveStatementImpl extends EffectiveStatementBase<String, EnumStatement> implements EnumPair {
     private final SchemaPath path;
     private String description;
     private String reference;
     private Status status;
     private Integer value;
 
-    public EnumEffectiveStatementImpl(final StmtContext<QName, EnumStatement, ?> ctx) {
+    public EnumEffectiveStatementImpl(final StmtContext<String, EnumStatement, ?> ctx) {
         super(ctx);
 
-        qName = ctx.getStatementArgument();
         path = Utils.getSchemaPath(ctx);
 
         for (final EffectiveStatement<?,?> effectiveStatement : effectiveSubstatements()) {
@@ -56,7 +54,7 @@ public class EnumEffectiveStatementImpl extends EffectiveStatementBase<QName, En
 
     @Override
     public String getName() {
-        return qName.getLocalName();
+        return argument();
     }
 
     @Override
@@ -66,7 +64,7 @@ public class EnumEffectiveStatementImpl extends EffectiveStatementBase<QName, En
 
     @Override
     public QName getQName() {
-        return qName;
+        return getPath().getLastComponent();
     }
 
     @Override