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%2Funits%2FUnitsStatementSupport.java;h=9e0ee37d26d25636ede1233f94220cfeac173bec;hb=45adcb9a0266de375ee82728825e57014834202f;hp=ec1ec9b916f265784894d34980fa0b4bd490ae7f;hpb=1cc6359e5bae1459582e9262a24ca56f23bcc70f;p=yangtools.git diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/units/UnitsStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/units/UnitsStatementSupport.java index ec1ec9b916..9e0ee37d26 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/units/UnitsStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/units/UnitsStatementSupport.java @@ -7,42 +7,58 @@ */ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.units; +import com.google.common.collect.ImmutableList; import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; +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.UnitsEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.UnitsStatement; -import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport; +import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseStringStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator; public final class UnitsStatementSupport - extends AbstractStatementSupport> { + extends BaseStringStatementSupport { private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder( YangStmtMapping.UNITS) .build(); + private static final UnitsStatementSupport INSTANCE = new UnitsStatementSupport(); - public UnitsStatementSupport() { + private UnitsStatementSupport() { super(YangStmtMapping.UNITS); } + public static UnitsStatementSupport getInstance() { + return INSTANCE; + } + @Override - public String parseArgumentValue(final StmtContext ctx, final String value) { - return value; + protected SubstatementValidator getSubstatementValidator() { + return SUBSTATEMENT_VALIDATOR; } @Override - public UnitsStatement createDeclared( - final StmtContext ctx) { - return new UnitsStatementImpl(ctx); + protected UnitsStatement createDeclared(final StmtContext ctx, + final ImmutableList> substatements) { + return new RegularUnitsStatement(ctx.coerceRawStatementArgument(), substatements); } @Override - public EffectiveStatement createEffective( - final StmtContext> ctx) { - return new UnitsEffectiveStatementImpl(ctx); + protected UnitsStatement createEmptyDeclared(final StmtContext ctx) { + return new EmptyUnitsStatement(ctx.coerceRawStatementArgument()); } @Override - protected SubstatementValidator getSubstatementValidator() { - return SUBSTATEMENT_VALIDATOR; + protected UnitsEffectiveStatement createEffective( + final StmtContext ctx, + final UnitsStatement declared, final ImmutableList> substatements) { + return new RegularUnitsEffectiveStatement(declared, substatements); + } + + @Override + protected UnitsEffectiveStatement createEmptyEffective( + final StmtContext ctx, + final UnitsStatement declared) { + return new EmptyUnitsEffectiveStatement(declared); } -} \ No newline at end of file +}