Fixup SchemaNodeIdentifier design
[yangtools.git] / yang / yang-parser-reactor / src / main / java / org / opendaylight / yangtools / yang / parser / stmt / reactor / StatementContextBase.java
index 5c1095e061188870e6f9be77b35616be59462f9e..ff83cac19d65a1f97558a64769d89f9edc9218be 100644 (file)
@@ -532,8 +532,12 @@ public abstract class StatementContextBase<A, D extends DeclaredStatement<A>, E
 
     @Override
     public E buildEffective() {
-        final E existing = effectiveInstance;
-        return existing != null ? existing : (effectiveInstance = definition.getFactory().createEffective(this));
+        final E existing;
+        return (existing = effectiveInstance) != null ? existing : loadEffective();
+    }
+
+    private E loadEffective() {
+        return effectiveInstance = definition.getFactory().createEffective(this);
     }
 
     /**
@@ -1046,7 +1050,7 @@ public abstract class StatementContextBase<A, D extends DeclaredStatement<A>, E
                         || StmtContextUtils.producesDeclared(this, RefineStatement.class)
                         || StmtContextUtils.producesDeclared(this, DeviationStatement.class))) {
 
-            return parentPath.createChild(((SchemaNodeIdentifier) argument).getPathFromRoot());
+            return parentPath.createChild(((SchemaNodeIdentifier) argument).getNodeIdentifiers());
         }
 
         // FIXME: this does not look right