Extract AbstractResumedStatement
[yangtools.git] / yang / yang-parser-reactor / src / main / java / org / opendaylight / yangtools / yang / parser / stmt / reactor / SubstatementContext.java
index 205fb36fdbddec9e0d89f6d0f01ae43e54c20d66..ea4fa1b91e142a21dd5234c5742eb11bff9c184f 100644 (file)
@@ -33,7 +33,7 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
 import org.opendaylight.yangtools.yang.parser.spi.source.StatementSourceReference;
 
 final class SubstatementContext<A, D extends DeclaredStatement<A>, E extends EffectiveStatement<A, D>> extends
-        StatementContextBase<A, D, E> {
+        AbstractResumedStatement<A, D, E> {
     private final StatementContextBase<?, ?, ?> parent;
     private final A argument;
 
@@ -61,10 +61,11 @@ final class SubstatementContext<A, D extends DeclaredStatement<A>, E extends Eff
                 : original.definition().adaptArgumentValue(original, targetModule);
     }
 
-    SubstatementContext(final StatementContextBase<A, D, E> original, final StatementContextBase<?, ?, ?> parent) {
+    private SubstatementContext(final SubstatementContext<A, D, E> original,
+            final StatementContextBase<?, ?, ?> parent) {
         super(original);
         this.parent = requireNonNull(parent, "Parent must not be null");
-        this.argument = original.getStatementArgument();
+        this.argument = original.argument;
     }
 
     @Override
@@ -196,4 +197,9 @@ final class SubstatementContext<A, D extends DeclaredStatement<A>, E extends Eff
     protected boolean isParentSupportedByFeatures() {
         return parent.isSupportedByFeatures();
     }
+
+    @Override
+    SubstatementContext<A, D, E> reparent(final StatementContextBase<?, ?, ?> newParent) {
+        return new SubstatementContext<>(this, newParent);
+    }
 }