From 742be43770eb77e1898466d3d887422cc9127e40 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 8 Jun 2017 02:09:44 +0200 Subject: [PATCH] BUG-7052: Move qnameFromArgument to StmtContextUtils This has no dependencies on RFC6020, move it to common statement utilities. Also takes all utility methods used by it. This removes {BuildGlobal,Substatement}Context->rfc6020.Utils and rfc6020.Utils -> reactor.RootStatementContext dependencies, which by defition is Good. Change-Id: I9ff90a0be8c4eaee2c085c9333a71c12619d2d7c Signed-off-by: Robert Varga --- .../parser/spi/meta/StmtContextUtils.java | 141 ++++++++++++++++- .../stmt/reactor/BuildGlobalContext.java | 6 +- .../stmt/reactor/SubstatementContext.java | 7 +- .../stmt/rfc6020/AnyxmlStatementImpl.java | 3 +- .../stmt/rfc6020/ArgumentStatementImpl.java | 3 +- .../stmt/rfc6020/AugmentStatementImpl.java | 2 +- .../stmt/rfc6020/BaseStatementImpl.java | 2 +- .../parser/stmt/rfc6020/BitStatementImpl.java | 3 +- .../stmt/rfc6020/CaseStatementImpl.java | 3 +- .../stmt/rfc6020/ChoiceStatementImpl.java | 3 +- .../stmt/rfc6020/ContainerStatementImpl.java | 3 +- .../stmt/rfc6020/ExtensionStatementImpl.java | 2 +- .../stmt/rfc6020/FeatureStatementImpl.java | 3 +- .../stmt/rfc6020/GroupingStatementImpl.java | 3 +- .../stmt/rfc6020/IdentityStatementImpl.java | 3 +- .../stmt/rfc6020/IfFeatureStatementImpl.java | 5 +- .../stmt/rfc6020/InputStatementImpl.java | 3 +- .../parser/stmt/rfc6020/KeyStatementImpl.java | 2 +- .../stmt/rfc6020/LeafListStatementImpl.java | 3 +- .../stmt/rfc6020/LeafStatementImpl.java | 2 +- .../stmt/rfc6020/ListStatementImpl.java | 3 +- .../stmt/rfc6020/ModuleStatementSupport.java | 7 +- .../rfc6020/NotificationStatementImpl.java | 3 +- .../stmt/rfc6020/OutputStatementImpl.java | 3 +- .../parser/stmt/rfc6020/RpcStatementImpl.java | 2 +- .../stmt/rfc6020/StmtNamespaceContext.java | 3 +- .../stmt/rfc6020/SubmoduleStatementImpl.java | 5 +- .../stmt/rfc6020/TypeStatementImpl.java | 5 +- .../stmt/rfc6020/TypedefStatementImpl.java | 3 +- .../stmt/rfc6020/UsesStatementImpl.java | 4 +- .../yang/parser/stmt/rfc6020/Utils.java | 148 +----------------- .../AugmentEffectiveStatementImpl.java | 4 +- .../ImportEffectiveStatementImpl.java | 4 +- .../UnknownEffectiveStatementImpl.java | 4 +- .../YangDataEffectiveStatementImpl.java | 4 +- .../stmt/rfc7950/ActionStatementImpl.java | 3 +- .../stmt/rfc7950/AnydataStatementImpl.java | 4 +- 37 files changed, 210 insertions(+), 201 deletions(-) diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContextUtils.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContextUtils.java index 2877fc374f..9e7aa45ce8 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContextUtils.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContextUtils.java @@ -9,34 +9,46 @@ package org.opendaylight.yangtools.yang.parser.spi.meta; import com.google.common.base.Preconditions; import com.google.common.base.Splitter; +import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet.Builder; import com.google.common.collect.Iterables; import java.util.Collection; +import java.util.Date; +import java.util.Optional; import java.util.Set; import java.util.function.Predicate; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.common.YangVersion; +import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier; 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.StatementDefinition; +import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement; import org.opendaylight.yangtools.yang.model.api.stmt.KeyStatement; import org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement; import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryStatement; import org.opendaylight.yangtools.yang.model.api.stmt.MinElementsStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.ModuleStatement; import org.opendaylight.yangtools.yang.model.api.stmt.PresenceStatement; +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.SubmoduleStatement; +import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; +import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; +import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToPrefixToModuleName; +import org.opendaylight.yangtools.yang.parser.spi.source.ImpPrefixToModuleIdentifier; +import org.opendaylight.yangtools.yang.parser.spi.source.ModuleCtxToModuleQName; +import org.opendaylight.yangtools.yang.parser.spi.source.ModuleIdentifierToModuleQName; +import org.opendaylight.yangtools.yang.parser.spi.source.ModuleNameToModuleQName; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.UnknownStatementImpl; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangDataStatementImpl; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; public final class StmtContextUtils { - private static final Logger LOG = LoggerFactory.getLogger(StmtContextUtils.class); - public static final Splitter LIST_KEY_SPLITTER = Splitter.on(' ').omitEmptyStrings().trimResults(); private StmtContextUtils() { @@ -474,4 +486,125 @@ public final class StmtContextUtils { statementDef.getStatementName(), leafStmtCtx.getStatementArgument()); }); } + + public static QName qnameFromArgument(StmtContext ctx, final String value) { + if (Strings.isNullOrEmpty(value)) { + return ctx.getPublicDefinition().getStatementName(); + } + + String prefix; + QNameModule qNameModule = null; + String localName = null; + + final String[] namesParts = value.split(":"); + switch (namesParts.length) { + case 1: + localName = namesParts[0]; + qNameModule = StmtContextUtils.getRootModuleQName(ctx); + break; + default: + prefix = namesParts[0]; + localName = namesParts[1]; + qNameModule = StmtContextUtils.getModuleQNameByPrefix(ctx, prefix); + // in case of unknown statement argument, we're not going to parse it + if (qNameModule == null + && ctx.getPublicDefinition().getDeclaredRepresentationClass() + .isAssignableFrom(UnknownStatementImpl.class)) { + localName = value; + qNameModule = StmtContextUtils.getRootModuleQName(ctx); + } + if (qNameModule == null + && ctx.getCopyHistory().getLastOperation() == CopyType.ADDED_BY_AUGMENTATION) { + ctx = ctx.getOriginalCtx(); + qNameModule = StmtContextUtils.getModuleQNameByPrefix(ctx, prefix); + } + break; + } + + qNameModule = InferenceException.throwIfNull(qNameModule, ctx.getStatementSourceReference(), + "Cannot resolve QNameModule for '%s'", value); + + final QNameModule resultQNameModule; + if (qNameModule.getRevision() == null) { + resultQNameModule = QNameModule.create(qNameModule.getNamespace(), SimpleDateFormatUtil.DEFAULT_DATE_REV) + .intern(); + } else { + resultQNameModule = qNameModule; + } + + return ctx.getFromNamespace(QNameCacheNamespace.class, QName.create(resultQNameModule, localName)); + } + + public static QNameModule getRootModuleQName(final StmtContext ctx) { + if (ctx == null) { + return null; + } + + final StmtContext rootCtx = ctx.getRoot(); + final QNameModule qNameModule; + + if (producesDeclared(rootCtx, ModuleStatement.class)) { + qNameModule = rootCtx.getFromNamespace(ModuleCtxToModuleQName.class, rootCtx); + } else if (producesDeclared(rootCtx, SubmoduleStatement.class)) { + final String belongsToModuleName = firstAttributeOf(rootCtx.declaredSubstatements(), + BelongsToStatement.class); + qNameModule = rootCtx.getFromNamespace(ModuleNameToModuleQName.class, belongsToModuleName); + } else { + qNameModule = null; + } + + Preconditions.checkArgument(qNameModule != null, "Failed to look up root QNameModule for %s", ctx); + if (qNameModule.getRevision() != null) { + return qNameModule; + } + + return QNameModule.create(qNameModule.getNamespace(), SimpleDateFormatUtil.DEFAULT_DATE_REV).intern(); + } + + public static QNameModule getModuleQNameByPrefix(final StmtContext ctx, final String prefix) { + final ModuleIdentifier modId = ctx.getRoot().getFromNamespace(ImpPrefixToModuleIdentifier.class, prefix); + final QNameModule qNameModule = ctx.getFromNamespace(ModuleIdentifierToModuleQName.class, modId); + + if (qNameModule == null && producesDeclared(ctx.getRoot(), SubmoduleStatement.class)) { + final String moduleName = ctx.getRoot().getFromNamespace(BelongsToPrefixToModuleName.class, prefix); + return ctx.getFromNamespace(ModuleNameToModuleQName.class, moduleName); + } + return qNameModule; + } + + public static SourceIdentifier createSourceIdentifier(final StmtContext root) { + final QNameModule qNameModule = root.getFromNamespace(ModuleCtxToModuleQName.class, root); + if (qNameModule != null) { + // creates SourceIdentifier for a module + return RevisionSourceIdentifier.create((String) root.getStatementArgument(), + qNameModule.getFormattedRevision()); + } + + // creates SourceIdentifier for a submodule + final Date revision = Optional.ofNullable(getLatestRevision(root.declaredSubstatements())) + .orElse(SimpleDateFormatUtil.DEFAULT_DATE_REV); + final String formattedRevision = SimpleDateFormatUtil.getRevisionFormat().format(revision); + return RevisionSourceIdentifier.create((String) root.getStatementArgument(), formattedRevision); + } + + public static Date getLatestRevision(final Iterable> subStmts) { + Date revision = null; + for (final StmtContext subStmt : subStmts) { + if (subStmt.getPublicDefinition().getDeclaredRepresentationClass().isAssignableFrom(RevisionStatement + .class)) { + if (revision == null && subStmt.getStatementArgument() != null) { + revision = (Date) subStmt.getStatementArgument(); + } else if (subStmt.getStatementArgument() != null && ((Date) subStmt.getStatementArgument()).compareTo + (revision) > 0) { + revision = (Date) subStmt.getStatementArgument(); + } + } + } + return revision; + } + + public static boolean isUnknownNode(final StmtContext stmtCtx) { + return stmtCtx != null && stmtCtx.getPublicDefinition().getDeclaredRepresentationClass() + .isAssignableFrom(UnknownStatementImpl.class); + } } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/BuildGlobalContext.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/BuildGlobalContext.java index c255fbf379..246b71a50e 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/BuildGlobalContext.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/BuildGlobalContext.java @@ -52,6 +52,7 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedException; import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupportBundle; +import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils; import org.opendaylight.yangtools.yang.parser.spi.source.ModulesDeviatedByModules; import org.opendaylight.yangtools.yang.parser.spi.source.ModulesDeviatedByModules.SupportedModules; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; @@ -61,7 +62,6 @@ import org.opendaylight.yangtools.yang.parser.spi.source.SupportedFeaturesNamesp 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.SourceSpecificContext.PhaseCompletionProgress; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.EffectiveSchemaContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -242,7 +242,7 @@ class BuildGlobalContext extends NamespaceStorageSupport implements NamespaceBeh private SomeModifiersUnresolvedException propagateException(final SourceSpecificContext source, final RuntimeException cause) throws SomeModifiersUnresolvedException { - final SourceIdentifier sourceId = Utils.createSourceIdentifier(source.getRoot()); + final SourceIdentifier sourceId = StmtContextUtils.createSourceIdentifier(source.getRoot()); if (!(cause instanceof SourceException)) { /* * This should not be happening as all our processing should provide SourceExceptions. @@ -348,7 +348,7 @@ class BuildGlobalContext extends NamespaceStorageSupport implements NamespaceBeh if (!addedCause) { addedCause = true; - final SourceIdentifier sourceId = Utils.createSourceIdentifier(failedSource.getRoot()); + final SourceIdentifier sourceId = StmtContextUtils.createSourceIdentifier(failedSource.getRoot()); buildFailure = new SomeModifiersUnresolvedException(currentPhase, sourceId, sourceEx); } else { buildFailure.addSuppressed(sourceEx); 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 2710f0802a..b736a23c28 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 @@ -46,7 +46,6 @@ import org.opendaylight.yangtools.yang.parser.spi.source.AugmentToChoiceNamespac import org.opendaylight.yangtools.yang.parser.spi.source.StatementSourceReference; 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.Utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -233,7 +232,7 @@ final class SubstatementContext, E extends Eff Verify.verify(maybeParentPath.isPresent(), "Parent %s does not have a SchemaPath", parent); final SchemaPath parentPath = maybeParentPath.get(); - if (Utils.isUnknownNode(this)) { + if (StmtContextUtils.isUnknownNode(this)) { return parentPath.createChild(getPublicDefinition().getStatementName()); } if (argument instanceof QName) { @@ -255,8 +254,8 @@ final class SubstatementContext, E extends Eff if (argument instanceof String) { // FIXME: This may yield illegal argument exceptions final StmtContext originalCtx = getOriginalCtx(); - final QName qname = originalCtx != null ? Utils.qNameFromArgument(originalCtx, (String) argument) : Utils - .qNameFromArgument(this, (String) argument); + final QName qname = originalCtx != null ? StmtContextUtils.qnameFromArgument(originalCtx, (String) argument) + : StmtContextUtils.qnameFromArgument(this, (String) argument); return parentPath.createChild(qname); } if (argument instanceof SchemaNodeIdentifier diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/AnyxmlStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/AnyxmlStatementImpl.java index 6a9d016de6..00e26594ea 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/AnyxmlStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/AnyxmlStatementImpl.java @@ -32,6 +32,7 @@ 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.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.source.AnyxmlSchemaLocationNamespace; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.AnyXmlEffectiveStatementImpl; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.YangModeledAnyXmlEffectiveStatementImpl; @@ -63,7 +64,7 @@ public class AnyxmlStatementImpl extends AbstractDeclaredStatement implem @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, value); + return StmtContextUtils.qnameFromArgument(ctx, value); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ArgumentStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ArgumentStatementImpl.java index 0eca7b96b4..aeb42411ad 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ArgumentStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ArgumentStatementImpl.java @@ -17,6 +17,7 @@ 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.StmtContext; +import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.ArgumentEffectiveStatementImpl; public class ArgumentStatementImpl extends AbstractDeclaredStatement @@ -41,7 +42,7 @@ public class ArgumentStatementImpl extends AbstractDeclaredStatement @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, value); + return StmtContextUtils.qnameFromArgument(ctx, value); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/AugmentStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/AugmentStatementImpl.java index e99dd91b0d..50e6a73e33 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/AugmentStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/AugmentStatementImpl.java @@ -175,7 +175,7 @@ public class AugmentStatementImpl extends AbstractDeclaredStatement targetNode = Utils.findNode(getSearchRoot(augmentNode), augmentNode.getStatementArgument()); - if (Utils.isUnknownNode(targetNode)) { + if (StmtContextUtils.isUnknownNode(targetNode)) { augmentNode.setIsSupportedToBuildEffective(false); LOG.warn( "Uses-augment to unknown node {}. Augmentation has not been performed. At line: {}", diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/BaseStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/BaseStatementImpl.java index e0c5b7a5ef..64bf93e35e 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/BaseStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/BaseStatementImpl.java @@ -49,7 +49,7 @@ public class BaseStatementImpl extends AbstractDeclaredStatement implemen @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, value); + return StmtContextUtils.qnameFromArgument(ctx, value); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/BitStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/BitStatementImpl.java index a433cd7229..2446145c46 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/BitStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/BitStatementImpl.java @@ -22,6 +22,7 @@ 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.StmtContext; +import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.type.BitEffectiveStatementImpl; public class BitStatementImpl extends AbstractDeclaredStatement implements BitStatement { @@ -46,7 +47,7 @@ public class BitStatementImpl extends AbstractDeclaredStatement implement @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, value); + return StmtContextUtils.qnameFromArgument(ctx, value); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/CaseStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/CaseStatementImpl.java index cd9d176507..53b199660a 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/CaseStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/CaseStatementImpl.java @@ -25,6 +25,7 @@ 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.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.stmt.rfc6020.effective.CaseEffectiveStatementImpl; public class CaseStatementImpl extends AbstractDeclaredStatement implements CaseStatement { @@ -56,7 +57,7 @@ public class CaseStatementImpl extends AbstractDeclaredStatement implemen } @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, value); + return StmtContextUtils.qnameFromArgument(ctx, value); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ChoiceStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ChoiceStatementImpl.java index 5918274c6a..7118280dc3 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ChoiceStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ChoiceStatementImpl.java @@ -30,6 +30,7 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupport; 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.source.ImplicitSubstatement; import org.opendaylight.yangtools.yang.parser.spi.source.StatementSourceReference; import org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase; @@ -70,7 +71,7 @@ public class ChoiceStatementImpl extends AbstractDeclaredStatement @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, value); + return StmtContextUtils.qnameFromArgument(ctx, value); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ContainerStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ContainerStatementImpl.java index b0d84057aa..0c0e4004f5 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ContainerStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ContainerStatementImpl.java @@ -31,6 +31,7 @@ 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.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.stmt.rfc6020.effective.ContainerEffectiveStatementImpl; public class ContainerStatementImpl extends AbstractDeclaredStatement implements ContainerStatement { @@ -67,7 +68,7 @@ public class ContainerStatementImpl extends AbstractDeclaredStatement imp @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx,value); + return StmtContextUtils.qnameFromArgument(ctx,value); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ExtensionStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ExtensionStatementImpl.java index 888167da9f..761f11c81d 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ExtensionStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ExtensionStatementImpl.java @@ -45,7 +45,7 @@ public class ExtensionStatementImpl extends AbstractDeclaredStatement imp @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, value); + return StmtContextUtils.qnameFromArgument(ctx, value); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/FeatureStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/FeatureStatementImpl.java index 588db9d3d6..7b13e2117f 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/FeatureStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/FeatureStatementImpl.java @@ -21,6 +21,7 @@ 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.StmtContext; +import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.FeatureEffectiveStatementImpl; public class FeatureStatementImpl extends AbstractDeclaredStatement @@ -48,7 +49,7 @@ public class FeatureStatementImpl extends AbstractDeclaredStatement @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, value); + return StmtContextUtils.qnameFromArgument(ctx, value); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/GroupingStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/GroupingStatementImpl.java index 0ec64220de..a18a15f6a0 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/GroupingStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/GroupingStatementImpl.java @@ -26,6 +26,7 @@ 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.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.stmt.rfc6020.effective.GroupingEffectiveStatementImpl; public class GroupingStatementImpl extends AbstractDeclaredStatement @@ -61,7 +62,7 @@ public class GroupingStatementImpl extends AbstractDeclaredStatement @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, value); + return StmtContextUtils.qnameFromArgument(ctx, value); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/IdentityStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/IdentityStatementImpl.java index 65b5c7f96b..997d5d271b 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/IdentityStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/IdentityStatementImpl.java @@ -23,6 +23,7 @@ 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.StmtContext; +import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.IdentityEffectiveStatementImpl; public class IdentityStatementImpl extends AbstractDeclaredStatement @@ -48,7 +49,7 @@ public class IdentityStatementImpl extends AbstractDeclaredStatement @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, value); + return StmtContextUtils.qnameFromArgument(ctx, value); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/IfFeatureStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/IfFeatureStatementImpl.java index 15fb9d79b8..93354e0371 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/IfFeatureStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/IfFeatureStatementImpl.java @@ -28,6 +28,7 @@ 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.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.stmt.rfc6020.effective.IfFeatureEffectiveStatementImpl; @@ -55,7 +56,7 @@ public class IfFeatureStatementImpl extends AbstractDeclaredStatement setQNames.contains(qName); } } @@ -126,7 +127,7 @@ public class IfFeatureStatementImpl extends AbstractDeclaredStatement> visitIdentifier_ref_arg(final Identifier_ref_argContext ctx) { - final QName featureQName = Utils.qNameFromArgument(stmtCtx, ctx.getText()); + final QName featureQName = StmtContextUtils.qnameFromArgument(stmtCtx, ctx.getText()); return setQNames -> setQNames.contains(featureQName); } } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/InputStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/InputStatementImpl.java index 9b9dd4d14f..51f472a745 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/InputStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/InputStatementImpl.java @@ -22,6 +22,7 @@ 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.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.stmt.rfc6020.effective.InputEffectiveStatementImpl; public class InputStatementImpl extends AbstractDeclaredStatement @@ -53,7 +54,7 @@ public class InputStatementImpl extends AbstractDeclaredStatement @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, "input"); + return StmtContextUtils.qnameFromArgument(ctx, "input"); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/KeyStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/KeyStatementImpl.java index 0ba28ac401..1ee3476225 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/KeyStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/KeyStatementImpl.java @@ -46,7 +46,7 @@ public class KeyStatementImpl extends AbstractDeclaredStatement builder = ImmutableSet.builder(); int tokens = 0; for (String keyToken : StmtContextUtils.LIST_KEY_SPLITTER.split(value)) { - builder.add(SchemaNodeIdentifier.create(false, Utils.qNameFromArgument(ctx, keyToken))); + builder.add(SchemaNodeIdentifier.create(false, StmtContextUtils.qnameFromArgument(ctx, keyToken))); tokens++; } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/LeafListStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/LeafListStatementImpl.java index 4ecdcd6160..da7643f811 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/LeafListStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/LeafListStatementImpl.java @@ -32,6 +32,7 @@ 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.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.stmt.rfc6020.effective.LeafListEffectiveStatementImpl; public class LeafListStatementImpl extends AbstractDeclaredStatement @@ -74,7 +75,7 @@ public class LeafListStatementImpl extends AbstractDeclaredStatement @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, value); + return StmtContextUtils.qnameFromArgument(ctx, value); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/LeafStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/LeafStatementImpl.java index c88236ac56..c51ea80e03 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/LeafStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/LeafStatementImpl.java @@ -60,7 +60,7 @@ public class LeafStatementImpl extends AbstractDeclaredStatement implemen } @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx,value); + return StmtContextUtils.qnameFromArgument(ctx,value); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ListStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ListStatementImpl.java index 2a20d072b4..dbed38ce36 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ListStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ListStatementImpl.java @@ -36,6 +36,7 @@ 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.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.stmt.rfc6020.effective.ListEffectiveStatementImpl; public class ListStatementImpl extends AbstractDeclaredStatement @@ -79,7 +80,7 @@ public class ListStatementImpl extends AbstractDeclaredStatement @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, value); + return StmtContextUtils.qnameFromArgument(ctx, value); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ModuleStatementSupport.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ModuleStatementSupport.java index 643fead841..8a3211ca2e 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ModuleStatementSupport.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ModuleStatementSupport.java @@ -34,6 +34,7 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.SemanticVersionModuleName import org.opendaylight.yangtools.yang.parser.spi.meta.SemanticVersionNamespace; 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.source.ImpPrefixToModuleIdentifier; import org.opendaylight.yangtools.yang.parser.spi.source.ImpPrefixToNamespace; import org.opendaylight.yangtools.yang.parser.spi.source.ModuleCtxToModuleIdentifier; @@ -116,7 +117,8 @@ public class ModuleStatementSupport extends stmt.addContext(PreLinkageModuleNamespace.class, moduleName, stmt); - Optional revisionDate = Optional.ofNullable(Utils.getLatestRevision(stmt.declaredSubstatements())); + Optional revisionDate = Optional.ofNullable(StmtContextUtils.getLatestRevision( + stmt.declaredSubstatements())); if (!revisionDate.isPresent()) { revisionDate = Optional.of(SimpleDateFormatUtil.DEFAULT_DATE_REV); } @@ -136,7 +138,8 @@ public class ModuleStatementSupport extends SourceException.throwIf(!moduleNs.isPresent(), stmt.getStatementSourceReference(), "Namespace of the module [%s] is missing", stmt.getStatementArgument()); - Optional revisionDate = Optional.ofNullable(Utils.getLatestRevision(stmt.declaredSubstatements())); + Optional revisionDate = Optional.ofNullable(StmtContextUtils.getLatestRevision( + stmt.declaredSubstatements())); if (!revisionDate.isPresent()) { revisionDate = Optional.of(SimpleDateFormatUtil.DEFAULT_DATE_REV); } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/NotificationStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/NotificationStatementImpl.java index 933e3e9b78..cf2d9de4fe 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/NotificationStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/NotificationStatementImpl.java @@ -26,6 +26,7 @@ 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.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.stmt.rfc6020.effective.NotificationEffectiveStatementImpl; public class NotificationStatementImpl extends AbstractDeclaredStatement @@ -62,7 +63,7 @@ public class NotificationStatementImpl extends AbstractDeclaredStatement @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, value); + return StmtContextUtils.qnameFromArgument(ctx, value); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/OutputStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/OutputStatementImpl.java index 53d1f327f5..a5febeca13 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/OutputStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/OutputStatementImpl.java @@ -22,6 +22,7 @@ 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.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.stmt.rfc6020.effective.OutputEffectiveStatementImpl; public class OutputStatementImpl extends AbstractDeclaredStatement implements OutputStatement { @@ -51,7 +52,7 @@ public class OutputStatementImpl extends AbstractDeclaredStatement implem @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, "output"); + return StmtContextUtils.qnameFromArgument(ctx, "output"); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/RpcStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/RpcStatementImpl.java index e7785ee7a5..cbb49bfa45 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/RpcStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/RpcStatementImpl.java @@ -64,7 +64,7 @@ public class RpcStatementImpl extends AbstractDeclaredStatement @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, value); + return StmtContextUtils.qnameFromArgument(ctx, value); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/StmtNamespaceContext.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/StmtNamespaceContext.java index 91b1738900..6baeebcb87 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/StmtNamespaceContext.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/StmtNamespaceContext.java @@ -16,6 +16,7 @@ import java.util.Iterator; import javax.xml.namespace.NamespaceContext; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; +import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils; /** * A {@link NamespaceContext} implementation based on the set of imports and local module namespace. @@ -67,7 +68,7 @@ final class StmtNamespaceContext implements NamespaceContext { return localNamespaceURI(); } - final QNameModule module = Utils.getModuleQNameByPrefix(ctx, prefix); + final QNameModule module = StmtContextUtils.getModuleQNameByPrefix(ctx, prefix); return module == null ? null : module.getNamespace().toString(); } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/SubmoduleStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/SubmoduleStatementImpl.java index 968fd4f92a..c9323b1e8c 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/SubmoduleStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/SubmoduleStatementImpl.java @@ -27,6 +27,7 @@ import org.opendaylight.yangtools.yang.parser.spi.SubstatementValidator; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport; 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.source.BelongsToPrefixToModuleName; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.SubmoduleEffectiveStatementImpl; @@ -121,9 +122,9 @@ public class SubmoduleStatementImpl extends AbstractRootStatement> stmt) { - final Date maybeDate = Utils.getLatestRevision(stmt.declaredSubstatements()); + final Date maybeDate = StmtContextUtils.getLatestRevision(stmt.declaredSubstatements()); final Optional revisionDate = maybeDate != null ? Optional.of(maybeDate) : DEFAULT_REVISION; final ModuleIdentifier submoduleIdentifier = ModuleIdentifierImpl.create(stmt.getStatementArgument(), diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/TypeStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/TypeStatementImpl.java index 7c76513dac..a1bd2fc5e6 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/TypeStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/TypeStatementImpl.java @@ -46,6 +46,7 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase; import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupport; 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.source.SourceException; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.TypeDefEffectiveStatementImpl; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.type.BinaryTypeEffectiveStatementImpl; @@ -158,7 +159,7 @@ public class TypeStatementImpl extends AbstractDeclaredStatement typeStmt = BuiltinEffectiveStatement.UINT64; break; default: - final QName qname = Utils.qNameFromArgument(ctx, ctx.getStatementArgument()); + final QName qname = StmtContextUtils.qnameFromArgument(ctx, ctx.getStatementArgument()); final StmtContext typedef = ctx.getFromNamespace(TypeNamespace.class, qname); SourceException.throwIfNull(typedef, ctx.getStatementSourceReference(), "Type '%s' not found", qname); @@ -215,7 +216,7 @@ public class TypeStatementImpl extends AbstractDeclaredStatement return; } - final QName typeQName = Utils.qNameFromArgument(stmt, stmt.getStatementArgument()); + final QName typeQName = StmtContextUtils.qnameFromArgument(stmt, stmt.getStatementArgument()); final ModelActionBuilder typeAction = stmt.newInferenceAction(ModelProcessingPhase.EFFECTIVE_MODEL); final Prerequisite> typePrereq = typeAction.requiresCtx(stmt, TypeNamespace.class, typeQName, ModelProcessingPhase.EFFECTIVE_MODEL); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/TypedefStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/TypedefStatementImpl.java index 1f2ae7182c..282a613403 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/TypedefStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/TypedefStatementImpl.java @@ -24,6 +24,7 @@ import org.opendaylight.yangtools.yang.parser.spi.TypeNamespace; 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.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.stmt.rfc6020.effective.TypeDefEffectiveStatementImpl; @@ -51,7 +52,7 @@ public class TypedefStatementImpl extends AbstractDeclaredStatement imple @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, value); + return StmtContextUtils.qnameFromArgument(ctx, value); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/UsesStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/UsesStatementImpl.java index fa03722788..860fd2d103 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/UsesStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/UsesStatementImpl.java @@ -77,7 +77,7 @@ public class UsesStatementImpl extends AbstractDeclaredStatement implemen @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, value); + return StmtContextUtils.qnameFromArgument(ctx, value); } @Override @@ -368,7 +368,7 @@ public class UsesStatementImpl extends AbstractDeclaredStatement implemen return targetCtx.getFromNamespace(ModuleCtxToModuleQName.class, targetCtx); } if (targetCtx.getPublicDefinition() == YangStmtMapping.AUGMENT) { - return Utils.getRootModuleQName(targetCtx); + return StmtContextUtils.getRootModuleQName(targetCtx); } final Object targetStmtArgument = targetCtx.getStatementArgument(); 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 af21a797d9..bce189b6df 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 @@ -9,21 +9,16 @@ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020; import static org.opendaylight.yangtools.yang.common.YangConstants.RFC6020_YANG_NAMESPACE; import static org.opendaylight.yangtools.yang.common.YangConstants.YANG_XPATH_FUNCTIONS_PREFIX; -import static org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils.firstAttributeOf; import com.google.common.base.CharMatcher; -import com.google.common.base.Preconditions; import com.google.common.base.Splitter; -import com.google.common.base.Strings; import com.google.common.collect.ImmutableBiMap; import com.google.common.collect.ImmutableSet; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.Date; import java.util.HashSet; import java.util.List; -import java.util.Optional; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -35,33 +30,15 @@ import javax.xml.xpath.XPathFactory; import org.antlr.v4.runtime.tree.TerminalNode; import org.opendaylight.yangtools.antlrv4.code.gen.YangStatementParser; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.common.QNameModule; -import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.common.YangVersion; -import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier; import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath; -import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement; -import org.opendaylight.yangtools.yang.model.api.stmt.ModuleStatement; -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.repo.api.RevisionSourceIdentifier; -import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.util.RevisionAwareXPathImpl; -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.QNameCacheNamespace; 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.BelongsToPrefixToModuleName; -import org.opendaylight.yangtools.yang.parser.spi.source.ImpPrefixToModuleIdentifier; -import org.opendaylight.yangtools.yang.parser.spi.source.ModuleCtxToModuleQName; -import org.opendaylight.yangtools.yang.parser.spi.source.ModuleIdentifierToModuleQName; -import org.opendaylight.yangtools.yang.parser.spi.source.ModuleNameToModuleQName; 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.RootStatementContext; import org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -115,7 +92,7 @@ public final class Utils { for (final String keyToken : keyTokens) { final SchemaNodeIdentifier.Relative keyNode = (Relative) SchemaNodeIdentifier.Relative.create(false, - Utils.qNameFromArgument(ctx, keyToken)); + StmtContextUtils.qnameFromArgument(ctx, keyToken)); keyNodes.add(keyNode); } @@ -203,7 +180,7 @@ public final class Utils { final List qNames = new ArrayList<>(); for (final String nodeName : SLASH_SPLITTER.split(trimSingleLastSlashFromXPath(path))) { try { - final QName qName = Utils.qNameFromArgument(ctx, nodeName); + final QName qName = StmtContextUtils.qnameFromArgument(ctx, nodeName); qNames.add(qName); } catch (final RuntimeException e) { throw new SourceException(ctx.getStatementSourceReference(), e, @@ -289,102 +266,12 @@ public final class Utils { } } - public static QName qNameFromArgument(StmtContext ctx, final String value) { - if (Strings.isNullOrEmpty(value)) { - return ctx.getPublicDefinition().getStatementName(); - } - - String prefix; - QNameModule qNameModule = null; - String localName = null; - - final String[] namesParts = value.split(":"); - switch (namesParts.length) { - case 1: - localName = namesParts[0]; - qNameModule = getRootModuleQName(ctx); - break; - default: - prefix = namesParts[0]; - localName = namesParts[1]; - qNameModule = getModuleQNameByPrefix(ctx, prefix); - // in case of unknown statement argument, we're not going to parse it - if (qNameModule == null - && ctx.getPublicDefinition().getDeclaredRepresentationClass() - .isAssignableFrom(UnknownStatementImpl.class)) { - localName = value; - qNameModule = getRootModuleQName(ctx); - } - if (qNameModule == null - && ctx.getCopyHistory().getLastOperation() == CopyType.ADDED_BY_AUGMENTATION) { - ctx = ctx.getOriginalCtx(); - qNameModule = getModuleQNameByPrefix(ctx, prefix); - } - break; - } - - qNameModule = InferenceException.throwIfNull(qNameModule, ctx.getStatementSourceReference(), - "Cannot resolve QNameModule for '%s'", value); - - final QNameModule resultQNameModule; - if (qNameModule.getRevision() == null) { - resultQNameModule = QNameModule.create(qNameModule.getNamespace(), SimpleDateFormatUtil.DEFAULT_DATE_REV) - .intern(); - } else { - resultQNameModule = qNameModule; - } - - return ctx.getFromNamespace(QNameCacheNamespace.class, QName.create(resultQNameModule, localName)); - } - - public static QNameModule getModuleQNameByPrefix(final StmtContext ctx, final String prefix) { - final ModuleIdentifier modId = ctx.getRoot().getFromNamespace(ImpPrefixToModuleIdentifier.class, prefix); - final QNameModule qNameModule = ctx.getFromNamespace(ModuleIdentifierToModuleQName.class, modId); - - if (qNameModule == null && StmtContextUtils.producesDeclared(ctx.getRoot(), SubmoduleStatement.class)) { - final String moduleName = ctx.getRoot().getFromNamespace(BelongsToPrefixToModuleName.class, prefix); - return ctx.getFromNamespace(ModuleNameToModuleQName.class, moduleName); - } - return qNameModule; - } - - public static QNameModule getRootModuleQName(final StmtContext ctx) { - if (ctx == null) { - return null; - } - - final StmtContext rootCtx = ctx.getRoot(); - final QNameModule qNameModule; - - if (StmtContextUtils.producesDeclared(rootCtx, ModuleStatement.class)) { - qNameModule = rootCtx.getFromNamespace(ModuleCtxToModuleQName.class, rootCtx); - } else if (StmtContextUtils.producesDeclared(rootCtx, SubmoduleStatement.class)) { - final String belongsToModuleName = firstAttributeOf(rootCtx.declaredSubstatements(), - BelongsToStatement.class); - qNameModule = rootCtx.getFromNamespace(ModuleNameToModuleQName.class, belongsToModuleName); - } else { - qNameModule = null; - } - - Preconditions.checkArgument(qNameModule != null, "Failed to look up root QNameModule for %s", ctx); - if (qNameModule.getRevision() != null) { - return qNameModule; - } - - return QNameModule.create(qNameModule.getNamespace(), SimpleDateFormatUtil.DEFAULT_DATE_REV).intern(); - } - @Nullable public static StatementContextBase findNode(final StmtContext rootStmtCtx, final SchemaNodeIdentifier node) { return (StatementContextBase) rootStmtCtx.getFromNamespace(SchemaNodeIdentifierBuildNamespace.class, node); } - public static boolean isUnknownNode(final StmtContext stmtCtx) { - return stmtCtx != null && stmtCtx.getPublicDefinition().getDeclaredRepresentationClass() - .isAssignableFrom(UnknownStatementImpl.class); - } - static String internBoolean(final String input) { if ("true".equals(input)) { return "true"; @@ -395,22 +282,6 @@ public final class Utils { } } - public static Date getLatestRevision(final Iterable> subStmts) { - Date revision = null; - for (final StmtContext subStmt : subStmts) { - if (subStmt.getPublicDefinition().getDeclaredRepresentationClass().isAssignableFrom(RevisionStatement - .class)) { - if (revision == null && subStmt.getStatementArgument() != null) { - revision = (Date) subStmt.getStatementArgument(); - } else if (subStmt.getStatementArgument() != null && ((Date) subStmt.getStatementArgument()).compareTo - (revision) > 0) { - revision = (Date) subStmt.getStatementArgument(); - } - } - } - return revision; - } - /** * Replaces illegal characters of QName by the name of the character (e.g. * '?' is replaced by "QuestionMark" etc.). @@ -431,19 +302,4 @@ public final class Utils { public static boolean belongsToTheSameModule(final QName targetStmtQName, final QName sourceStmtQName) { return targetStmtQName.getModule().equals(sourceStmtQName.getModule()); } - - public static SourceIdentifier createSourceIdentifier(final RootStatementContext root) { - final QNameModule qNameModule = root.getFromNamespace(ModuleCtxToModuleQName.class, root); - if (qNameModule != null) { - // creates SourceIdentifier for a module - return RevisionSourceIdentifier.create((String) root.getStatementArgument(), - qNameModule.getFormattedRevision()); - } - - // creates SourceIdentifier for a submodule - final Date revision = Optional.ofNullable(Utils.getLatestRevision(root.declaredSubstatements())) - .orElse(SimpleDateFormatUtil.DEFAULT_DATE_REV); - final String formattedRevision = SimpleDateFormatUtil.getRevisionFormat().format(revision); - return RevisionSourceIdentifier.create((String) root.getStatementArgument(), formattedRevision); - } } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AugmentEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AugmentEffectiveStatementImpl.java index 989a854904..f97300282e 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AugmentEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AugmentEffectiveStatementImpl.java @@ -32,7 +32,7 @@ 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.SchemaNodeIdentifier; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; +import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils; public final class AugmentEffectiveStatementImpl extends AbstractEffectiveDocumentedDataNodeContainer implements @@ -53,7 +53,7 @@ public final class AugmentEffectiveStatementImpl extends this.targetPath = ctx.getStatementArgument().asSchemaPath(); - final QNameModule rootModuleQName = Utils.getRootModuleQName(ctx); + final QNameModule rootModuleQName = StmtContextUtils.getRootModuleQName(ctx); this.namespace = rootModuleQName.getNamespace(); this.revision = rootModuleQName.getRevision(); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ImportEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ImportEffectiveStatementImpl.java index 70d968d97c..4390debe0d 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ImportEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ImportEffectiveStatementImpl.java @@ -18,9 +18,9 @@ import org.opendaylight.yangtools.yang.model.api.ModuleImport; import org.opendaylight.yangtools.yang.model.api.stmt.ImportStatement; import org.opendaylight.yangtools.yang.parser.spi.meta.MissingSubstatementException; 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.ImpPrefixToSemVerModuleIdentifier; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; public class ImportEffectiveStatementImpl extends DeclaredEffectiveStatementBase implements ModuleImport { @@ -67,7 +67,7 @@ public class ImportEffectiveStatementImpl extends DeclaredEffectiveStatementBase * When 'revision-date' of an import is not specified in yang source, we * need to find revision of imported module. */ - final QNameModule importedModule = Utils.getModuleQNameByPrefix(ctx, this.prefix); + final QNameModule importedModule = StmtContextUtils.getModuleQNameByPrefix(ctx, this.prefix); SourceException.throwIfNull(importedModule, ctx.getStatementSourceReference(), "Unable to find import of module %s with prefix %s.", this.moduleName, this.prefix); return importedModule.getRevision(); 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 3277dde016..7d636cee02 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 @@ -15,7 +15,7 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; +import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils; public final class UnknownEffectiveStatementImpl extends UnknownEffectiveStatementBase { @@ -33,7 +33,7 @@ public final class UnknownEffectiveStatementImpl extends UnknownEffectiveStateme } else { QName maybeQNameArgumentInit = null; try { - maybeQNameArgumentInit = Utils.qNameFromArgument(ctx, argument()); + maybeQNameArgumentInit = StmtContextUtils.qnameFromArgument(ctx, argument()); } catch (IllegalArgumentException e) { maybeQNameArgumentInit = getNodeType(); } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/YangDataEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/YangDataEffectiveStatementImpl.java index 1e3c359ef9..ee5f71a883 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/YangDataEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/YangDataEffectiveStatementImpl.java @@ -19,7 +19,7 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.YangDataSchemaNode; import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; +import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils; /** * Effective statement representation of 'yang-data' extension defined in https://tools.ietf.org/html/rfc8040#section-8 @@ -37,7 +37,7 @@ public final class YangDataEffectiveStatementImpl extends UnknownEffectiveStatem QName maybeQNameArgumentInit; try { - maybeQNameArgumentInit = Utils.qNameFromArgument(ctx, argument()); + maybeQNameArgumentInit = StmtContextUtils.qnameFromArgument(ctx, argument()); } catch (IllegalArgumentException e) { maybeQNameArgumentInit = getNodeType(); } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/ActionStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/ActionStatementImpl.java index 6aefea2f73..9f5cdcdc71 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/ActionStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/ActionStatementImpl.java @@ -33,7 +33,6 @@ 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.stmt.rfc6020.ChildSchemaNodes; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; import org.opendaylight.yangtools.yang.parser.stmt.rfc7950.effective.ActionEffectiveStatementImpl; public class ActionStatementImpl extends AbstractDeclaredStatement implements ActionStatement { @@ -65,7 +64,7 @@ public class ActionStatementImpl extends AbstractDeclaredStatement implem @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, value); + return StmtContextUtils.qnameFromArgument(ctx, value); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/AnydataStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/AnydataStatementImpl.java index f104f22b13..32cb7679fd 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/AnydataStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/AnydataStatementImpl.java @@ -26,8 +26,8 @@ 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.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.stmt.rfc6020.ChildSchemaNodes; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; import org.opendaylight.yangtools.yang.parser.stmt.rfc7950.effective.AnyDataEffectiveStatementImpl; /** @@ -60,7 +60,7 @@ public final class AnydataStatementImpl extends AbstractDeclaredStatement @Override public QName parseArgumentValue(final StmtContext ctx, final String value) { - return Utils.qNameFromArgument(ctx, value); + return StmtContextUtils.qnameFromArgument(ctx, value); } @Override -- 2.36.6