import com.google.common.collect.Iterables;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
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.DeviationEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.DeviationStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
-import org.opendaylight.yangtools.yang.model.parser.api.YangParserConfiguration;
+import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatementDecorators;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
+import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ArgumentUtils;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
public final class DeviationStatementSupport
extends AbstractStatementSupport<Absolute, DeviationStatement, DeviationEffectiveStatement> {
- private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(YangStmtMapping
- .DEVIATION)
- .addOptional(YangStmtMapping.DESCRIPTION)
- .addAny(YangStmtMapping.DEVIATE)
- .addOptional(YangStmtMapping.REFERENCE)
- .build();
+ private static final SubstatementValidator SUBSTATEMENT_VALIDATOR =
+ SubstatementValidator.builder(YangStmtMapping.DEVIATION)
+ .addOptional(YangStmtMapping.DESCRIPTION)
+ .addAny(YangStmtMapping.DEVIATE)
+ .addOptional(YangStmtMapping.REFERENCE)
+ .build();
public DeviationStatementSupport(final YangParserConfiguration config) {
- super(YangStmtMapping.DEVIATION, StatementPolicy.reject(), config);
+ super(YangStmtMapping.DEVIATION, StatementPolicy.reject(), config, SUBSTATEMENT_VALIDATOR);
}
@Override
}
}
- @Override
- protected SubstatementValidator getSubstatementValidator() {
- return SUBSTATEMENT_VALIDATOR;
- }
-
@Override
protected DeviationStatement createDeclared(final StmtContext<Absolute, DeviationStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
return DeclaredStatements.createDeviation(ctx.getRawArgument(), ctx.getArgument(), substatements);
}
+ @Override
+ protected DeviationStatement attachDeclarationReference(final DeviationStatement stmt,
+ final DeclarationReference reference) {
+ return DeclaredStatementDecorators.decorateDeviation(stmt, reference);
+ }
+
@Override
protected DeviationEffectiveStatement createEffective(final Current<Absolute, DeviationStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
return EffectiveStatements.createDeviation(stmt.declared(), substatements);
}
-}
\ No newline at end of file
+}