Move UnrecognizedStatement implementations
[yangtools.git] / yang / yang-model-ri / src / main / java / org / opendaylight / yangtools / yang / model / ri / stmt / DeclaredStatements.java
index 6ce0ebd369518a02f6c4b3355ef247c81d4b4bc7..c445ee2ba26d3a95688493cef2e95a54494259d3 100644 (file)
@@ -23,6 +23,7 @@ import org.opendaylight.yangtools.yang.model.api.DeviateKind;
 import org.opendaylight.yangtools.yang.model.api.PathExpression;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.model.api.stmt.ActionStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.AnydataStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlStatement;
@@ -31,6 +32,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.AugmentStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.BaseStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.BitStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.CaseStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ChoiceStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ConfigStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ContactStatement;
@@ -90,6 +92,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.UniqueStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.UnitsStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.UnrecognizedStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.UsesStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ValueRange;
 import org.opendaylight.yangtools.yang.model.api.stmt.ValueStatement;
@@ -107,6 +110,7 @@ import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.EmptyAugmentState
 import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.EmptyBaseStatement;
 import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.EmptyBelongsToStatement;
 import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.EmptyBitStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.EmptyCaseStatement;
 import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.EmptyChoiceStatement;
 import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.EmptyConfigStatement;
 import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.EmptyContactStatement;
@@ -171,6 +175,7 @@ import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.RegularAugmentSta
 import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.RegularBaseStatement;
 import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.RegularBelongsToStatement;
 import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.RegularBitStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.RegularCaseStatement;
 import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.RegularChoiceStatement;
 import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.RegularConfigStatement;
 import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.RegularContactStatement;
@@ -225,6 +230,7 @@ import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.RegularWhenStatem
 import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.RegularYangVersionStatement;
 import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.RegularYinElementStatement;
 import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.SubmoduleStatementImpl;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.UnrecognizedStatementImpl;
 import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression.QualifiedBound;
 
 /**
@@ -285,6 +291,12 @@ public final class DeclaredStatements {
             : new RegularBitStatement(argument, substatements);
     }
 
+    public static CaseStatement createCase(final QName argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? new EmptyCaseStatement(argument)
+            : new RegularCaseStatement(argument, substatements);
+    }
+
     public static ChoiceStatement createChoice(final QName argument,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
         return substatements.isEmpty() ? new EmptyChoiceStatement(argument)
@@ -630,10 +642,10 @@ public final class DeclaredStatements {
         return new SubmoduleStatementImpl(rawArgument, argument, substatements);
     }
 
-    public static TypeStatement createType(final String argument,
+    public static TypeStatement createType(final String rawArgument, final QName argument,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return substatements.isEmpty() ? new EmptyTypeStatement(argument)
-            : new RegularTypeStatement(argument, substatements);
+        return substatements.isEmpty() ? new EmptyTypeStatement(rawArgument, argument)
+            : new RegularTypeStatement(rawArgument, argument, substatements);
     }
 
     public static TypedefStatement createTypedef(final QName argument,
@@ -654,6 +666,12 @@ public final class DeclaredStatements {
             : new RegularUnitsStatement(argument, substatements);
     }
 
+    public static UnrecognizedStatement createUnrecognized(final String rawArgument,
+            final StatementDefinition publicDefinition,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return new UnrecognizedStatementImpl(rawArgument, publicDefinition, substatements);
+    }
+
     public static UsesStatement createUses(final String rawArgument, final QName argument,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
         return substatements.isEmpty() ?  new EmptyUsesStatement(rawArgument, argument)