import org.opendaylight.yangtools.yang.model.api.stmt.UsesStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
import org.opendaylight.yangtools.yang.parser.spi.GroupingNamespace;
-import org.opendaylight.yangtools.yang.parser.spi.SubstatementValidator;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
-import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport;
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;
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.StmtContextUtils;
+import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
import org.opendaylight.yangtools.yang.parser.spi.source.ModuleCtxToModuleQName;
import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
import org.opendaylight.yangtools.yang.parser.spi.validation.ValidationBundlesNamespace;
}
public static class Definition extends
- AbstractStatementSupport<QName, UsesStatement, EffectiveStatement<QName, UsesStatement>> {
+ AbstractQNameStatementSupport<UsesStatement, EffectiveStatement<QName, UsesStatement>> {
public Definition() {
super(YangStmtMapping.USES);
@Override
public QName parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
- return Utils.qNameFromArgument(ctx, value);
+ return StmtContextUtils.qnameFromArgument(ctx, value);
}
@Override
}
super.onFullDefinitionDeclared(usesNode);
- if (StmtContextUtils.isInExtensionBody(usesNode)) {
- return;
- }
-
final ModelActionBuilder usesAction = usesNode.newInferenceAction(ModelProcessingPhase.EFFECTIVE_MODEL);
final QName groupingName = usesNode.getStatementArgument();
* @throws SourceException
* instance of SourceException
*/
- private static void copyFromSourceToTarget(final Mutable<?, ?, ?> sourceGrpStmtCtx,
+ static void copyFromSourceToTarget(final Mutable<?, ?, ?> sourceGrpStmtCtx,
final StatementContextBase<?, ?, ?> targetCtx,
final StmtContext.Mutable<QName, UsesStatement, EffectiveStatement<QName, UsesStatement>> usesNode) {
final Collection<? extends Mutable<?, ?, ?>> declared = sourceGrpStmtCtx.mutableDeclaredSubstatements();
final StatementContextBase<?, ?, ?> targetCtx, final QNameModule targetModule,
final Collection<Mutable<?, ?, ?>> buffer) {
if (needToCopyByUses(original)) {
- final Mutable<?, ?, ?> copy = original.createCopy(targetModule, targetCtx, CopyType.ADDED_BY_USES);
+ final Mutable<?, ?, ?> copy = targetCtx.childCopyOf(original, CopyType.ADDED_BY_USES, targetModule);
buffer.add(copy);
} else if (isReusedByUsesOnTop(original)) {
buffer.add(original);
public static void resolveUsesNode(
final Mutable<QName, UsesStatement, EffectiveStatement<QName, UsesStatement>> usesNode,
- final StatementContextBase<?, ?, ?> targetNodeStmtCtx) {
+ final StmtContext<?, ?, ?> targetNodeStmtCtx) {
for (final Mutable<?, ?, ?> subStmtCtx : usesNode.mutableDeclaredSubstatements()) {
if (StmtContextUtils.producesDeclared(subStmtCtx, RefineStatement.class)
&& areFeaturesSupported(subStmtCtx)) {
}
}
- private static boolean areFeaturesSupported(final Mutable<?, ?, ?> subStmtCtx) {
+ private static boolean areFeaturesSupported(final StmtContext<?, ?, ?> subStmtCtx) {
/*
* In case of Yang 1.1, checks whether features are supported.
*/
return !YangVersion.VERSION_1_1.equals(subStmtCtx.getRootVersion()) || subStmtCtx.isSupportedByFeatures();
}
- private static void performRefine(final Mutable<?, ?, ?> subStmtCtx,
- final StatementContextBase<?, ?, ?> usesParentCtx) {
+ private static void performRefine(final Mutable<?, ?, ?> subStmtCtx, final StmtContext<?, ?, ?> usesParentCtx) {
final Object refineArgument = subStmtCtx.getStatementArgument();
InferenceException.throwIf(!(refineArgument instanceof SchemaNodeIdentifier),
"Refine target node %s not found.", refineTargetNodeIdentifier);
if (StmtContextUtils.isUnknownStatement(refineTargetNodeCtx)) {
- LOG.debug(
- "Refine node '{}' in uses '{}' has target node unknown statement '{}'. Refine has been skipped. At line: {}",
- subStmtCtx.getStatementArgument(), subStmtCtx.getParentContext().getStatementArgument(),
- refineTargetNodeCtx.getStatementArgument(), subStmtCtx.getStatementSourceReference());
+ LOG.debug("Refine node '{}' in uses '{}' has target node unknown statement '{}'. "
+ + "Refine has been skipped. At line: {}", subStmtCtx.getStatementArgument(),
+ subStmtCtx.getParentContext().getStatementArgument(),
+ refineTargetNodeCtx.getStatementArgument(), subStmtCtx.getStatementSourceReference());
subStmtCtx.addAsEffectOfStatement(refineTargetNodeCtx);
return;
}
private static QNameModule getNewQNameModule(final StmtContext<?, ?, ?> targetCtx,
final StmtContext<?, ?, ?> stmtContext) {
- if (targetCtx.isRootContext()) {
+ if (targetCtx.getParentContext() == null) {
return targetCtx.getFromNamespace(ModuleCtxToModuleQName.class, targetCtx);
}
if (targetCtx.getPublicDefinition() == YangStmtMapping.AUGMENT) {
- return Utils.getRootModuleQName(targetCtx);
+ return StmtContextUtils.getRootModuleQName(targetCtx);
}
final Object targetStmtArgument = targetCtx.getStatementArgument();