X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-rfc7950%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Frfc7950%2Fstmt%2FBaseInternedStatementSupport.java;h=80bcfd6d37963327becafe020b69fb5ce96dda5e;hb=88aeb1cd912d37fcadf671b622fece9a01297e90;hp=87301fc369e4511c8cda37e0082a58f8967e042d;hpb=61f49cd2ff55f24af91c232d3a82ab3f2b565255;p=yangtools.git
diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/BaseInternedStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/BaseInternedStatementSupport.java
index 87301fc369..80bcfd6d37 100644
--- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/BaseInternedStatementSupport.java
+++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/BaseInternedStatementSupport.java
@@ -17,6 +17,7 @@ import org.eclipse.jdt.annotation.NonNull;
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.meta.StatementDefinition;
+import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
/**
@@ -58,10 +59,15 @@ public abstract class BaseInternedStatementSupport ctx, final D declared) {
- return effectiveCache.getUnchecked(declared);
+ protected final E createEffective(final Current stmt,
+ final ImmutableList extends EffectiveStatement, ?>> substatements) {
+ return substatements.isEmpty() ? effectiveCache.getUnchecked(stmt.declared())
+ : createEffective(stmt.declared(), substatements);
}
+ protected abstract @NonNull E createEffective(@NonNull D declared,
+ @NonNull ImmutableList extends EffectiveStatement, ?>> substatements);
+
protected abstract @NonNull E createEmptyEffective(@NonNull D declared);
@Override