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.parser.rfc7950.stmt.BaseStringStatementSupport;
+import org.opendaylight.yangtools.yang.model.parser.api.YangParserConfiguration;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport;
+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;
@Beta
public final class AliasStatementSupport
- extends BaseStringStatementSupport<AliasStatement, AliasEffectiveStatement> {
+ extends AbstractStringStatementSupport<AliasStatement, AliasEffectiveStatement> {
private static final SubstatementValidator SUBSTATEMENT_VALIDATOR =
SubstatementValidator.builder(IetfYangSmiv2ExtensionsMapping.ALIAS)
.add(YangStmtMapping.DESCRIPTION, 0, 1)
.add(YangStmtMapping.STATUS, 0, 1)
.add(IetfYangSmiv2ExtensionsMapping.OBJECT_ID, 0, 1)
.build();
- private static final AliasStatementSupport INSTANCE = new AliasStatementSupport();
- private AliasStatementSupport() {
- super(IetfYangSmiv2ExtensionsMapping.ALIAS);
- }
-
- public static AliasStatementSupport getInstance() {
- return INSTANCE;
+ public AliasStatementSupport(final YangParserConfiguration config) {
+ super(IetfYangSmiv2ExtensionsMapping.ALIAS, StatementPolicy.contextIndependent(), config);
}
@Override
@Override
protected AliasStatement createDeclared(final StmtContext<String, AliasStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new AliasStatementImpl(ctx.coerceRawStatementArgument(), substatements);
- }
-
- @Override
- protected AliasStatement createEmptyDeclared(final StmtContext<String, AliasStatement, ?> ctx) {
- return createDeclared(ctx, ImmutableList.of());
+ return new AliasStatementImpl(ctx.getRawArgument(), substatements);
}
@Override
- protected AliasEffectiveStatement createEffective(
- final StmtContext<String, AliasStatement, AliasEffectiveStatement> ctx, final AliasStatement declared,
+ protected AliasEffectiveStatement createEffective(final Current<String, AliasStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new AliasEffectiveStatementImpl(declared, substatements, ctx);
- }
-
- @Override
- protected AliasEffectiveStatement createEmptyEffective(
- final StmtContext<String, AliasStatement, AliasEffectiveStatement> ctx, final AliasStatement declared) {
- return createEffective(ctx, declared, ImmutableList.of());
+ return new AliasEffectiveStatementImpl(stmt, substatements);
}
}