*/
package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.status;
+import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.model.api.Status;
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.StatusEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
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;
public final class StatusStatementSupport
extends AbstractStatementSupport<Status, StatusStatement, StatusEffectiveStatement> {
- private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(YangStmtMapping
- .STATUS)
- .build();
+ private static final SubstatementValidator SUBSTATEMENT_VALIDATOR =
+ SubstatementValidator.builder(YangStmtMapping.STATUS).build();
private static final StatusStatementSupport INSTANCE = new StatusStatementSupport();
private StatusStatementSupport() {
- super(YangStmtMapping.STATUS);
+ super(YangStmtMapping.STATUS, StatementPolicy.contextIndependent());
}
public static StatusStatementSupport getInstance() {
case "obsolete":
return Status.OBSOLETE;
default:
- throw new SourceException(ctx.getStatementSourceReference(),
+ throw new SourceException(ctx,
"Invalid status '%s', must be one of 'current', 'deprecated' or 'obsolete'", value);
}
}
- @Override
- public StatusStatement createDeclared(final StmtContext<Status, StatusStatement, ?> ctx) {
- return new StatusStatementImpl(ctx);
- }
-
- @Override
- public StatusEffectiveStatement createEffective(
- final StmtContext<Status, StatusStatement, StatusEffectiveStatement> ctx) {
- return new StatusEffectiveStatementImpl(ctx);
- }
-
@Override
public String internArgument(final String rawArgument) {
if ("current".equals(rawArgument)) {
protected SubstatementValidator getSubstatementValidator() {
return SUBSTATEMENT_VALIDATOR;
}
-}
\ No newline at end of file
+
+ @Override
+ protected StatusStatement createDeclared(final StmtContext<Status, StatusStatement, ?> ctx,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return DeclaredStatements.createStatus(ctx.getArgument(), substatements);
+ }
+
+ @Override
+ protected StatusStatement createEmptyDeclared(final StmtContext<Status, StatusStatement, ?> ctx) {
+ return DeclaredStatements.createStatus(ctx.getArgument());
+ }
+
+ @Override
+ protected StatusEffectiveStatement createEffective(final Current<Status, StatusStatement> stmt,
+ final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+ return EffectiveStatements.createStatus(stmt.declared(), substatements);
+ }
+}