Promote declared statements to yang-parser-spi 83/95083/2
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 8 Feb 2021 21:24:05 +0000 (22:24 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 8 Feb 2021 22:13:27 +0000 (23:13 +0100)
Declared statements are extremely simplistic, move their RFC7950
implementations to yang-model-spi. This is the first batch of
conversion, with more to follow.

JIRA: YANGTOOLS-1226
Change-Id: I49b7840cfa6395496db3475853230c527bd252ec
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
45 files changed:
yang/yang-model-spi/src/main/java/module-info.java
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/AbstractStatusStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/status/AbstractStatusStatement.java with 94% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/DeclaredStatements.java [new file with mode: 0644]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyActionStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/action/EmptyActionStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyAnydataStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/anydata/EmptyAnydataStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyAnyxmlStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/anyxml/EmptyAnyxmlStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyArgumentStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/argument/EmptyArgumentStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyAugmentStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/augment/EmptyAugmentStatement.java with 92% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyBaseStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/base/EmptyBaseStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyBelongsToStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/belongs_to/EmptyBelongsToStatement.java with 90% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyBitStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/bit/EmptyBitStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyChoiceStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/choice/EmptyChoiceStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyConfigStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/config/EmptyConfigStatement.java with 90% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyContainerStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/container/EmptyContainerStatement.java with 90% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyDefaultStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/default_/EmptyDefaultStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyDescriptionStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/description/EmptyDescriptionStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyStatusStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/status/EmptyStatusStatement.java with 88% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularActionStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/action/RegularActionStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularAnydataStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/anydata/RegularAnydataStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularAnyxmlStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/anyxml/RegularAnyxmlStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularArgumentStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/argument/RegularArgumentStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularAugmentStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/augment/RegularAugmentStatement.java with 94% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularBaseStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/base/RegularBaseStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularBelongsToStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/belongs_to/RegularBelongsToStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularBitStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/bit/RegularBitStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularChoiceStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/choice/RegularChoiceStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularConfigStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/config/RegularConfigStatement.java with 92% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularContainerStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/container/RegularContainerStatement.java with 92% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularDefaultStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/default_/RegularDefaultStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularDescriptionStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/description/RegularDescriptionStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularStatusStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/status/RegularStatusStatement.java with 93% similarity]
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/action/ActionStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/anydata/AnydataStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/anyxml/AnyxmlStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/argument/ArgumentStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/augment/AbstractAugmentStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/base/BaseStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/belongs_to/BelongsToStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/bit/BitStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/choice/ChoiceStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/config/ConfigStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/container/ContainerStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/default_/DefaultStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/description/DescriptionStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/status/StatusStatementSupport.java

