*/
package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.require_instance;
+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.RequireInstanceEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.RequireInstanceStatement;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ArgumentUtils;
-import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseBooleanStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
public final class RequireInstanceStatementSupport
- extends AbstractStatementSupport<Boolean, RequireInstanceStatement, RequireInstanceEffectiveStatement> {
+ extends BaseBooleanStatementSupport<RequireInstanceStatement, RequireInstanceEffectiveStatement> {
private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(
YangStmtMapping.REQUIRE_INSTANCE).build();
private static final RequireInstanceStatementSupport INSTANCE = new RequireInstanceStatementSupport();
+
private RequireInstanceStatementSupport() {
- super(YangStmtMapping.REQUIRE_INSTANCE);
+ super(YangStmtMapping.REQUIRE_INSTANCE,
+ new EmptyRequireInstanceEffectiveStatement(new EmptyRequireInstanceStatement(Boolean.FALSE)),
+ new EmptyRequireInstanceEffectiveStatement(new EmptyRequireInstanceStatement(Boolean.TRUE)));
}
public static RequireInstanceStatementSupport getInstance() {
}
@Override
- public Boolean parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
- return ArgumentUtils.parseBoolean(ctx, value);
- }
-
- @Override
- public RequireInstanceStatement createDeclared(final StmtContext<Boolean, RequireInstanceStatement, ?> ctx) {
- return new RequireInstanceStatementImpl(ctx);
+ protected SubstatementValidator getSubstatementValidator() {
+ return SUBSTATEMENT_VALIDATOR;
}
@Override
- public RequireInstanceEffectiveStatement createEffective(
- final StmtContext<Boolean, RequireInstanceStatement, RequireInstanceEffectiveStatement> ctx) {
- return new RequireInstanceEffectiveStatementImpl(ctx);
+ protected RequireInstanceStatement createDeclared(final StmtContext<Boolean, RequireInstanceStatement, ?> ctx,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return new RegularRequireInstanceStatement(ctx.coerceStatementArgument(), substatements);
}
@Override
- public String internArgument(final String rawArgument) {
- return ArgumentUtils.internBoolean(rawArgument);
+ protected RequireInstanceEffectiveStatement createEffective(final RequireInstanceStatement declared,
+ final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+ return new RegularRequireInstanceEffectiveStatement(declared, substatements);
}
@Override
- protected SubstatementValidator getSubstatementValidator() {
- return SUBSTATEMENT_VALIDATOR;
+ protected EmptyRequireInstanceEffectiveStatement createEmptyEffective(final RequireInstanceStatement declared) {
+ return new EmptyRequireInstanceEffectiveStatement(declared);
}
}
\ No newline at end of file