X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fstmt%2Frfc6020%2Feffective%2FDeclaredEffectiveStatementBase.java;h=212a65e8137163f6383125cadf80cbb037e8375f;hb=635af1cfca70d0be0192f997c155d80cbbc5ba5d;hp=88ed942844aac749b65e860f176510569b6cc44a;hpb=0d77417cb1aab5cacac7503052eb0ca8faacc01e;p=yangtools.git
diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/DeclaredEffectiveStatementBase.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/DeclaredEffectiveStatementBase.java
index 88ed942844..212a65e813 100644
--- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/DeclaredEffectiveStatementBase.java
+++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/DeclaredEffectiveStatementBase.java
@@ -12,10 +12,13 @@ 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.meta.StatementSource;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
+import org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase;
-public abstract class DeclaredEffectiveStatementBase>
- extends EffectiveStatementBase {
+public abstract class DeclaredEffectiveStatementBase> extends
+ EffectiveStatementBase {
+ private final StatementSource statementSource;
+ private final A argument;
private final D declaredInstance;
public DeclaredEffectiveStatementBase(final StmtContext ctx) {
@@ -34,8 +37,21 @@ public abstract class DeclaredEffectiveStatementBase ctx, boolean buildUnknownSubstatements) {
+ protected DeclaredEffectiveStatementBase(StmtContext ctx, final boolean buildUnknownSubstatements) {
super(ctx, buildUnknownSubstatements);
+
+ this.argument = ctx.getStatementArgument();
+ this.statementSource = ctx.getStatementSource();
+
+ /*
+ * Share original instance of declared statement between all effective
+ * statements which have been copied or derived from this original
+ * declared statement.
+ */
+ StatementContextBase originalCtx = (StatementContextBase) ctx.getOriginalCtx();
+ if (originalCtx != null) {
+ ctx = originalCtx;
+ }
declaredInstance = Verify.verifyNotNull(ctx.buildDeclared(), "Statement %s failed to build declared statement",
ctx);
}
@@ -46,17 +62,17 @@ public abstract class DeclaredEffectiveStatementBase