index d60aa86f14ed9df62fece4a33783cfb23162d4e6..075adbb0f7b803896aa3d7c97319cc918d7d9bb5 100644 (file)
@@ -7,6 +7,7 @@
  */
 module org.opendaylight.yangtools.yang.model.spi {
     exports org.opendaylight.yangtools.yang.model.spi.meta;
+    exports org.opendaylight.yangtools.yang.model.spi.stmt;
     exports org.opendaylight.yangtools.yang.model.spi.type;
 
     requires transitive org.opendaylight.yangtools.yang.model.api;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.status;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import static java.util.Objects.requireNonNull;
 
diff --git a/yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/DeclaredStatements.java b/yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/DeclaredStatements.java
new file mode 100644 (file)
index 0000000..577de13
--- /dev/null
@@ -0,0 +1,172 @@
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.yangtools.yang.model.spi.stmt;
+
+import com.google.common.annotations.Beta;
+import com.google.common.collect.ImmutableList;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.Status;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+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;
+import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentStatement;
+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.ChoiceStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ConfigStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ContainerStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
+import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
+
+/**
+ * Static entry point to instantiating {@link DeclaredStatement} covered in the {@code RFC7950} metamodel.
+ */
+@Beta
+@NonNullByDefault
+public final class DeclaredStatements {
+    private DeclaredStatements() {
+        // Hidden on purpose
+    }
+
+    public static ActionStatement createAction(final QName argument) {
+        return new EmptyActionStatement(argument);
+    }
+
+    public static ActionStatement createAction(final QName argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createAction(argument) : new RegularActionStatement(argument, substatements);
+    }
+
+    public static AnydataStatement createAnydata(final QName argument) {
+        return new EmptyAnydataStatement(argument);
+    }
+
+    public static AnydataStatement createAnydata(final QName argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createAnydata(argument) : new RegularAnydataStatement(argument, substatements);
+    }
+
+    public static AnyxmlStatement createAnyxml(final QName argument) {
+        return new EmptyAnyxmlStatement(argument);
+    }
+
+    public static AnyxmlStatement createAnyxml(final QName argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createAnyxml(argument) : new RegularAnyxmlStatement(argument, substatements);
+    }
+
+    public static ArgumentStatement createArgument(final QName argument) {
+        return new EmptyArgumentStatement(argument);
+    }
+
+    public static ArgumentStatement createArgument(final QName argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createArgument(argument)
+            : new RegularArgumentStatement(argument, substatements);
+    }
+
+    public static AugmentStatement createAugment(final String rawArgument, final SchemaNodeIdentifier argument) {
+        return new EmptyAugmentStatement(rawArgument, argument);
+    }
+
+    public static AugmentStatement createAugment(final String rawArgument, final SchemaNodeIdentifier argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createAugment(rawArgument, argument)
+            : new RegularAugmentStatement(rawArgument, argument, substatements);
+    }
+
+    public static BaseStatement createBase(final QName argument) {
+        return new EmptyBaseStatement(argument);
+    }
+
+    public static BaseStatement createBase(final QName argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createBase(argument) : new RegularBaseStatement(argument, substatements);
+    }
+
+    public static BelongsToStatement createBelongsTo(final String argument) {
+        return new EmptyBelongsToStatement(argument);
+    }
+
+    public static BelongsToStatement createBelongsTo(final String argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createBelongsTo(argument)
+            : new RegularBelongsToStatement(argument, substatements);
+    }
+
+    public static BitStatement createBit(final String argument) {
+        return new EmptyBitStatement(argument);
+    }
+
+    public static BitStatement createBit(final String argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createBit(argument) : new RegularBitStatement(argument, substatements);
+    }
+
+    public static ChoiceStatement createChoice(final QName argument) {
+        return new EmptyChoiceStatement(argument);
+    }
+
+    public static ChoiceStatement createChoice(final QName argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createChoice(argument) : new RegularChoiceStatement(argument, substatements);
+    }
+
+    public static ConfigStatement createConfig(final Boolean argument) {
+        return new EmptyConfigStatement(argument);
+    }
+
+    public static ConfigStatement createConfig(final Boolean argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createConfig(argument) : new RegularConfigStatement(argument, substatements);
+    }
+
+    public static ContainerStatement createContainer(final QName argument) {
+        return new EmptyContainerStatement(argument);
+    }
+
+    public static ContainerStatement createContainer(final QName argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createContainer(argument)
+            : new RegularContainerStatement(argument, substatements);
+    }
+
+    public static DefaultStatement createDefault(final String argument) {
+        return new EmptyDefaultStatement(argument);
+    }
+
+    public static DefaultStatement createDefault(final String argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createDefault(argument) : new RegularDefaultStatement(argument, substatements);
+    }
+
+    public static DescriptionStatement createDescription(final String argument) {
+        return new EmptyDescriptionStatement(argument);
+    }
+
+    public static DescriptionStatement createDescription(final String argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createDescription(argument)
+            : new RegularDescriptionStatement(argument, substatements);
+    }
+
+    public static StatusStatement createStatus(final Status argument) {
+        return new EmptyStatusStatement(argument);
+    }
+
+    public static StatusStatement createStatus(final Status argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createStatus(argument) : new RegularStatusStatement(argument, substatements);
+    }
+}
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.action;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.ActionStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.anydata;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.AnydataStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.anyxml;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.argument;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.augment;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.model.api.stmt.AugmentStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
similarity index 91%
rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/base/EmptyBaseStatement.java
rename to yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyBaseStatement.java
index b6f2121e3ff9e6eeb8617207fa2b8fd08c58cf32..af6dcd100c6ecace6561a0524cd85b7ddbdb04f9 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.base;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.BaseStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.belongs_to;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithRawStringArgument;
similarity index 91%
rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/bit/EmptyBitStatement.java
rename to yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyBitStatement.java
index ccfc233c7bab582855d679264a6c61813dcb0288..7184f2cdabf74f7fe5ef153b6f7baa0c24355b3e 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.bit;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.stmt.BitStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.choice;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.ChoiceStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.config;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.model.api.stmt.ConfigStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.ArgumentToString;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.container;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.ContainerStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.default_;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.description;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.status;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.model.api.Status;
 
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.action;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.anydata;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.anyxml;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.argument;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.augment;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.base;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.belongs_to;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.bit;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.choice;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.config;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.container;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.default_;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.description;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.status;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import java.util.Collection;
index 8045a5144236fbf7f578fe8edbdc301585e88c9a..4890913743ebbc94e41177a9458429c87595e04c 100644 (file)
@@ -21,6 +21,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.ActionStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.OutputStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.input.InputStatementSupport;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.output.OutputStatementSupport;
@@ -98,12 +99,12 @@ public final class ActionStatementSupport extends
     @Override
     protected ActionStatement createDeclared(final StmtContext<QName, ActionStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularActionStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createAction(ctx.getArgument(), substatements);
     }
 
     @Override
     protected ActionStatement createEmptyDeclared(final StmtContext<QName, ActionStatement, ?> ctx) {
-        return new EmptyActionStatement(ctx.getArgument());
+        return DeclaredStatements.createAction(ctx.getArgument());
     }
 
     @Override
index 3c1627381fcc9d5c47f6eb2412ddc8b860b96f3e..d2dabc0cbb0088a020dcff388c663c9742c106fc 100644 (file)
@@ -20,6 +20,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.AnydataEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.AnydataStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@@ -57,12 +58,12 @@ public final class AnydataStatementSupport
     @Override
     protected AnydataStatement createDeclared(final StmtContext<QName, AnydataStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularAnydataStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createAnydata(ctx.getArgument(), substatements);
     }
 
     @Override
     protected AnydataStatement createEmptyDeclared(final StmtContext<QName, AnydataStatement, ?> ctx) {
-        return new EmptyAnydataStatement(ctx.getArgument());
+        return DeclaredStatements.createAnydata(ctx.getArgument());
     }
 
     @Override
index ff849c71332b4b6b8761e36dd5bf9544c3b33b97..2ac12a64844a6e161d6712e5be68c0ca42da5fbf 100644 (file)
@@ -20,6 +20,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@@ -57,12 +58,12 @@ public final class AnyxmlStatementSupport
     @Override
     protected AnyxmlStatement createDeclared(final StmtContext<QName, AnyxmlStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularAnyxmlStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createAnyxml(ctx.getArgument(), substatements);
     }
 
     @Override
     protected AnyxmlStatement createEmptyDeclared(final StmtContext<QName, AnyxmlStatement, ?> ctx) {
-        return new EmptyAnyxmlStatement(ctx.getArgument());
+        return DeclaredStatements.createAnyxml(ctx.getArgument());
     }
 
     @Override
index 9d0538a3c0edab384680782440c5e829560c6ba0..3e40bc3d6d840194af067834c1f8353f577d4619 100644 (file)
@@ -14,6 +14,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -49,12 +50,12 @@ public final class ArgumentStatementSupport
     @Override
     protected ArgumentStatement createDeclared(final StmtContext<QName, ArgumentStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularArgumentStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createArgument(ctx.getArgument(), substatements);
     }
 
     @Override
     protected ArgumentStatement createEmptyDeclared(final StmtContext<QName, ArgumentStatement, ?> ctx) {
-        return new EmptyArgumentStatement(ctx.getArgument());
+        return DeclaredStatements.createArgument(ctx.getArgument());
     }
 
     @Override
index 3f1aa1de0f941454138cde7aebfc5022e8b2b2d5..ea7189843fcc9987088071e6f5c1f69ee88d46b4 100644 (file)
@@ -29,6 +29,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Desce
 import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.WhenEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ArgumentUtils;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
 import org.opendaylight.yangtools.yang.parser.spi.SchemaTreeNamespace;
@@ -107,13 +108,13 @@ abstract class AbstractAugmentStatementSupport
     @Override
     protected final AugmentStatement createDeclared(final StmtContext<SchemaNodeIdentifier, AugmentStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularAugmentStatement(ctx.getRawArgument(), ctx.getArgument(), substatements);
+        return DeclaredStatements.createAugment(ctx.getRawArgument(), ctx.getArgument(), substatements);
     }
 
     @Override
     protected final AugmentStatement createEmptyDeclared(
             final StmtContext<SchemaNodeIdentifier, AugmentStatement, ?> ctx) {
-        return new EmptyAugmentStatement(ctx.getRawArgument(), ctx.getArgument());
+        return DeclaredStatements.createAugment(ctx.getRawArgument(), ctx.getArgument());
     }
 
     @Override
index 3cec5e02cc1359ca1dc489c27b7e0ca400a40913..f72e735eab658f88f15abfba6c3196befa436a9d 100644 (file)
@@ -16,6 +16,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.BaseEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.BaseStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.IdentityNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@@ -82,12 +83,12 @@ public final class BaseStatementSupport extends AbstractQNameStatementSupport<Ba
     @Override
     protected BaseStatement createDeclared(final StmtContext<QName, BaseStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularBaseStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createBase(ctx.getArgument(), substatements);
     }
 
     @Override
     protected BaseStatement createEmptyDeclared(final StmtContext<QName, BaseStatement, ?> ctx) {
-        return new EmptyBaseStatement(ctx.getArgument());
+        return DeclaredStatements.createBase(ctx.getArgument());
     }
 
     @Override
index f46ea857867d7a1ab12a0f0718ffe4271185cee5..1e498be71ffdc8b69f4faaa9789d76cd796043c6 100644 (file)
@@ -19,6 +19,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
 import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.InferenceException;
@@ -85,12 +86,12 @@ public final class BelongsToStatementSupport
     @Override
     protected BelongsToStatement createDeclared(final StmtContext<String, BelongsToStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularBelongsToStatement(ctx.getRawArgument(), substatements);
+        return DeclaredStatements.createBelongsTo(ctx.getRawArgument(), substatements);
     }
 
     @Override
     protected BelongsToStatement createEmptyDeclared(final StmtContext<String, BelongsToStatement, ?> ctx) {
-        return new EmptyBelongsToStatement(ctx.getRawArgument());
+        return DeclaredStatements.createBelongsTo(ctx.getRawArgument());
     }
 
     @Override
index a6e6df387e5535295675157d2b3e01337c648bf6..8bc3f25033bb0c5492a4d4895b39a05ff2de9802 100644 (file)
@@ -17,6 +17,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.BitEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.BitStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -70,12 +71,12 @@ public final class BitStatementSupport extends AbstractStatementSupport<String,
     @Override
     protected BitStatement createDeclared(final StmtContext<String, BitStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularBitStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createBit(ctx.getArgument(), substatements);
     }
 
     @Override
     protected BitStatement createEmptyDeclared(final StmtContext<String, BitStatement, ?> ctx) {
-        return new EmptyBitStatement(ctx.getArgument());
+        return DeclaredStatements.createBit(ctx.getArgument());
     }
 
     @Override
index 996a4ccaee143051fa7d60fa0e0f13b19de0b2ee..049d41257485ce7db83a9f388f0aa3fd26afcad2 100644 (file)
@@ -28,6 +28,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.DefaultEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.YangValidationBundles;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.case_.CaseStatementSupport;
@@ -114,12 +115,12 @@ public final class ChoiceStatementSupport
     @Override
     protected ChoiceStatement createDeclared(@NonNull final StmtContext<QName, ChoiceStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularChoiceStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createChoice(ctx.getArgument(), substatements);
     }
 
     @Override
     protected ChoiceStatement createEmptyDeclared(@NonNull final StmtContext<QName, ChoiceStatement, ?> ctx) {
-        return new EmptyChoiceStatement(ctx.getArgument());
+        return DeclaredStatements.createChoice(ctx.getArgument());
     }
 
     @Override
index 9609c939920a1ef090b6dc46fcbe6710042fdb12..b4133a8fa5408f1be77e7cade96f527732d0963c 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ConfigEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ConfigStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractBooleanStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
@@ -25,8 +26,8 @@ public final class ConfigStatementSupport
 
     private ConfigStatementSupport() {
         super(YangStmtMapping.CONFIG,
-            new EmptyConfigEffectiveStatement(new EmptyConfigStatement(Boolean.FALSE)),
-            new EmptyConfigEffectiveStatement(new EmptyConfigStatement(Boolean.TRUE)),
+            new EmptyConfigEffectiveStatement(DeclaredStatements.createConfig(Boolean.FALSE)),
+            new EmptyConfigEffectiveStatement(DeclaredStatements.createConfig(Boolean.TRUE)),
             // FIXME: This is not quite true. If we are instantiated in a context which ignores config, which should
             //        really fizzle. This needs some more analysis.
             StatementPolicy.contextIndependent());
@@ -44,7 +45,7 @@ public final class ConfigStatementSupport
     @Override
     protected ConfigStatement createDeclared(final StmtContext<Boolean, ConfigStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularConfigStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createConfig(ctx.getArgument(), substatements);
     }
 
     @Override
index 705c22695bd8401d7cc047616173ac9abc80620e..09ddc47e270f1640fb58da7cc03fbd4e3c95b3c7 100644 (file)
@@ -24,6 +24,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.ContainerStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.PresenceEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStmtUtils;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport;
@@ -103,12 +104,12 @@ public final class ContainerStatementSupport
     @Override
     protected ContainerStatement createDeclared(final StmtContext<QName, ContainerStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularContainerStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createContainer(ctx.getArgument(), substatements);
     }
 
     @Override
     protected ContainerStatement createEmptyDeclared(final StmtContext<QName, ContainerStatement, ?> ctx) {
-        return new EmptyContainerStatement(ctx.getArgument());
+        return DeclaredStatements.createContainer(ctx.getArgument());
     }
 
     @Override
index ddd8684a873dcc7425ed59ed43733c4e6b9eccd6..e84ac87b64477e27d1115ffb5b33624cea37ab84 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.DefaultEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -41,12 +42,12 @@ public final class DefaultStatementSupport
     @Override
     protected DefaultStatement createDeclared(final StmtContext<String, DefaultStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularDefaultStatement(ctx.getRawArgument(), substatements);
+        return DeclaredStatements.createDefault(ctx.getRawArgument(), substatements);
     }
 
     @Override
     protected DefaultStatement createEmptyDeclared(final StmtContext<String, DefaultStatement, ?> ctx) {
-        return new EmptyDefaultStatement(ctx.getRawArgument());
+        return DeclaredStatements.createDefault(ctx.getRawArgument());
     }
 
     @Override
index ae7c996af5f0c404723b2879171ab6ef4723d33d..8366c83c0cee0c45d4784ca570a1736fbfc7eab3 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -40,12 +41,12 @@ public final class DescriptionStatementSupport
     @Override
     protected DescriptionStatement createDeclared(final StmtContext<String, DescriptionStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularDescriptionStatement(ctx.getRawArgument(), substatements);
+        return DeclaredStatements.createDescription(ctx.getRawArgument(), substatements);
     }
 
     @Override
     protected DescriptionStatement createEmptyDeclared(final StmtContext<String, DescriptionStatement, ?> ctx) {
-        return new EmptyDescriptionStatement(ctx.getRawArgument());
+        return DeclaredStatements.createDescription(ctx.getRawArgument());
     }
 
     @Override
index 7a46f47f63ca486b76c4ff986b4b69619930a4ae..4d81ab9a2976877cb97caf8bc236c9d13dd2ddcc 100644 (file)
@@ -15,6 +15,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -32,18 +33,17 @@ public final class StatusStatementSupport
      * status has low argument cardinality, hence we can reuse them in case declaration does not have any
      * substatements (which is the usual case). Yeah, we could consider an EnumMap, but this is not too bad, either.
      */
-    private static final @NonNull EmptyStatusStatement EMPTY_CURRENT_DECL =
-            new EmptyStatusStatement(Status.CURRENT);
-    private static final @NonNull EmptyStatusStatement EMPTY_DEPRECATED_DECL =
-            new EmptyStatusStatement(Status.DEPRECATED);
-    private static final @NonNull EmptyStatusStatement EMPTY_OBSOLETE_DECL =
-            new EmptyStatusStatement(Status.OBSOLETE);
+    private static final @NonNull StatusStatement EMPTY_CURRENT_DECL = DeclaredStatements.createStatus(Status.CURRENT);
+    private static final @NonNull StatusStatement EMPTY_DEPRECATED_DECL =
+        DeclaredStatements.createStatus(Status.DEPRECATED);
+    private static final @NonNull StatusStatement EMPTY_OBSOLETE_DECL =
+        DeclaredStatements.createStatus(Status.OBSOLETE);
     private static final @NonNull EmptyStatusEffectiveStatement EMPTY_CURRENT_EFF =
-            new EmptyStatusEffectiveStatement(EMPTY_CURRENT_DECL);
+        new EmptyStatusEffectiveStatement(EMPTY_CURRENT_DECL);
     private static final @NonNull EmptyStatusEffectiveStatement EMPTY_DEPRECATED_EFF =
-            new EmptyStatusEffectiveStatement(EMPTY_DEPRECATED_DECL);
+        new EmptyStatusEffectiveStatement(EMPTY_DEPRECATED_DECL);
     private static final @NonNull EmptyStatusEffectiveStatement EMPTY_OBSOLETE_EFF =
-            new EmptyStatusEffectiveStatement(EMPTY_OBSOLETE_DECL);
+        new EmptyStatusEffectiveStatement(EMPTY_OBSOLETE_DECL);
 
     private StatusStatementSupport() {
         super(YangStmtMapping.STATUS, StatementPolicy.contextIndependent());
@@ -89,7 +89,7 @@ public final class StatusStatementSupport
     @Override
     protected StatusStatement createDeclared(final StmtContext<Status, StatusStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularStatusStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createStatus(ctx.getArgument(), substatements);
     }
 
     @Override