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%2Fargument%2FArgumentStatementSupport.java;h=9d0538a3c0edab384680782440c5e829560c6ba0;hb=ab2ac56ea080658487db447825879cbfa78fd16b;hp=c74926ea2a9e998f146923830b57bca043c4cb65;hpb=329864ad749ebc11ef3fa3552c5b027162eb80dd;p=yangtools.git diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/argument/ArgumentStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/argument/ArgumentStatementSupport.java index c74926ea2a..9d0538a3c0 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/argument/ArgumentStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/argument/ArgumentStatementSupport.java @@ -14,13 +14,14 @@ 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.stmt.ArgumentEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentStatement; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseQNameStatementSupport; +import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport; +import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils; import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator; public final class ArgumentStatementSupport - extends BaseQNameStatementSupport { + extends AbstractQNameStatementSupport { private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(YangStmtMapping .ARGUMENT) .addOptional(YangStmtMapping.YIN_ELEMENT) @@ -28,7 +29,7 @@ public final class ArgumentStatementSupport private static final ArgumentStatementSupport INSTANCE = new ArgumentStatementSupport(); private ArgumentStatementSupport() { - super(YangStmtMapping.ARGUMENT); + super(YangStmtMapping.ARGUMENT, StatementPolicy.reject()); } public static ArgumentStatementSupport getInstance() { @@ -48,25 +49,18 @@ public final class ArgumentStatementSupport @Override protected ArgumentStatement createDeclared(final StmtContext ctx, final ImmutableList> substatements) { - return new RegularArgumentStatement(ctx.coerceStatementArgument(), substatements); + return new RegularArgumentStatement(ctx.getArgument(), substatements); } @Override protected ArgumentStatement createEmptyDeclared(final StmtContext ctx) { - return new EmptyArgumentStatement(ctx.coerceStatementArgument()); + return new EmptyArgumentStatement(ctx.getArgument()); } @Override - protected ArgumentEffectiveStatement createEffective( - final StmtContext ctx, - final ArgumentStatement declared, final ImmutableList> substatements) { - return new RegularArgumentEffectiveStatement(declared, substatements); - } - - @Override - protected ArgumentEffectiveStatement createEmptyEffective( - final StmtContext ctx, - final ArgumentStatement declared) { - return new EmptyArgumentEffectiveStatement(declared); + protected ArgumentEffectiveStatement createEffective(final Current stmt, + final ImmutableList> substatements) { + return substatements.isEmpty() ? new EmptyArgumentEffectiveStatement(stmt.declared()) + : new RegularArgumentEffectiveStatement(stmt.declared(), substatements); } }