Allow derived context to be reused
[yangtools.git] / yang / yang-parser-rfc7950 / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / AbstractUndeclaredEffectiveStatement.java
index 842cbd2c4f215fc11a9729f388ba77c31435e393..3fc7a798aee8beb5f95c839d89af36ed2ecd8f25 100644 (file)
@@ -116,6 +116,11 @@ public abstract class AbstractUndeclaredEffectiveStatement<A, D extends Declared
                 this.substatements = maskList(substatements);
             }
 
+            protected WithSubstatements(final WithSubstatements<A, D, E> original) {
+                super(original);
+                this.substatements = original.substatements;
+            }
+
             @Override
             public final ImmutableList<? extends EffectiveStatement<?, ?>> effectiveSubstatements() {
                 return unmaskList(substatements);
@@ -128,6 +133,10 @@ public abstract class AbstractUndeclaredEffectiveStatement<A, D extends Declared
             this.schemaTree = ImmutableMap.copyOf(createSchemaTreeNamespace(substatements));
         }
 
+        protected DefaultWithSchemaTree(final DefaultWithSchemaTree<A, D, E> original) {
+            this.schemaTree = original.schemaTree;
+        }
+
         @Override
         protected final Map<QName, SchemaTreeEffectiveStatement<?>> schemaTreeNamespace() {
             return schemaTree;
@@ -153,6 +162,11 @@ public abstract class AbstractUndeclaredEffectiveStatement<A, D extends Declared
                 this.substatements = maskList(substatements);
             }
 
+            protected WithSubstatements(final WithSubstatements<A, D, E> original) {
+                super(original);
+                this.substatements = original.substatements;
+            }
+
             @Override
             public final ImmutableList<? extends EffectiveStatement<?, ?>> effectiveSubstatements() {
                 return unmaskList(substatements);
@@ -168,6 +182,11 @@ public abstract class AbstractUndeclaredEffectiveStatement<A, D extends Declared
             this.dataTree = createDataTreeNamespace(schema.values(), schemaTree);
         }
 
+        protected DefaultWithDataTree(final DefaultWithDataTree<A, D, E> original) {
+            this.schemaTree = original.schemaTree;
+            this.dataTree = original.dataTree;
+        }
+
         @Override
         protected final Map<QName, SchemaTreeEffectiveStatement<?>> schemaTreeNamespace() {
             return schemaTree;