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> substatements) { + return substatements.isEmpty() ? effectiveCache.getUnchecked(stmt.declared()) + : createEffective(stmt.declared(), substatements); } + protected abstract @NonNull E createEffective(@NonNull D declared, + @NonNull ImmutableList> substatements); + protected abstract @NonNull E createEmptyEffective(@NonNull D declared); @Override