import org.opendaylight.yangtools.yang.common.YangVersion;
import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
import org.opendaylight.yangtools.yang.model.api.SchemaNode;
-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.SchemaNodeIdentifier;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Descendant;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.UsesEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.UsesStatement;
-import org.opendaylight.yangtools.yang.parser.rfc7950.namespace.ChildSchemaNodeNamespace;
import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.YangValidationBundles;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseQNameStatementSupport;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.refine.RefineEffectiveStatementImpl;
import org.opendaylight.yangtools.yang.parser.spi.GroupingNamespace;
+import org.opendaylight.yangtools.yang.parser.spi.SchemaTreeNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.CopyType;
import org.opendaylight.yangtools.yang.parser.spi.meta.InferenceException;
import org.opendaylight.yangtools.yang.parser.spi.meta.ModelActionBuilder;
final StmtContext<QName, UsesStatement, UsesEffectiveStatement> ctx, final UsesStatement declared,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
final GroupingDefinition sourceGrouping = getSourceGrouping(ctx);
- final int flags = computeFlags(ctx, substatements);
+ final int flags = historyAndStatusFlags(ctx, substatements);
final QName argument = ctx.coerceStatementArgument();
if (declared.argument().equals(argument)) {
return new RegularLocalUsesEffectiveStatement(declared, sourceGrouping, flags, substatements);
protected UsesEffectiveStatement createEmptyEffective(
final StmtContext<QName, UsesStatement, UsesEffectiveStatement> ctx, final UsesStatement declared) {
final GroupingDefinition sourceGrouping = getSourceGrouping(ctx);
- final int flags = computeFlags(ctx, ImmutableList.of());
+ final int flags = historyAndStatusFlags(ctx, ImmutableList.of());
final QName argument = ctx.coerceStatementArgument();
return argument.equals(declared.argument())
? new EmptyLocalUsesEffectiveStatement(declared, sourceGrouping, flags)
.buildEffective();
}
- private static int computeFlags(final StmtContext<QName, UsesStatement, UsesEffectiveStatement> ctx,
- final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new FlagsBuilder()
- .setHistory(ctx.getCopyHistory())
- .setStatus(findFirstArgument(substatements, StatusEffectiveStatement.class, Status.CURRENT))
- .toFlags();
- }
-
/**
* Copy statements from a grouping to a target node.
*
subStmtCtx.getStatementSourceReference(),
"Invalid refine argument %s. It must be instance of SchemaNodeIdentifier.", refineArgument);
- final Optional<StmtContext<?, ?, ?>> optRefineTargetCtx = ChildSchemaNodeNamespace.findNode(
+ final Optional<StmtContext<?, ?, ?>> optRefineTargetCtx = SchemaTreeNamespace.findNode(
usesParentCtx, (SchemaNodeIdentifier) refineArgument);
InferenceException.throwIf(!optRefineTargetCtx.isPresent(), subStmtCtx.getStatementSourceReference(),
"Refine target node %s not found.", refineArgument);
SourceException.throwIf(!isSupportedRefineTarget(refineSubstatementCtx, refineTargetNodeCtx),
refineSubstatementCtx.getStatementSourceReference(),
"Error in module '%s' in the refine of uses '%s': can not perform refine of '%s' for the target '%s'.",
- refineSubstatementCtx.getRoot().getStatementArgument(),
+ refineSubstatementCtx.getRoot().rawStatementArgument(),
refineSubstatementCtx.coerceParentContext().getStatementArgument(),
refineSubstatementCtx.getPublicDefinition(), refineTargetNodeCtx.getPublicDefinition());