X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-rfc7950%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Frfc7950%2Fstmt%2Fuses%2FUsesStatementSupport.java;h=c260f2888b27b4cacbba33f9d7129bb13aa31710;hb=6682a8e2a8c02ed7a66bddb8b7a86009ffbbb98d;hp=3fffa8a010067ae78aeaf2602d5b7adbad0e335c;hpb=954f358ee3688cb6f68a3ab84d78f55f71bc3efd;p=yangtools.git diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/uses/UsesStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/uses/UsesStatementSupport.java index 3fffa8a010..c260f2888b 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/uses/UsesStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/uses/UsesStatementSupport.java @@ -22,7 +22,6 @@ import org.opendaylight.yangtools.yang.common.QNameModule; 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; @@ -32,15 +31,13 @@ import org.opendaylight.yangtools.yang.model.api.stmt.RefineStatement; 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; @@ -147,7 +144,7 @@ public final class UsesStatementSupport final StmtContext ctx, final UsesStatement declared, final ImmutableList> 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); @@ -162,7 +159,7 @@ public final class UsesStatementSupport protected UsesEffectiveStatement createEmptyEffective( final StmtContext 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) @@ -188,14 +185,6 @@ public final class UsesStatementSupport .buildEffective(); } - private static int computeFlags(final StmtContext ctx, - final ImmutableList> substatements) { - return new FlagsBuilder() - .setHistory(ctx.getCopyHistory()) - .setStatus(findFirstArgument(substatements, StatusEffectiveStatement.class, Status.CURRENT)) - .toFlags(); - } - /** * Copy statements from a grouping to a target node. * @@ -312,7 +301,7 @@ public final class UsesStatementSupport subStmtCtx.getStatementSourceReference(), "Invalid refine argument %s. It must be instance of SchemaNodeIdentifier.", refineArgument); - final Optional> optRefineTargetCtx = ChildSchemaNodeNamespace.findNode( + final Optional> optRefineTargetCtx = SchemaTreeNamespace.findNode( usesParentCtx, (SchemaNodeIdentifier) refineArgument); InferenceException.throwIf(!optRefineTargetCtx.isPresent(), subStmtCtx.getStatementSourceReference(), "Refine target node %s not found.", refineArgument); @@ -349,7 +338,7 @@ public final class UsesStatementSupport 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());