From: Robert Varga Date: Sat, 31 Oct 2015 13:10:16 +0000 (+0100) Subject: BUG-4556: Introduce StmtContext.getSchemaPath() X-Git-Tag: release/beryllium~174 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=06d1ebbe905312ebc52dcd007209670f77832f52;p=yangtools.git BUG-4556: Introduce StmtContext.getSchemaPath() SchemaContexts are created in top-to-bottom direction, making them useful for holding SchemaPaths. This reduces the memory overhead from not constructing SchemaPaths in a hierarchical manner. Change-Id: I85a49c6c861543a585730c8dac12622605eb20d5 Signed-off-by: Robert Varga --- diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java index ee6007ee29..a762d7fc39 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java @@ -7,20 +7,22 @@ */ package org.opendaylight.yangtools.yang.parser.spi.meta; +import com.google.common.base.Optional; +import java.util.Collection; import java.util.List; import java.util.Map; -import org.opendaylight.yangtools.yang.common.QNameModule; -import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase; -import java.util.Collection; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.model.api.SchemaPath; 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.IdentifierNamespace; import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition; import org.opendaylight.yangtools.yang.model.api.meta.StatementSource; +import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementSourceReference; +import org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase; public interface StmtContext, E extends EffectiveStatement> { @@ -42,10 +44,13 @@ public interface StmtContext, E extends Effect @Nullable A getStatementArgument(); - @Nullable - List getArgumentsFromRoot(); - - List> getStmtContextsFromRoot(); + /** + * Return the {@link SchemaPath} of this statement. Not all statements have a SchemaPath, in which case + * {@link Optional#absent()} is returned. + * + * @return Optional SchemaPath + */ + @Nonnull Optional getSchemaPath(); @Nonnull > V getFromNamespace( diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/RootStatementContext.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/RootStatementContext.java index b1bf364e0c..ee47e07753 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/RootStatementContext.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/RootStatementContext.java @@ -7,10 +7,10 @@ */ package org.opendaylight.yangtools.yang.parser.stmt.reactor; +import com.google.common.base.Optional; import java.util.Collection; -import java.util.LinkedList; -import java.util.List; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour.NamespaceStorageNode; @@ -28,13 +28,13 @@ public class RootStatementContext, E extends E private final SourceSpecificContext sourceContext; private final A argument; - RootStatementContext(ContextBuilder builder, SourceSpecificContext sourceContext) throws SourceException { + RootStatementContext(final ContextBuilder builder, final SourceSpecificContext sourceContext) throws SourceException { super(builder); this.sourceContext = sourceContext; this.argument = builder.getDefinition().parseArgumentValue(this, builder.getRawArgument()); } - RootStatementContext(RootStatementContext original, QNameModule newQNameModule, TypeOfCopy typeOfCopy) + RootStatementContext(final RootStatementContext original, final QNameModule newQNameModule, final TypeOfCopy typeOfCopy) throws SourceException { super(original); @@ -54,8 +54,8 @@ public class RootStatementContext, E extends E * determines whether copy is used by augmentation or uses * @throws SourceException */ - private void copyDeclaredStmts(RootStatementContext original, QNameModule newQNameModule, - TypeOfCopy typeOfCopy) throws SourceException { + private void copyDeclaredStmts(final RootStatementContext original, final QNameModule newQNameModule, + final TypeOfCopy typeOfCopy) throws SourceException { Collection> originalDeclaredSubstatements = original.declaredSubstatements(); for (StmtContext stmtContext : originalDeclaredSubstatements) { this.addEffectiveSubstatement(stmtContext.createCopy(newQNameModule, this, typeOfCopy)); @@ -69,8 +69,8 @@ public class RootStatementContext, E extends E * determines whether copy is used by augmentation or uses * @throws SourceException */ - private void copyEffectiveStmts(RootStatementContext original, QNameModule newQNameModule, - TypeOfCopy typeOfCopy) throws SourceException { + private void copyEffectiveStmts(final RootStatementContext original, final QNameModule newQNameModule, + final TypeOfCopy typeOfCopy) throws SourceException { Collection> originalEffectiveSubstatements = original.effectiveSubstatements(); for (StmtContext stmtContext : originalEffectiveSubstatements) { this.addEffectiveSubstatement(stmtContext.createCopy(newQNameModule, this, typeOfCopy)); @@ -128,7 +128,7 @@ public class RootStatementContext, E extends E * @throws SourceException instance of SourceException */ @Override - public StatementContextBase createCopy(StatementContextBase newParent, TypeOfCopy typeOfCopy) + public StatementContextBase createCopy(final StatementContextBase newParent, final TypeOfCopy typeOfCopy) throws SourceException { return createCopy(null, newParent, typeOfCopy); } @@ -139,8 +139,8 @@ public class RootStatementContext, E extends E * @throws SourceException instance of SourceException */ @Override - public StatementContextBase createCopy(QNameModule newQNameModule, - StatementContextBase newParent, TypeOfCopy typeOfCopy) throws SourceException { + public StatementContextBase createCopy(final QNameModule newQNameModule, + final StatementContextBase newParent, final TypeOfCopy typeOfCopy) throws SourceException { RootStatementContext copy = new RootStatementContext<>(this, newQNameModule, typeOfCopy); copy.addAllToCopyHistory(this.getCopyHistory()); @@ -155,24 +155,9 @@ public class RootStatementContext, E extends E return copy; } - /** - * @return this' argument as it is the only from root (this) - */ - @Override - public List getArgumentsFromRoot() { - List argumentList = new LinkedList<>(); - argumentList.add(argument); - return argumentList; - } - - /** - * @return this as it is the only\context from root (this) - */ @Override - public List> getStmtContextsFromRoot() { - List> stmtContextsList = new LinkedList<>(); - stmtContextsList.add(this); - return stmtContextsList; + public Optional getSchemaPath() { + return Optional.of(SchemaPath.ROOT); } /** @@ -182,5 +167,4 @@ public class RootStatementContext, E extends E public boolean isRootContext() { return true; } - } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SubstatementContext.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SubstatementContext.java index 04a01d17fc..6e2f652a06 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SubstatementContext.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SubstatementContext.java @@ -7,54 +7,58 @@ */ package org.opendaylight.yangtools.yang.parser.stmt.reactor; -import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier; -import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils; -import org.opendaylight.yangtools.yang.model.api.stmt.KeyStatement; -import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -import java.util.List; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.GroupingUtils; -import org.opendaylight.yangtools.yang.common.QNameModule; +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; +import com.google.common.base.Verify; import java.util.Collection; import org.opendaylight.yangtools.yang.common.QName; -import com.google.common.base.Preconditions; +import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.model.api.SchemaPath; 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.AugmentStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.ChoiceStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.KeyStatement; +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.UsesStatement; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour.NamespaceStorageNode; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour.Registry; +import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; +import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; +import org.opendaylight.yangtools.yang.parser.spi.validation.ValidationBundlesNamespace; +import org.opendaylight.yangtools.yang.parser.spi.validation.ValidationBundlesNamespace.ValidationBundleType; +import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.GroupingUtils; +import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; -class SubstatementContext, E extends EffectiveStatement> +final class SubstatementContext, E extends EffectiveStatement> extends StatementContextBase { private final StatementContextBase parent; private final A argument; + private volatile SchemaPath schemaPath; - SubstatementContext(StatementContextBase parent, - ContextBuilder builder) throws SourceException { + SubstatementContext(final StatementContextBase parent, + final ContextBuilder builder) throws SourceException { super(builder); - this.parent = Preconditions.checkNotNull(parent, - "Parent must not be null"); - this.argument = builder.getDefinition().parseArgumentValue(this, - builder.getRawArgument()); + this.parent = Preconditions.checkNotNull(parent, "Parent must not be null"); + this.argument = builder.getDefinition().parseArgumentValue(this, builder.getRawArgument()); } @SuppressWarnings("unchecked") - SubstatementContext(SubstatementContext original, - QNameModule newQNameModule, - StatementContextBase newParent, TypeOfCopy typeOfCopy) - throws SourceException { + SubstatementContext(final SubstatementContext original, + final QNameModule newQNameModule, + final StatementContextBase newParent, final TypeOfCopy typeOfCopy) { super(original); this.parent = newParent; if (newQNameModule != null) { if (original.argument instanceof QName) { QName originalQName = (QName) original.argument; - this.argument = (A) QName.create(newQNameModule, - originalQName.getLocalName()); - } else if (StmtContextUtils.producesDeclared(original, - KeyStatement.class)) { - this.argument = (A) StmtContextUtils - .replaceModuleQNameForKey( + this.argument = (A) QName.create(newQNameModule, originalQName.getLocalName()); + } else if (StmtContextUtils.producesDeclared(original, KeyStatement.class)) { + this.argument = (A) StmtContextUtils.replaceModuleQNameForKey( (StmtContext, KeyStatement, ?>) original, newQNameModule); } else { @@ -65,8 +69,9 @@ class SubstatementContext, E extends Effective } } - private void copyDeclaredStmts(SubstatementContext original, - QNameModule newQNameModule, TypeOfCopy typeOfCopy) + + private void copyDeclaredStmts(final SubstatementContext original, + final QNameModule newQNameModule, final TypeOfCopy typeOfCopy) throws SourceException { Collection> originalDeclaredSubstatements = original .declaredSubstatements(); @@ -81,8 +86,8 @@ class SubstatementContext, E extends Effective } } - private void copyEffectiveStmts(SubstatementContext original, - QNameModule newQNameModule, TypeOfCopy typeOfCopy) + private void copyEffectiveStmts(final SubstatementContext original, + final QNameModule newQNameModule, final TypeOfCopy typeOfCopy) throws SourceException { Collection> originalEffectiveSubstatements = original .effectiveSubstatements(); @@ -124,17 +129,16 @@ class SubstatementContext, E extends Effective @Override public StatementContextBase createCopy( - StatementContextBase newParent, TypeOfCopy typeOfCopy) + final StatementContextBase newParent, final TypeOfCopy typeOfCopy) throws SourceException { return createCopy(null, newParent, typeOfCopy); } @Override - public StatementContextBase createCopy(QNameModule newQNameModule, - StatementContextBase newParent, TypeOfCopy typeOfCopy) + public StatementContextBase createCopy(final QNameModule newQNameModule, + final StatementContextBase newParent, final TypeOfCopy typeOfCopy) throws SourceException { - SubstatementContext copy = new SubstatementContext<>(this, - newQNameModule, newParent, typeOfCopy); + SubstatementContext copy = new SubstatementContext<>(this, newQNameModule, newParent, typeOfCopy); copy.addAllToCopyHistory(this.getCopyHistory()); copy.addToCopyHistory(typeOfCopy); @@ -152,19 +156,68 @@ class SubstatementContext, E extends Effective return copy; } - @Override - public List getArgumentsFromRoot() { - List argumentsFromRoot = parent.getArgumentsFromRoot(); - argumentsFromRoot.add(argument); - return argumentsFromRoot; + private boolean isSupportedAsShorthandCase() { + final Collection supportedCaseShorthands = getFromNamespace(ValidationBundlesNamespace.class, + ValidationBundleType.SUPPORTED_CASE_SHORTHANDS); + return supportedCaseShorthands == null || supportedCaseShorthands.contains(getPublicDefinition()); + } + + private SchemaPath createSchemaPath() { + final Optional maybeParentPath = parent.getSchemaPath(); + Verify.verify(maybeParentPath.isPresent(), "Parent %s does not have a SchemaPath", parent); + final SchemaPath parentPath = maybeParentPath.get(); + + if (argument instanceof QName) { + QName qname = (QName) argument; + if (StmtContextUtils.producesDeclared(this, UsesStatement.class)) { + return maybeParentPath.orNull(); + } + + final SchemaPath path; + if (StmtContextUtils.producesDeclared(getParentContext(), ChoiceStatement.class) + && isSupportedAsShorthandCase()) { + path = parentPath.createChild(qname); + } else { + path = parentPath; + } + return path.createChild(qname); + } + if (argument instanceof String) { + // FIXME: This may yield illegal argument exceptions + final StatementContextBase originalCtx = getOriginalCtx(); + final QName qname = (originalCtx != null) ? Utils.qNameFromArgument(originalCtx, (String) argument) + : Utils.qNameFromArgument(this, (String) argument); + return parentPath.createChild(qname); + } + if (argument instanceof SchemaNodeIdentifier && + (StmtContextUtils.producesDeclared(this, AugmentStatement.class) + || StmtContextUtils.producesDeclared(this, RefineStatement.class))) { + + return parentPath.createChild(((SchemaNodeIdentifier) argument).getPathFromRoot()); + } + if (Utils.isUnknownNode(this)) { + return parentPath.createChild(getPublicDefinition().getStatementName()); + } + + // FIXME: this does not look right + return maybeParentPath.orNull(); } @Override - public List> getStmtContextsFromRoot() { - List> stmtContextsList = parent - .getStmtContextsFromRoot(); - stmtContextsList.add(this); - return stmtContextsList; + public Optional getSchemaPath() { + SchemaPath local = schemaPath; + if (local == null) { + synchronized (this) { + local = schemaPath; + if (local == null) { + local = createSchemaPath(); + schemaPath = local; + } + } + + } + + return Optional.fromNullable(local); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/Utils.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/Utils.java index 806857fabf..b4a420d14c 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/Utils.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/Utils.java @@ -18,8 +18,6 @@ import java.util.Arrays; import java.util.Collection; import java.util.Date; import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; import java.util.List; import java.util.Objects; import java.util.Set; @@ -37,18 +35,13 @@ import org.opendaylight.yangtools.yang.common.YangConstants; import org.opendaylight.yangtools.yang.model.api.Deviation; import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier; import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath; -import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.Status; -import org.opendaylight.yangtools.yang.model.api.stmt.AugmentStatement; import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement; -import org.opendaylight.yangtools.yang.model.api.stmt.ChoiceStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ModuleStatement; -import org.opendaylight.yangtools.yang.model.api.stmt.RefineStatement; import org.opendaylight.yangtools.yang.model.api.stmt.RevisionStatement; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Relative; import org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleStatement; -import org.opendaylight.yangtools.yang.model.api.stmt.UsesStatement; import org.opendaylight.yangtools.yang.model.util.RevisionAwareXPathImpl; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils; @@ -59,15 +52,12 @@ import org.opendaylight.yangtools.yang.parser.spi.source.ModuleIdentifierToModul import org.opendaylight.yangtools.yang.parser.spi.source.ModuleNameToModuleQName; import org.opendaylight.yangtools.yang.parser.spi.source.PrefixToModule; import org.opendaylight.yangtools.yang.parser.spi.source.QNameToStatementDefinition; -import org.opendaylight.yangtools.yang.parser.spi.validation.ValidationBundlesNamespace; -import org.opendaylight.yangtools.yang.parser.spi.validation.ValidationBundlesNamespace.ValidationBundleType; import org.opendaylight.yangtools.yang.parser.stmt.reactor.RootStatementContext; import org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public final class Utils { - private static final Logger LOG = LoggerFactory.getLogger(Utils.class); private static final CharMatcher DOUBLE_QUOTE_MATCHER = CharMatcher.is('"'); private static final CharMatcher SINGLE_QUOTE_MATCHER = CharMatcher.is('\''); @@ -300,75 +290,11 @@ public final class Utils { return (StatementContextBase) rootStmtCtx.getFromNamespace(SchemaNodeIdentifierBuildNamespace.class, node); } - public static SchemaPath getSchemaPath(final StmtContext ctx) { - - if (ctx == null) { - return null; - } - - final Iterator> iteratorFromRoot = ctx.getStmtContextsFromRoot().iterator(); - // skip root argument - if (iteratorFromRoot.hasNext()) { - iteratorFromRoot.next(); - } - - List qNamesFromRoot = new LinkedList<>(); - while (iteratorFromRoot.hasNext()) { - StmtContext nextStmtCtx = iteratorFromRoot.next(); - Object nextStmtArgument = nextStmtCtx.getStatementArgument(); - if (nextStmtArgument instanceof QName) { - QName qname = (QName) nextStmtArgument; - if (StmtContextUtils.producesDeclared(nextStmtCtx, UsesStatement.class)) { - continue; - } - if (StmtContextUtils.producesDeclared(nextStmtCtx.getParentContext(), ChoiceStatement.class) - && isSupportedAsShorthandCase(nextStmtCtx)) { - qNamesFromRoot.add(qname); - } - qNamesFromRoot.add(qname); - } else if (nextStmtArgument instanceof String) { - // FIXME: This may yield illegal argument exceptions - StatementContextBase originalCtx = ctx - .getOriginalCtx(); - final QName qName = (originalCtx != null) ? qNameFromArgument( - originalCtx, (String) nextStmtArgument) - : qNameFromArgument(ctx, (String) nextStmtArgument); - qNamesFromRoot.add(qName); - } else if ((StmtContextUtils.producesDeclared(nextStmtCtx, AugmentStatement.class) - || StmtContextUtils.producesDeclared(nextStmtCtx, RefineStatement.class)) - && nextStmtArgument instanceof SchemaNodeIdentifier) { - addQNamesFromSchemaNodeIdentifierToList(qNamesFromRoot, (SchemaNodeIdentifier) nextStmtArgument); - } else if (isUnknownNode(nextStmtCtx)) { - qNamesFromRoot.add(nextStmtCtx.getPublicDefinition().getStatementName()); - } else { - return SchemaPath.SAME; - } - } - - final SchemaPath schemaPath = SchemaPath.create(qNamesFromRoot, true); - return schemaPath; - } - public static boolean isUnknownNode(final StmtContext stmtCtx) { return stmtCtx.getPublicDefinition().getDeclaredRepresentationClass() .isAssignableFrom(UnknownStatementImpl.class); } - private static boolean isSupportedAsShorthandCase(final StmtContext statementCtx) { - - Collection supportedCaseShorthands = statementCtx.getFromNamespace(ValidationBundlesNamespace.class, - ValidationBundleType.SUPPORTED_CASE_SHORTHANDS); - - return supportedCaseShorthands == null || supportedCaseShorthands.contains(statementCtx.getPublicDefinition()); - } - - private static void addQNamesFromSchemaNodeIdentifierToList(final List qNamesFromRoot, - final SchemaNodeIdentifier augmentTargetPath) { - for (QName qname : augmentTargetPath.getPathFromRoot()) { - qNamesFromRoot.add(qname); - } - } - public static Deviation.Deviate parseDeviateFromString(final String deviate) { // Yang constants should be lowercase so we have throw if value does not diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AbstractEffectiveSchemaNode.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AbstractEffectiveSchemaNode.java index 46bbfd426b..9c56461db6 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AbstractEffectiveSchemaNode.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AbstractEffectiveSchemaNode.java @@ -17,7 +17,6 @@ import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; abstract class AbstractEffectiveSchemaNode> extends AbstractEffectiveDocumentedNode implements SchemaNode { @@ -26,10 +25,10 @@ abstract class AbstractEffectiveSchemaNode> e private final SchemaPath path; private final List unknownNodes; - AbstractEffectiveSchemaNode(StmtContext ctx) { + AbstractEffectiveSchemaNode(final StmtContext ctx) { super(ctx); this.qname = ctx.getStatementArgument(); - this.path = Utils.getSchemaPath(ctx); + this.path = ctx.getSchemaPath().get(); Collection> effectiveSubstatements = effectiveSubstatements(); ImmutableList.Builder listBuilder = new ImmutableList.Builder<>(); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AbstractEffectiveSimpleDataNodeContainer.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AbstractEffectiveSimpleDataNodeContainer.java index cc99f07f04..7503af7e19 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AbstractEffectiveSimpleDataNodeContainer.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AbstractEffectiveSimpleDataNodeContainer.java @@ -26,7 +26,6 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.TypeOfCopy; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; abstract class AbstractEffectiveSimpleDataNodeContainer> extends AbstractEffectiveDocumentedDataNodeContainer implements DataNodeContainer, AugmentationTarget, @@ -44,11 +43,11 @@ abstract class AbstractEffectiveSimpleDataNodeContainer augmentations; private final List unknownNodes; - public AbstractEffectiveSimpleDataNodeContainer(StmtContext ctx) { + public AbstractEffectiveSimpleDataNodeContainer(final StmtContext ctx) { super(ctx); this.qname = ctx.getStatementArgument(); - this.path = Utils.getSchemaPath(ctx); + this.path = ctx.getSchemaPath().get(); this.constraints = new EffectiveConstraintDefinitionImpl(this); ConfigEffectiveStatementImpl configStmt = firstEffective(ConfigEffectiveStatementImpl.class); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ExtendedTypeEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ExtendedTypeEffectiveStatementImpl.java index fe0ccae5aa..912ffc99ae 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ExtendedTypeEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ExtendedTypeEffectiveStatementImpl.java @@ -69,9 +69,9 @@ implements final StmtContext typeStmt = ctx.getFromNamespace(TypeNamespace.class, qName); if (typeStmt == null) { - path = Utils.getSchemaPath(ctx); + path = ctx.getSchemaPath().get(); } else { - path = Utils.getSchemaPath(ctx.getFromNamespace(TypeNamespace.class, qName)); + path = ctx.getFromNamespace(TypeNamespace.class, qName).getSchemaPath().get(); } UnitsEffectiveStatementImpl unitsStmt = firstEffective(UnitsEffectiveStatementImpl.class); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ExtensionEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ExtensionEffectiveStatementImpl.java index 46e32b3ead..ea51f04f30 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ExtensionEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ExtensionEffectiveStatementImpl.java @@ -19,7 +19,6 @@ import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; public class ExtensionEffectiveStatementImpl extends AbstractEffectiveDocumentedNode implements ExtensionDefinition { @@ -34,7 +33,7 @@ public class ExtensionEffectiveStatementImpl extends AbstractEffectiveDocumented final StmtContext> ctx) { super(ctx); this.qname = ctx.getStatementArgument(); - this.schemaPath = Utils.getSchemaPath(ctx); + this.schemaPath = ctx.getSchemaPath().get(); // initSubstatementCollections Collection> effectiveSubstatements = effectiveSubstatements(); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/GroupingEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/GroupingEffectiveStatementImpl.java index 25696438a3..7f0275d600 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/GroupingEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/GroupingEffectiveStatementImpl.java @@ -20,7 +20,6 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.TypeOfCopy; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; public class GroupingEffectiveStatementImpl extends AbstractEffectiveDocumentedDataNodeContainer implements GroupingDefinition { @@ -34,7 +33,7 @@ public class GroupingEffectiveStatementImpl extends super(ctx); qname = ctx.getStatementArgument(); - path = Utils.getSchemaPath(ctx); + path = ctx.getSchemaPath().get(); // initCopyType List copyTypesFromOriginal = ctx.getCopyHistory(); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/NotificationEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/NotificationEffectiveStatementImpl.java index 849ae138f4..67e46139c8 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/NotificationEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/NotificationEffectiveStatementImpl.java @@ -23,7 +23,6 @@ import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; public class NotificationEffectiveStatementImpl extends AbstractEffectiveDocumentedDataNodeContainer implements NotificationDefinition { @@ -36,7 +35,7 @@ public class NotificationEffectiveStatementImpl extends final StmtContext> ctx) { super(ctx); this.qname = ctx.getStatementArgument(); - this.path = Utils.getSchemaPath(ctx); + this.path = ctx.getSchemaPath().get(); // initSubstatementCollections Collection> effectiveSubstatements = effectiveSubstatements(); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/RefineEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/RefineEffectiveStatementImpl.java index ebef3fd511..34bad08f45 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/RefineEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/RefineEffectiveStatementImpl.java @@ -19,7 +19,6 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.RefineStatement; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; public final class RefineEffectiveStatementImpl extends AbstractEffectiveDocumentedNode implements SchemaNode { @@ -32,7 +31,7 @@ public final class RefineEffectiveStatementImpl extends public RefineEffectiveStatementImpl(final StmtContext ctx) { super(ctx); qname = ctx.getStatementArgument().getLastComponent(); - path = Utils.getSchemaPath(ctx); + path = ctx.getSchemaPath().get(); refineTargetNode = (SchemaNode) ctx.getEffectOfStatement().iterator().next().buildEffective(); // initSubstatementCollectionsAndFields diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/UnknownEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/UnknownEffectiveStatementImpl.java index fe20cdb8d5..8ce35406c7 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/UnknownEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/UnknownEffectiveStatementImpl.java @@ -72,7 +72,7 @@ public final class UnknownEffectiveStatementImpl extends AbstractEffectiveDocume } this.maybeQNameArgument = maybeQNameArgumentInit; } - path = Utils.getSchemaPath(ctx.getParentContext()).createChild(maybeQNameArgument); + path = ctx.getParentContext().getSchemaPath().get().createChild(maybeQNameArgument); nodeParameter = (ctx.rawStatementArgument() == null) ? "" : ctx.rawStatementArgument(); // TODO init other fields (see Bug1412Test) diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/UsesEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/UsesEffectiveStatementImpl.java index 421c11153c..7571f49f33 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/UsesEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/UsesEffectiveStatementImpl.java @@ -31,7 +31,6 @@ import org.opendaylight.yangtools.yang.model.api.stmt.UsesStatement; import org.opendaylight.yangtools.yang.parser.spi.GroupingNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.TypeOfCopy; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; public final class UsesEffectiveStatementImpl extends EffectiveStatementBase implements UsesNode { private final SchemaPath groupingPath; @@ -47,7 +46,7 @@ public final class UsesEffectiveStatementImpl extends EffectiveStatementBase> grpCtx = ctx.getFromNamespace( GroupingNamespace.class, ctx.getStatementArgument()); - this.groupingPath = Utils.getSchemaPath(grpCtx); + this.groupingPath = grpCtx.getSchemaPath().get(); // initCopyType List copyTypesFromOriginal = ctx.getCopyHistory(); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/BitEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/BitEffectiveStatementImpl.java index a471895f92..7493a61469 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/BitEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/BitEffectiveStatementImpl.java @@ -19,7 +19,6 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.BitStatement; import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.DescriptionEffectiveStatementImpl; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.EffectiveStatementBase; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.PositionEffectiveStatementImpl; @@ -43,7 +42,7 @@ public class BitEffectiveStatementImpl extends EffectiveStatementBase unknownSchemaNodesInit = new ArrayList<>(); qName = ctx.getStatementArgument(); - schemaPath = Utils.getSchemaPath(ctx); + schemaPath = ctx.getSchemaPath().get(); for (final EffectiveStatement effectiveStatement : effectiveSubstatements()) { if (effectiveStatement instanceof DescriptionEffectiveStatementImpl) { diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/BitsSpecificationEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/BitsSpecificationEffectiveStatementImpl.java index f3b9cfd196..21b59e5292 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/BitsSpecificationEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/BitsSpecificationEffectiveStatementImpl.java @@ -24,7 +24,6 @@ import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition; import org.opendaylight.yangtools.yang.model.util.BaseTypes; import org.opendaylight.yangtools.yang.model.util.BitsType; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.EffectiveStatementBase; public class BitsSpecificationEffectiveStatementImpl extends @@ -46,7 +45,7 @@ public class BitsSpecificationEffectiveStatementImpl extends List bitsInit = new ArrayList<>(); - path = Utils.getSchemaPath(ctx.getParentContext()).createChild(QNAME); + path = ctx.getParentContext().getSchemaPath().get().createChild(QNAME); for (final EffectiveStatement effectiveStatement : effectiveSubstatements()) { if (effectiveStatement instanceof Bit) { diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/Decimal64SpecificationEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/Decimal64SpecificationEffectiveStatementImpl.java index d18c0b3dde..e8ee0aa436 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/Decimal64SpecificationEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/Decimal64SpecificationEffectiveStatementImpl.java @@ -29,7 +29,6 @@ import org.opendaylight.yangtools.yang.model.util.ExtendedType; import org.opendaylight.yangtools.yang.model.util.ExtendedType.Builder; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.TypeUtils; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.EffectiveStatementBase; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.FractionDigitsEffectiveStatementImpl; @@ -85,13 +84,13 @@ public class Decimal64SpecificationEffectiveStatementImpl extends if (!initRanges.isEmpty() && validateRanges(initRanges)) { isExtended = true; rangeConstraints = ImmutableList.copyOf(initRanges); - SchemaPath parentPath = Utils.getSchemaPath(ctx.getParentContext()); + SchemaPath parentPath = ctx.getParentContext().getSchemaPath().get(); extendedTypeQName = QName.create(parentPath.getLastComponent().getModule(), QNAME.getLocalName()); path = parentPath.createChild(extendedTypeQName); } else { isExtended = false; rangeConstraints = DEFAULT_RANGE_STATEMENTS; - path = Utils.getSchemaPath(ctx.getParentContext()).createChild(QNAME); + path = ctx.getParentContext().getSchemaPath().get().createChild(QNAME); } } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/EnumEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/EnumEffectiveStatementImpl.java index 87c275b092..f4dbd351e5 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/EnumEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/EnumEffectiveStatementImpl.java @@ -17,7 +17,6 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.EnumStatement; import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition.EnumPair; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.DescriptionEffectiveStatementImpl; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.EffectiveStatementBase; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.ReferenceEffectiveStatementImpl; @@ -34,7 +33,7 @@ public class EnumEffectiveStatementImpl extends EffectiveStatementBase ctx) { super(ctx); - path = Utils.getSchemaPath(ctx); + path = ctx.getSchemaPath().get(); for (final EffectiveStatement effectiveStatement : effectiveSubstatements()) { if (effectiveStatement instanceof DescriptionEffectiveStatementImpl) { diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/EnumSpecificationEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/EnumSpecificationEffectiveStatementImpl.java index 326d5a44b6..74454616a9 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/EnumSpecificationEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/EnumSpecificationEffectiveStatementImpl.java @@ -25,7 +25,6 @@ import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement.EnumSpecific import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition; import org.opendaylight.yangtools.yang.model.util.EnumerationType; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.EffectiveStatementBase; public class EnumSpecificationEffectiveStatementImpl extends @@ -47,7 +46,7 @@ public class EnumSpecificationEffectiveStatementImpl extends List enumsInit = new ArrayList<>(); - path = Utils.getSchemaPath(ctx.getParentContext()).createChild(QNAME); + path = ctx.getParentContext().getSchemaPath().get().createChild(QNAME); for (final EffectiveStatement effectiveStatement : effectiveSubstatements()) { if (effectiveStatement instanceof EnumPair) { diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/IdentityRefSpecificationEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/IdentityRefSpecificationEffectiveStatementImpl.java index 69ad633f07..cb8dca2e6d 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/IdentityRefSpecificationEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/IdentityRefSpecificationEffectiveStatementImpl.java @@ -25,7 +25,6 @@ import org.opendaylight.yangtools.yang.model.util.IdentityrefType; import org.opendaylight.yangtools.yang.parser.spi.IdentityNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.TypeUtils; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.BaseEffectiveStatementImpl; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.EffectiveStatementBase; @@ -49,7 +48,7 @@ public class IdentityRefSpecificationEffectiveStatementImpl extends final StmtContext> ctx) { super(ctx); - path = Utils.getSchemaPath(ctx.getParentContext()).createChild(QNAME); + path = ctx.getParentContext().getSchemaPath().get().createChild(QNAME); final BaseEffectiveStatementImpl base = firstEffective(BaseEffectiveStatementImpl.class); if (base != null) { diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/IntegerEffectiveImplBase.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/IntegerEffectiveImplBase.java index c1c6a07301..872315af09 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/IntegerEffectiveImplBase.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/IntegerEffectiveImplBase.java @@ -22,7 +22,6 @@ import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement; import org.opendaylight.yangtools.yang.model.api.type.IntegerTypeDefinition; import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.EffectiveStatementBase; abstract class IntegerEffectiveImplBase extends @@ -42,7 +41,7 @@ abstract class IntegerEffectiveImplBase extends super(ctx); this.qName = QName.create(YangConstants.RFC6020_YANG_MODULE, localName); - path = Utils.getSchemaPath(ctx); + path = ctx.getSchemaPath().get(); final String rangeDescription = "Integer values between " + minRange + " and " + maxRange + ", inclusively."; final RangeConstraint defaultRange = new RangeConstraintEffectiveImpl(minRange, maxRange, diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/LeafrefSpecificationEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/LeafrefSpecificationEffectiveStatementImpl.java index 02f891c3cd..8af6d8dfe7 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/LeafrefSpecificationEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/LeafrefSpecificationEffectiveStatementImpl.java @@ -23,7 +23,6 @@ import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement.LeafrefSpeci import org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition; import org.opendaylight.yangtools.yang.model.util.Leafref; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.EffectiveStatementBase; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.PathEffectiveStatementImpl; @@ -43,7 +42,7 @@ public class LeafrefSpecificationEffectiveStatementImpl extends EffectiveStateme public LeafrefSpecificationEffectiveStatementImpl(final StmtContext> ctx) { super(ctx); - path = Utils.getSchemaPath(ctx.getParentContext()).createChild(QNAME); + path = ctx.getParentContext().getSchemaPath().get().createChild(QNAME); for (final EffectiveStatement effectiveStatement : effectiveSubstatements()) { if (effectiveStatement instanceof PathEffectiveStatementImpl) { diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/UnsignedIntegerEffectiveImplBase.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/UnsignedIntegerEffectiveImplBase.java index 12b9b35bdb..8cbb1d5a91 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/UnsignedIntegerEffectiveImplBase.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/UnsignedIntegerEffectiveImplBase.java @@ -22,7 +22,6 @@ import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement; import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint; import org.opendaylight.yangtools.yang.model.api.type.UnsignedIntegerTypeDefinition; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.EffectiveStatementBase; abstract class UnsignedIntegerEffectiveImplBase extends @@ -43,7 +42,7 @@ abstract class UnsignedIntegerEffectiveImplBase extends super(ctx); this.qName = QName.create(YangConstants.RFC6020_YANG_MODULE, localName); - path = Utils.getSchemaPath(ctx); + path = ctx.getSchemaPath().get(); final String rangeDescription = "Integer values between " + MIN_RANGE + " and " + maxRange + ", inclusively."; final RangeConstraint defaultRange = new RangeConstraintEffectiveImpl(MIN_RANGE, maxRange,