import java.util.Optional;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.meta.ArgumentDefinition;
+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.meta.StatementDefinition;
import org.opendaylight.yangtools.yang.model.api.stmt.UnrecognizedStatement;
-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.parser.api.YangParserConfiguration;
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.InferenceException;
import org.opendaylight.yangtools.yang.parser.spi.meta.OverrideChildStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
final class UnrecognizedStatementSupport
extends AbstractStatementSupport<Object, UnrecognizedStatement, UnrecognizedEffectiveStatement>
UnrecognizedStatementSupport(final StatementDefinition publicDefinition, final YangParserConfiguration config) {
// We have no idea about the statement's semantics, hence there should be noone interested in its semantics.
// Nevertheless it may be of interest for various hacks to understand there was an extension involved.
- super(publicDefinition, StatementPolicy.exactReplica(), config);
+ super(publicDefinition, StatementPolicy.exactReplica(), config, null);
this.config = requireNonNull(config);
}
}
@Override
- protected SubstatementValidator getSubstatementValidator() {
- // We know nothing about this statement
- return null;
+ protected UnrecognizedStatement createDeclared(final StmtContext<Object, UnrecognizedStatement, ?> ctx,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return DeclaredStatements.createUnrecognized(ctx.rawArgument(), ctx.publicDefinition(), substatements);
}
@Override
- protected UnrecognizedStatement createDeclared(final StmtContext<Object, UnrecognizedStatement, ?> ctx,
- final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new UnrecognizedStatementImpl(ctx.rawArgument(), ctx.publicDefinition(), substatements);
+ protected UnrecognizedStatement attachDeclarationReference(final UnrecognizedStatement stmt,
+ final DeclarationReference reference) {
+ return DeclaredStatementDecorators.decorateUnrecognized(stmt, reference);
}
// createEffective() should never be called, ensure that for each declared statement