X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fopenconfig-parser-support%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fopenconfig%2Fparser%2FAbstractHashedValueStatementSupport.java;h=5cfa08245f34f0a180aad69b222cb45b64016c65;hb=a9c6528602b30a65af8aa6afc89e465f202ef129;hp=2b6f5be867b81b82aa5e8ffd2fdfffa60f3e8acd;hpb=68de0c7ba2ad3c837b933602d1d124bf74b077d0;p=yangtools.git diff --git a/yang/openconfig-parser-support/src/main/java/org/opendaylight/yangtools/openconfig/parser/AbstractHashedValueStatementSupport.java b/yang/openconfig-parser-support/src/main/java/org/opendaylight/yangtools/openconfig/parser/AbstractHashedValueStatementSupport.java index 2b6f5be867..5cfa08245f 100644 --- a/yang/openconfig-parser-support/src/main/java/org/opendaylight/yangtools/openconfig/parser/AbstractHashedValueStatementSupport.java +++ b/yang/openconfig-parser-support/src/main/java/org/opendaylight/yangtools/openconfig/parser/AbstractHashedValueStatementSupport.java @@ -14,6 +14,7 @@ import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.openconfig.model.api.OpenConfigHashedValueEffectiveStatement; import org.opendaylight.yangtools.openconfig.model.api.OpenConfigHashedValueStatement; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @@ -21,6 +22,8 @@ import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.WithoutArgument.WithSubstatements; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseVoidStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase; +import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; +import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator; @@ -48,13 +51,12 @@ abstract class AbstractHashedValueStatementSupport private final @NonNull StatementDefinition definition; private final SchemaPath path; - Effective(final OpenConfigHashedValueStatement declared, - final ImmutableList> substatements, - final StmtContext ctx) { - super(declared.argument(), declared, substatements, ctx); - definition = ctx.getPublicDefinition(); - path = ctx.coerceParentContext().getSchemaPath().get().createChild( - ctx.getPublicDefinition().getStatementName()); + Effective(final Current stmt, + final ImmutableList> substatements) { + super(stmt, substatements); + definition = stmt.publicDefinition(); + path = SchemaPathSupport.wrap(stmt.getEffectiveParent().getSchemaPath() + .createChild(stmt.publicDefinition().getStatementName())); } @Override @@ -65,7 +67,7 @@ abstract class AbstractHashedValueStatementSupport @Override @Deprecated public SchemaPath getPath() { - return path; + return SchemaNodeDefaults.throwUnsupportedIfNull(this, path); } @Override @@ -77,7 +79,7 @@ abstract class AbstractHashedValueStatementSupport private final SubstatementValidator validator; AbstractHashedValueStatementSupport(final StatementDefinition definition) { - super(definition); + super(definition, StatementPolicy.contextIndependent()); this.validator = SubstatementValidator.builder(definition).build(); } @@ -100,17 +102,10 @@ abstract class AbstractHashedValueStatementSupport } @Override - protected final OpenConfigHashedValueEffectiveStatement createEffective( - final StmtContext ctx, - final OpenConfigHashedValueStatement declared, + protected OpenConfigHashedValueEffectiveStatement createEffective( + final Current stmt, final ImmutableList> substatements) { - return new Effective(declared, substatements, ctx); + return new Effective(stmt, substatements); } - @Override - protected final OpenConfigHashedValueEffectiveStatement createEmptyEffective( - final StmtContext ctx, - final OpenConfigHashedValueStatement declared) { - return createEffective(ctx, declared, ImmutableList.of()); - } }