X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Frfc6536-parser-support%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Frfc6536%2Fparser%2FDefaultDenyWriteStatementSupport.java;h=143ded2ff32324c396c8e4a4a942058c7a6e2c6b;hb=dadc9aa0a7f3af000b4205f94cf86dba7e908d75;hp=06c5836746fa73ce05c3352120ca2b33e3f7b5d4;hpb=9f36818f11c693c378d76fcf4ec70ac3a641bff9;p=yangtools.git diff --git a/yang/rfc6536-parser-support/src/main/java/org/opendaylight/yangtools/rfc6536/parser/DefaultDenyWriteStatementSupport.java b/yang/rfc6536-parser-support/src/main/java/org/opendaylight/yangtools/rfc6536/parser/DefaultDenyWriteStatementSupport.java index 06c5836746..143ded2ff3 100644 --- a/yang/rfc6536-parser-support/src/main/java/org/opendaylight/yangtools/rfc6536/parser/DefaultDenyWriteStatementSupport.java +++ b/yang/rfc6536-parser-support/src/main/java/org/opendaylight/yangtools/rfc6536/parser/DefaultDenyWriteStatementSupport.java @@ -8,98 +8,49 @@ package org.opendaylight.yangtools.rfc6536.parser; import com.google.common.collect.ImmutableList; -import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteEffectiveStatement; -import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteSchemaNode; import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteStatement; import org.opendaylight.yangtools.rfc6536.model.api.NACMStatements; import org.opendaylight.yangtools.yang.common.Empty; -import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.model.api.SchemaPath; +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.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; public final class DefaultDenyWriteStatementSupport extends AbstractEmptyStatementSupport { - private static final class Declared extends WithSubstatements implements DefaultDenyWriteStatement { - static final @NonNull Declared EMPTY = new Declared(ImmutableList.of()); + private static final SubstatementValidator VALIDATOR = + SubstatementValidator.builder(NACMStatements.DEFAULT_DENY_WRITE).build(); - Declared(final ImmutableList> substatements) { - super(substatements); - } - } - - private static final class Effective extends UnknownEffectiveStatementBase - implements DefaultDenyWriteEffectiveStatement, DefaultDenyWriteSchemaNode { - private final @NonNull Immutable path; - - Effective(final Current stmt, - final ImmutableList> substatements) { - super(stmt, substatements); - path = SchemaPathSupport.toEffectivePath(stmt.getEffectiveParent().getSchemaPath() - .createChild(stmt.publicDefinition().getStatementName())); - } - - @Override - public QName getQName() { - return SchemaPathSupport.extractQName(path); - } - - @Override - @Deprecated - public SchemaPath getPath() { - return SchemaPathSupport.extractPath(this, path); - } - - @Override - public DefaultDenyWriteEffectiveStatement asEffectiveStatement() { - return this; - } - } - - private static final DefaultDenyWriteStatementSupport INSTANCE = - new DefaultDenyWriteStatementSupport(NACMStatements.DEFAULT_DENY_WRITE); - - private final SubstatementValidator validator; - - DefaultDenyWriteStatementSupport(final StatementDefinition definition) { - super(definition, StatementPolicy.contextIndependent()); - this.validator = SubstatementValidator.builder(definition).build(); - } - - public static DefaultDenyWriteStatementSupport getInstance() { - return INSTANCE; + public DefaultDenyWriteStatementSupport(final YangParserConfiguration config) { + super(NACMStatements.DEFAULT_DENY_WRITE, StatementPolicy.contextIndependent(), config); } @Override protected SubstatementValidator getSubstatementValidator() { - return validator; + return VALIDATOR; } @Override protected DefaultDenyWriteStatement createDeclared(final StmtContext ctx, final ImmutableList> substatements) { - return new Declared(substatements); + return substatements.isEmpty() ? DefaultDenyWriteStatementImpl.EMPTY + : new DefaultDenyWriteStatementImpl(substatements); } @Override - protected DefaultDenyWriteStatement createEmptyDeclared( - final StmtContext ctx) { - return Declared.EMPTY; + protected DefaultDenyWriteStatement attachDeclarationReference(final DefaultDenyWriteStatement stmt, + final DeclarationReference reference) { + return new RefDefaultDenyWriteStatement(stmt, reference); } @Override protected DefaultDenyWriteEffectiveStatement createEffective(final Current stmt, final ImmutableList> substatements) { - return new Effective(stmt, substatements); + return new DefaultDenyWriteEffectiveStatementImpl(stmt, substatements); } }