import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.common.QName;
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.ArgumentEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentStatement;
+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.spi.meta.AbstractQNameStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
public final class ArgumentStatementSupport
extends AbstractQNameStatementSupport<ArgumentStatement, ArgumentEffectiveStatement> {
- private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(YangStmtMapping
- .ARGUMENT)
- .addOptional(YangStmtMapping.YIN_ELEMENT)
- .build();
- private static final ArgumentStatementSupport INSTANCE = new ArgumentStatementSupport();
+ private static final SubstatementValidator SUBSTATEMENT_VALIDATOR =
+ SubstatementValidator.builder(YangStmtMapping.ARGUMENT).addOptional(YangStmtMapping.YIN_ELEMENT).build();
- private ArgumentStatementSupport() {
- super(YangStmtMapping.ARGUMENT, StatementPolicy.reject());
- }
-
- public static ArgumentStatementSupport getInstance() {
- return INSTANCE;
+ public ArgumentStatementSupport(final YangParserConfiguration config) {
+ super(YangStmtMapping.ARGUMENT, StatementPolicy.reject(), config, SUBSTATEMENT_VALIDATOR);
}
@Override
return StmtContextUtils.parseIdentifier(ctx, value);
}
- @Override
- protected SubstatementValidator getSubstatementValidator() {
- return SUBSTATEMENT_VALIDATOR;
- }
-
@Override
protected ArgumentStatement createDeclared(final StmtContext<QName, ArgumentStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
return DeclaredStatements.createArgument(ctx.getArgument(), substatements);
}
+ @Override
+ protected ArgumentStatement attachDeclarationReference(final ArgumentStatement stmt,
+ final DeclarationReference reference) {
+ return DeclaredStatementDecorators.decorateArgument(stmt, reference);
+ }
+
@Override
protected ArgumentEffectiveStatement createEffective(final Current<QName, ArgumentStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {