import org.opendaylight.yangtools.rfc6643.model.api.OidStatement;
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.BaseStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
+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;
import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
@Beta
public final class OidStatementSupport
- extends BaseStatementSupport<ObjectIdentifier, OidStatement, OidEffectiveStatement> {
+ extends AbstractStatementSupport<ObjectIdentifier, OidStatement, OidEffectiveStatement> {
private static final SubstatementValidator SUBSTATEMENT_VALIDATOR =
SubstatementValidator.builder(IetfYangSmiv2ExtensionsMapping.OBJECT_ID).build();
private static final OidStatementSupport INSTANCE = new OidStatementSupport();
private OidStatementSupport() {
- super(IetfYangSmiv2ExtensionsMapping.OBJECT_ID);
+ super(IetfYangSmiv2ExtensionsMapping.OBJECT_ID, StatementPolicy.contextIndependent());
}
public static OidStatementSupport getInstance() {
try {
return ObjectIdentifier.forString(value);
} catch (IllegalArgumentException e) {
- throw new SourceException(ctx.getStatementSourceReference(), e, "Invalid object identifier '%s'", value);
+ throw new SourceException(ctx, e, "Invalid object identifier '%s'", value);
}
}
@Override
protected OidStatement createDeclared(final StmtContext<ObjectIdentifier, OidStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new OidIdStatementImpl(ctx.coerceStatementArgument(), substatements);
+ return new OidIdStatementImpl(ctx.getArgument(), substatements);
}
@Override
}
@Override
- protected OidEffectiveStatement createEffective(
- final StmtContext<ObjectIdentifier, OidStatement, OidEffectiveStatement> ctx,
- final OidStatement declared, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new OidEffectiveStatementImpl(declared, substatements, ctx);
- }
-
- @Override
- protected OidEffectiveStatement createEmptyEffective(
- final StmtContext<ObjectIdentifier, OidStatement, OidEffectiveStatement> ctx, final OidStatement declared) {
- return createEffective(ctx, declared, ImmutableList.of());
+ protected OidEffectiveStatement createEffective(final Current<ObjectIdentifier, OidStatement> stmt,
+ final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+ return new OidEffectiveStatementImpl(stmt, substatements);
}
}
\ No newline at end of file