import org.opendaylight.yangtools.yang.model.api.stmt.PrefixEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
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;
private static final PrefixStatementSupport INSTANCE = new PrefixStatementSupport();
private PrefixStatementSupport() {
- super(YangStmtMapping.PREFIX);
+ super(YangStmtMapping.PREFIX, StatementPolicy.reject());
}
public static PrefixStatementSupport getInstance() {
@Override
protected PrefixStatement createDeclared(final StmtContext<String, PrefixStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularPrefixStatement(ctx.coerceRawStatementArgument(), substatements);
+ return new RegularPrefixStatement(ctx.getRawArgument(), substatements);
}
@Override
protected PrefixStatement createEmptyDeclared(final StmtContext<String, PrefixStatement, ?> ctx) {
- return new EmptyPrefixStatement(ctx.coerceRawStatementArgument());
+ return new EmptyPrefixStatement(ctx.getRawArgument());
}
@Override
- protected PrefixEffectiveStatement createEffective(
- final StmtContext<String, PrefixStatement, PrefixEffectiveStatement> ctx, final PrefixStatement declared,
+ protected PrefixEffectiveStatement createEffective(final Current<String, PrefixStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new RegularPrefixEffectiveStatement(declared, substatements);
- }
-
- @Override
- protected PrefixEffectiveStatement createEmptyEffective(
- final StmtContext<String, PrefixStatement, PrefixEffectiveStatement> ctx, final PrefixStatement declared) {
- return new EmptyPrefixEffectiveStatement(declared);
+ return substatements.isEmpty() ? new EmptyPrefixEffectiveStatement(stmt.declared())
+ : new RegularPrefixEffectiveStatement(stmt.declared(), substatements);
}
}