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%2Fpresence%2FPresenceStatementSupport.java;h=eb25cfe7b9dd9a935da8f8b54d0fadbbc1315a88;hb=refs%2Fchanges%2F53%2F93953%2F1;hp=72f77a47a7af26e2fb2d595e46b61722461ddedc;hpb=c8668229ad6e73d5ae03a52f4b87e8e4d2a67c6e;p=yangtools.git diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/presence/PresenceStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/presence/PresenceStatementSupport.java index 72f77a47a7..eb25cfe7b9 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/presence/PresenceStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/presence/PresenceStatementSupport.java @@ -7,18 +7,21 @@ */ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.presence; +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.PresenceEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.PresenceStatement; -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.EffectiveStmtCtx.Current; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator; public final class PresenceStatementSupport - extends AbstractStatementSupport> { - private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(YangStmtMapping - .PRESENCE) - .build(); + extends BaseStringStatementSupport { + private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = + SubstatementValidator.builder(YangStmtMapping.PRESENCE).build(); private static final PresenceStatementSupport INSTANCE = new PresenceStatementSupport(); private PresenceStatementSupport() { @@ -30,23 +33,25 @@ public final class PresenceStatementSupport } @Override - public String parseArgumentValue(final StmtContext ctx, final String value) { - return value; + protected SubstatementValidator getSubstatementValidator() { + return SUBSTATEMENT_VALIDATOR; } @Override - public PresenceStatement createDeclared(final StmtContext ctx) { - return new PresenceStatementImpl(ctx); + protected PresenceStatement createDeclared(final StmtContext ctx, + final ImmutableList> substatements) { + return new RegularPresenceStatement(ctx.getRawArgument(), substatements); } @Override - public EffectiveStatement createEffective( - final StmtContext> ctx) { - return new PresenceEffectiveStatementImpl(ctx); + protected PresenceStatement createEmptyDeclared(final StmtContext ctx) { + return new EmptyPresenceStatement(ctx.getRawArgument()); } @Override - protected SubstatementValidator getSubstatementValidator() { - return SUBSTATEMENT_VALIDATOR; + protected PresenceEffectiveStatement createEffective(final Current stmt, + final ImmutableList> substatements) { + return substatements.isEmpty() ? new EmptyPresenceEffectiveStatement(stmt.declared()) + : new RegularPresenceEffectiveStatement(stmt.declared(), substatements); } } \ No newline at end of file