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=768e1eea4f165558da53def56d81c8eda89ec1e1;hb=dadc9aa0a7f3af000b4205f94cf86dba7e908d75;hp=5cfa08245f34f0a180aad69b222cb45b64016c65;hpb=a9c6528602b30a65af8aa6afc89e465f202ef129;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 5cfa08245f..768e1eea4f 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 @@ -7,79 +7,26 @@ */ package org.opendaylight.yangtools.openconfig.parser; -import static java.util.Objects.requireNonNull; - import com.google.common.collect.ImmutableList; -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.common.Empty; +import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference; 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.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.api.YangParserConfiguration; +import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractEmptyStatementSupport; 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; abstract class AbstractHashedValueStatementSupport - extends BaseVoidStatementSupport { - - private static final class Declared extends WithSubstatements implements OpenConfigHashedValueStatement { - private final @NonNull StatementDefinition definition; - - Declared(final StatementDefinition definition, - final ImmutableList> substatements) { - super(substatements); - this.definition = requireNonNull(definition); - } - - @Override - public StatementDefinition statementDefinition() { - return definition; - } - } - - private static final class Effective - extends UnknownEffectiveStatementBase - implements OpenConfigHashedValueEffectiveStatement { - private final @NonNull StatementDefinition definition; - private final SchemaPath path; - - Effective(final Current stmt, - final ImmutableList> substatements) { - super(stmt, substatements); - definition = stmt.publicDefinition(); - path = SchemaPathSupport.wrap(stmt.getEffectiveParent().getSchemaPath() - .createChild(stmt.publicDefinition().getStatementName())); - } - - @Override - public QName getQName() { - return path.getLastComponent(); - } - - @Override - @Deprecated - public SchemaPath getPath() { - return SchemaNodeDefaults.throwUnsupportedIfNull(this, path); - } - - @Override - public StatementDefinition statementDefinition() { - return definition; - } - } - + extends AbstractEmptyStatementSupport { private final SubstatementValidator validator; - AbstractHashedValueStatementSupport(final StatementDefinition definition) { - super(definition, StatementPolicy.contextIndependent()); + AbstractHashedValueStatementSupport(final StatementDefinition definition, final YangParserConfiguration config) { + super(definition, StatementPolicy.contextIndependent(), config); this.validator = SubstatementValidator.builder(definition).build(); } @@ -90,22 +37,21 @@ abstract class AbstractHashedValueStatementSupport @Override protected final OpenConfigHashedValueStatement createDeclared( - final StmtContext ctx, + final StmtContext ctx, final ImmutableList> substatements) { - return new Declared(getPublicView(), substatements); + return new OpenConfigHashedValueStatementImpl(getPublicView(), substatements); } @Override - protected final OpenConfigHashedValueStatement createEmptyDeclared( - final StmtContext ctx) { - return createDeclared(ctx, ImmutableList.of()); + protected final OpenConfigHashedValueStatement attachDeclarationReference( + final OpenConfigHashedValueStatement stmt, final DeclarationReference reference) { + return new RefOpenConfigHashedValueStatement(stmt, reference); } @Override protected OpenConfigHashedValueEffectiveStatement createEffective( - final Current stmt, + final Current stmt, final ImmutableList> substatements) { - return new Effective(stmt, substatements); + return new OpenConfigHashedValueEffectiveStatementImpl(stmt, substatements); } - }