From ddb64e0f5656834405404b8bcf21dc8bb3307398 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 15 Jan 2021 23:28:43 +0100 Subject: [PATCH] Add ParserNamespace Parser's use of IdentifierNamespace is really mixing apples and oranges, as parser has different needs than end users. ParserNamespace acts as the replacement for IdentifierNamespace where parser internals are concerned. JIRA: YANGTOOLS-1204 Change-Id: I3710a610614526983b14289c11ad8e0664ad86a0 Signed-off-by: Robert Varga --- .../parser/AnyxmlSchemaLocationNamespace.java | 4 +-- .../parser/YangDataArgumentNamespace.java | 4 +-- .../stmt/reactor/BuildGlobalContext.java | 6 ++-- .../parser/stmt/reactor/ModifierImpl.java | 16 +++++----- .../NamespaceBehaviourWithListeners.java | 4 +-- .../stmt/reactor/NamespaceStorageSupport.java | 26 +++++++-------- .../parser/stmt/reactor/ReactorStmtCtx.java | 12 +++---- .../stmt/reactor/ReplicaStatementContext.java | 6 ++-- .../stmt/reactor/RootStatementContext.java | 12 +++---- .../stmt/reactor/SimpleNamespaceContext.java | 4 +-- .../stmt/reactor/SourceSpecificContext.java | 12 +++---- .../stmt/reactor/StatementContextBase.java | 14 ++++---- .../reactor/StatementDefinitionContext.java | 4 +-- .../stmt/reactor/VirtualNamespaceContext.java | 4 +-- .../namespace/ModuleQNameToPrefix.java | 4 +-- .../YangNamespaceContextNamespace.java | 4 +-- .../AugmentImplicitHandlingNamespace.java | 4 +-- .../import_/ImportedVersionNamespace.java | 4 +-- .../stmt/list/ConfigListWarningNamespace.java | 4 +-- .../stmt/module/QNameModuleNamespace.java | 4 +-- .../rfc7950/stmt/type/BaseTypeNamespace.java | 4 +-- .../stmt/uses/SourceGroupingNamespace.java | 4 +-- .../plugin/ThirdPartyNamespace.java | 4 +-- .../yang/parser/spi/SchemaTreeNamespace.java | 6 ---- .../spi/meta/DerivedNamespaceBehaviour.java | 5 ++- .../spi/meta/ImportedNamespaceContext.java | 4 +-- .../parser/spi/meta/ModelActionBuilder.java | 7 ++-- .../parser/spi/meta/NamespaceBehaviour.java | 32 +++++++++---------- .../parser/spi/meta/NamespaceStmtCtx.java | 11 +++---- .../yang/parser/spi/meta/ParserNamespace.java | 24 ++++++++++++++ .../spi/meta/SemanticVersionNamespace.java | 3 +- .../meta/StatementDefinitionNamespace.java | 3 +- .../parser/spi/meta/StatementNamespace.java | 7 ++-- .../spi/meta/StatementSupportBundle.java | 7 ++-- .../yang/parser/spi/meta/StmtContext.java | 3 +- .../source/BelongsToPrefixToModuleName.java | 4 +-- .../spi/source/ImpPrefixToNamespace.java | 4 +-- .../spi/source/ImportPrefixToModuleCtx.java | 4 +-- .../ImportPrefixToSemVerSourceIdentifier.java | 5 ++- .../IncludedSubmoduleNameToModuleCtx.java | 4 +-- .../spi/source/ModuleCtxToModuleQName.java | 4 +-- .../source/ModuleCtxToSourceIdentifier.java | 4 +-- .../spi/source/ModuleNameToModuleQName.java | 4 +-- .../spi/source/ModuleNameToNamespace.java | 4 +-- .../spi/source/ModuleQNameToModuleName.java | 4 +-- .../spi/source/ModulesDeviatedByModules.java | 4 +-- .../parser/spi/source/PrefixToModule.java | 20 ++++-------- .../source/QNameToStatementDefinition.java | 14 +++----- .../source/SupportedFeaturesNamespace.java | 5 ++- .../ValidationBundlesNamespace.java | 6 ++-- 50 files changed, 179 insertions(+), 187 deletions(-) create mode 100644 yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ParserNamespace.java diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AnyxmlSchemaLocationNamespace.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AnyxmlSchemaLocationNamespace.java index 8a3721d660..37c9fbe072 100644 --- a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AnyxmlSchemaLocationNamespace.java +++ b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AnyxmlSchemaLocationNamespace.java @@ -10,16 +10,16 @@ package org.opendaylight.yangtools.odlext.parser; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.odlext.model.api.AnyxmlSchemaLocationEffectiveStatement; import org.opendaylight.yangtools.odlext.model.api.AnyxmlSchemaLocationStatement; -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.stmt.SchemaNodeIdentifier; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable; /** * Source-specific mapping of prefixes to namespaces. */ -public interface AnyxmlSchemaLocationNamespace extends IdentifierNamespace> { NamespaceBehaviour, diff --git a/yang/rfc8040-parser-support/src/main/java/org/opendaylight/yangtools/rfc8040/parser/YangDataArgumentNamespace.java b/yang/rfc8040-parser-support/src/main/java/org/opendaylight/yangtools/rfc8040/parser/YangDataArgumentNamespace.java index 1d623551e4..68f242edd0 100644 --- a/yang/rfc8040-parser-support/src/main/java/org/opendaylight/yangtools/rfc8040/parser/YangDataArgumentNamespace.java +++ b/yang/rfc8040-parser-support/src/main/java/org/opendaylight/yangtools/rfc8040/parser/YangDataArgumentNamespace.java @@ -11,8 +11,8 @@ import com.google.common.annotations.Beta; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.Empty; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; /** * Namespace for remembering the {@code yang-data} argument's QName. This namespace is necessary because we are forced @@ -20,7 +20,7 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; */ @Beta // FIXME: YANGTOOLS-1196: remove this namespace once we can bind freely -public interface YangDataArgumentNamespace extends IdentifierNamespace { +public interface YangDataArgumentNamespace extends ParserNamespace { NamespaceBehaviour BEHAVIOUR = NamespaceBehaviour.statementLocal(YangDataArgumentNamespace.class); diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/BuildGlobalContext.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/BuildGlobalContext.java index 9ceacb9322..fbe10607f0 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/BuildGlobalContext.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/BuildGlobalContext.java @@ -37,7 +37,6 @@ import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.common.YangVersion; 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.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode; @@ -49,6 +48,7 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour.Namesp import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour.Registry; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour.StorageNodeType; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceNotAvailableException; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; 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; @@ -159,7 +159,7 @@ final class BuildGlobalContext extends NamespaceStorageSupport implements Regist } @Override - public > NamespaceBehaviourWithListeners getNamespaceBehaviour( + public > NamespaceBehaviourWithListeners getNamespaceBehaviour( final Class type) { NamespaceBehaviourWithListeners potential = supportedNamespaces.get(type); if (potential == null) { @@ -182,7 +182,7 @@ final class BuildGlobalContext extends NamespaceStorageSupport implements Regist } @SuppressWarnings({ "unchecked", "rawtypes" }) - private > NamespaceBehaviourWithListeners createNamespaceContext( + private > NamespaceBehaviourWithListeners createNamespaceContext( final NamespaceBehaviour potentialRaw) { if (potentialRaw instanceof DerivedNamespaceBehaviour) { final VirtualNamespaceContext derivedContext = new VirtualNamespaceContext( diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ModifierImpl.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ModifierImpl.java index a4e5067c19..d8e74317d1 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ModifierImpl.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ModifierImpl.java @@ -23,10 +23,10 @@ import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; 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.parser.spi.meta.ModelActionBuilder; import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceKeyCriterion; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StatementNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable; @@ -119,7 +119,7 @@ final class ModifierImpl implements ModelActionBuilder { } @SuppressWarnings({ "rawtypes", "unchecked" }) - private , N extends IdentifierNamespace>> + private , N extends ParserNamespace>> AbstractPrerequisite mutatesCtxImpl(final StmtContext context, final Class namespace, final K key, final ModelProcessingPhase phase) { checkNotRegistered(); @@ -227,20 +227,20 @@ final class ModifierImpl implements ModelActionBuilder { @Override @Deprecated - public > Prerequisite> mutatesNs( - final Mutable context, final Class namespace) { + public > Prerequisite> mutatesNs(final Mutable context, + final Class namespace) { return addMutation(new NamespaceMutation<>(contextImpl(context), namespace)); } @Override - public , N extends IdentifierNamespace>> + public , N extends ParserNamespace>> AbstractPrerequisite> mutatesEffectiveCtx(final StmtContext context, final Class namespace, final K key) { return mutatesCtxImpl(context, namespace, key, EFFECTIVE_MODEL); } @Override - public , N extends IdentifierNamespace>> + public , N extends ParserNamespace>> AbstractPrerequisite> mutatesEffectiveCtxPath(final StmtContext context, final Class namespace, final Iterable keys) { checkNotRegistered(); @@ -321,7 +321,7 @@ final class ModifierImpl implements ModelActionBuilder { } } - private final class NamespaceMutation> + private final class NamespaceMutation> extends AbstractPrerequisite> { NamespaceMutation(final StatementContextBase ctx, final Class namespace) { resolvePrereq(ctx); @@ -385,7 +385,7 @@ final class ModifierImpl implements ModelActionBuilder { * give us the first step. When it does, we hook onto the first item to provide us the second step and so on. */ private final class PhaseModificationInNamespacePath, K, - N extends IdentifierNamespace>> extends AbstractPrerequisite + N extends ParserNamespace>> extends AbstractPrerequisite implements OnNamespaceItemAdded, ContextMutation { private final ModelProcessingPhase modPhase; private final Iterable keys; diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceBehaviourWithListeners.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceBehaviourWithListeners.java index 1ac8f661e3..a268e8ae52 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceBehaviourWithListeners.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceBehaviourWithListeners.java @@ -15,10 +15,10 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; -abstract class NamespaceBehaviourWithListeners> +abstract class NamespaceBehaviourWithListeners> extends NamespaceBehaviour { abstract static class ValueAddedListener { diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceStorageSupport.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceStorageSupport.java index e6aef831e1..3ab90d5680 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceStorageSupport.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceStorageSupport.java @@ -15,12 +15,12 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; 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.NamespaceKeyCriterion; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceNotAvailableException; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StatementNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; @@ -50,7 +50,7 @@ abstract class NamespaceStorageSupport implements NamespaceStorageNode { */ public abstract @NonNull Registry getBehaviourRegistry(); - protected void checkLocalNamespaceAllowed(final Class> type) { + protected void checkLocalNamespaceAllowed(final Class> type) { // NOOP } @@ -59,31 +59,31 @@ abstract class NamespaceStorageSupport implements NamespaceStorageNode { * * @throws SourceException instance of SourceException */ - protected > void onNamespaceElementAdded(final Class type, final K key, + protected > void onNamespaceElementAdded(final Class type, final K key, final V value) { // NOOP } - public final > Optional> getFromNamespace( + public final > Optional> getFromNamespace( final Class type, final NamespaceKeyCriterion criterion) { return getBehaviourRegistry().getNamespaceBehaviour(type).getFrom(this, criterion); } - public final > Map getNamespace(final Class type) { + public final > Map getNamespace(final Class type) { return getBehaviourRegistry().getNamespaceBehaviour(type).getAllFrom(this); } @SuppressWarnings("unchecked") - final > Map getLocalNamespace(final Class type) { + final > Map getLocalNamespace(final Class type) { return (Map) accessNamespaces().get(type); } - final > void addToNamespace( + final > void addToNamespace( final Class type, final T key, final U value) { getBehaviourRegistry().getNamespaceBehaviour(type).addTo(this, key, value); } - final > void addToNamespace( + final > void addToNamespace( final Class type, final Map map) { final NamespaceBehaviour behavior = getBehaviourRegistry().getNamespaceBehaviour(type); for (final Entry validationBundle : map.entrySet()) { @@ -109,20 +109,20 @@ abstract class NamespaceStorageSupport implements NamespaceStorageNode { @SuppressWarnings("unchecked") @Override - public > V getFromLocalStorage(final Class type, final K key) { + public > V getFromLocalStorage(final Class type, final K key) { final Map localNamespace = (Map) accessNamespaces().get(type); return localNamespace == null ? null : localNamespace.get(key); } @Override - public > Map getAllFromLocalStorage(final Class type) { + public > Map getAllFromLocalStorage(final Class type) { @SuppressWarnings("unchecked") final Map localNamespace = (Map) accessNamespaces().get(type); return localNamespace; } @Override - public > V putToLocalStorage(final Class type, final K key, + public > V putToLocalStorage(final Class type, final K key, final V value) { final V ret = ensureLocalNamespace(type).put(key, value); onNamespaceElementAdded(type, key, value); @@ -130,7 +130,7 @@ abstract class NamespaceStorageSupport implements NamespaceStorageNode { } @Override - public > V putToLocalStorageIfAbsent(final Class type, final K key, + public > V putToLocalStorageIfAbsent(final Class type, final K key, final V value) { final V ret = ensureLocalNamespace(type).putIfAbsent(key, value); if (ret == null) { @@ -164,7 +164,7 @@ abstract class NamespaceStorageSupport implements NamespaceStorageNode { return verifyNotNull(namespaces, "Attempted to access swept namespaces of %s", this); } - private > Map ensureLocalNamespace(final Class type) { + private > Map ensureLocalNamespace(final Class type) { @SuppressWarnings("unchecked") Map ret = (Map) accessNamespaces().get(type); if (ret == null) { diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReactorStmtCtx.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReactorStmtCtx.java index 32a7fe387a..d8283e8882 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReactorStmtCtx.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReactorStmtCtx.java @@ -23,7 +23,6 @@ import org.opendaylight.yangtools.yang.common.YangVersion; 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.stmt.AugmentStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ConfigEffectiveStatement; @@ -37,6 +36,7 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.InferenceException; import org.opendaylight.yangtools.yang.parser.spi.meta.ModelActionBuilder; import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour.Registry; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; 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; @@ -279,29 +279,29 @@ abstract class ReactorStmtCtx, E extends Effec // @Override - public final > V namespaceItem(final Class<@NonNull N> type, + public final > V namespaceItem(final Class<@NonNull N> type, final T key) { return getBehaviourRegistry().getNamespaceBehaviour(type).getFrom(this, key); } @Override - public final > Map namespace(final Class<@NonNull N> type) { + public final > Map namespace(final Class<@NonNull N> type) { return getNamespace(type); } @Override - public final > + public final > Map localNamespacePortion(final Class<@NonNull N> type) { return getLocalNamespace(type); } @Override - protected final void checkLocalNamespaceAllowed(final Class> type) { + protected final void checkLocalNamespaceAllowed(final Class> type) { definition().checkNamespaceAllowed(type); } @Override - protected > void onNamespaceElementAdded(final Class type, final K key, + protected > void onNamespaceElementAdded(final Class type, final K key, final V value) { // definition().onNamespaceElementAdded(this, type, key, value); } diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReplicaStatementContext.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReplicaStatementContext.java index 5491d4ae7f..c870df6b4e 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReplicaStatementContext.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReplicaStatementContext.java @@ -16,11 +16,11 @@ 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.parser.spi.meta.CopyHistory; import org.opendaylight.yangtools.yang.parser.spi.meta.CopyType; import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour.StorageNodeType; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StatementNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.source.StatementSourceReference; @@ -131,8 +131,8 @@ final class ReplicaStatementContext, E extends } @Override - public > void addToNs( - final Class<@NonNull N> type, final T key, final U value) { + public > void addToNs(final Class<@NonNull N> type, + final T key, final U value) { throw new UnsupportedOperationException(); } diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/RootStatementContext.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/RootStatementContext.java index 63f035db04..2ca6a97aa3 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/RootStatementContext.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/RootStatementContext.java @@ -28,7 +28,6 @@ import org.opendaylight.yangtools.yang.common.YangVersion; 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.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.parser.spi.GroupingNamespace; import org.opendaylight.yangtools.yang.parser.spi.SchemaTreeNamespace; @@ -38,6 +37,7 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.MutableStatement; 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.NamespaceBehaviour.StorageNodeType; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.RootStmtContext; import org.opendaylight.yangtools.yang.parser.spi.source.IncludedModuleContext; import org.opendaylight.yangtools.yang.parser.spi.source.StatementSourceReference; @@ -130,7 +130,7 @@ public final class RootStatementContext, E ext } @Override - public > V putToLocalStorage(final Class type, final K key, + public > V putToLocalStorage(final Class type, final K key, final V value) { if (IncludedModuleContext.class.isAssignableFrom(type)) { if (includedContexts.isEmpty()) { @@ -143,7 +143,7 @@ public final class RootStatementContext, E ext } @Override - public > V getFromLocalStorage(final Class type, final K key) { + public > V getFromLocalStorage(final Class type, final K key) { return getFromLocalStorage(type, key, new HashSet<>()); } @@ -151,7 +151,7 @@ public final class RootStatementContext, E ext * We need to track already checked RootStatementContexts due to possible * circular chains of includes between submodules */ - private > @Nullable V getFromLocalStorage(final Class type, + private > @Nullable V getFromLocalStorage(final Class type, final K key, final HashSet> alreadyChecked) { final V potentialLocal = super.getFromLocalStorage(type, key); if (potentialLocal != null) { @@ -172,7 +172,7 @@ public final class RootStatementContext, E ext } @Override - public > Map getAllFromLocalStorage(final Class type) { + public > Map getAllFromLocalStorage(final Class type) { return getAllFromLocalStorage(type, new HashSet<>()); } @@ -180,7 +180,7 @@ public final class RootStatementContext, E ext * We need to track already checked RootStatementContexts due to possible * circular chains of includes between submodules */ - private > @Nullable Map getAllFromLocalStorage(final Class type, + private > @Nullable Map getAllFromLocalStorage(final Class type, final HashSet> alreadyChecked) { final Map potentialLocal = super.getAllFromLocalStorage(type); if (potentialLocal != null) { diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SimpleNamespaceContext.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SimpleNamespaceContext.java index 0e619a78d9..69d4e374e3 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SimpleNamespaceContext.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SimpleNamespaceContext.java @@ -11,10 +11,10 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; -final class SimpleNamespaceContext> +final class SimpleNamespaceContext> extends NamespaceBehaviourWithListeners { // FIXME: Change this to Multimap, once issue with modules is resolved. private List> listeners; diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SourceSpecificContext.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SourceSpecificContext.java index 7c733cbad7..190c1d5501 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SourceSpecificContext.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SourceSpecificContext.java @@ -28,7 +28,6 @@ import org.opendaylight.yangtools.concepts.Mutable; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.YangVersion; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.parser.spi.meta.InferenceException; import org.opendaylight.yangtools.yang.parser.spi.meta.ModelActionBuilder; @@ -36,6 +35,7 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour.NamespaceStorageNode; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour.StorageNodeType; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StatementDefinitionNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupportBundle; @@ -199,7 +199,7 @@ final class SourceSpecificContext implements NamespaceStorageNode, NamespaceBeha } @Override - public > V putToLocalStorage(final Class type, final K key, + public > V putToLocalStorage(final Class type, final K key, final V value) { // RootStatementContext takes care of IncludedModuleContext and the rest... final V ret = getRoot().putToLocalStorage(type, key, value); @@ -209,7 +209,7 @@ final class SourceSpecificContext implements NamespaceStorageNode, NamespaceBeha } @Override - public > V putToLocalStorageIfAbsent(final Class type, final K key, + public > V putToLocalStorageIfAbsent(final Class type, final K key, final V value) { // RootStatementContext takes care of IncludedModuleContext and the rest... final V ret = getRoot().putToLocalStorageIfAbsent(type, key, value); @@ -225,7 +225,7 @@ final class SourceSpecificContext implements NamespaceStorageNode, NamespaceBeha } @Override - public > V getFromLocalStorage(final Class type, final K key) { + public > V getFromLocalStorage(final Class type, final K key) { final V potentialLocal = getRoot().getFromLocalStorage(type, key); if (potentialLocal != null) { return potentialLocal; @@ -241,7 +241,7 @@ final class SourceSpecificContext implements NamespaceStorageNode, NamespaceBeha } @Override - public > Map getAllFromLocalStorage(final Class type) { + public > Map getAllFromLocalStorage(final Class type) { final Map potentialLocal = getRoot().getAllFromLocalStorage(type); if (potentialLocal != null) { return potentialLocal; @@ -258,7 +258,7 @@ final class SourceSpecificContext implements NamespaceStorageNode, NamespaceBeha } @Override - public > NamespaceBehaviour getNamespaceBehaviour( + public > NamespaceBehaviour getNamespaceBehaviour( final Class type) { return globalContext.getNamespaceBehaviour(type); } diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java index 505dbae678..899345574a 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java @@ -34,7 +34,6 @@ import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.yang.common.QNameModule; 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.parser.spi.meta.CopyHistory; import org.opendaylight.yangtools.yang.parser.spi.meta.CopyType; @@ -44,6 +43,7 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase; import org.opendaylight.yangtools.yang.parser.spi.meta.MutableStatement; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceKeyCriterion; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StatementNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupport.CopyPolicy; @@ -166,7 +166,7 @@ public abstract class StatementContextBase, E } @Override - public final > void addToNs( + public final > void addToNs( final Class<@NonNull N> type, final T key, final U value) { addToNamespace(type, key, value); } @@ -457,7 +457,7 @@ public abstract class StatementContextBase, E return definition; } - final > void onNamespaceItemAddedAction(final Class type, final K key, + final > void onNamespaceItemAddedAction(final Class type, final K key, final OnNamespaceItemAdded listener) { final Object potential = getFromNamespace(type, key); if (potential != null) { @@ -474,7 +474,7 @@ public abstract class StatementContextBase, E }); } - final > void onNamespaceItemAddedAction(final Class type, + final > void onNamespaceItemAddedAction(final Class type, final ModelProcessingPhase phase, final NamespaceKeyCriterion criterion, final OnNamespaceItemAdded listener) { final Optional> existing = getFromNamespace(type, criterion); @@ -500,7 +500,7 @@ public abstract class StatementContextBase, E }); } - final > void selectMatch(final Class type, + final > void selectMatch(final Class type, final NamespaceKeyCriterion criterion, final OnNamespaceItemAdded listener) { final Optional> optMatch = getFromNamespace(type, criterion); checkState(optMatch.isPresent(), "Failed to find a match for criterion %s in namespace %s node %s", criterion, @@ -509,7 +509,7 @@ public abstract class StatementContextBase, E listener.namespaceItemAdded(StatementContextBase.this, type, match.getKey(), match.getValue()); } - final > void waitForPhase(final Object value, final Class type, + final > void waitForPhase(final Object value, final Class type, final ModelProcessingPhase phase, final NamespaceKeyCriterion criterion, final OnNamespaceItemAdded listener) { ((StatementContextBase) value).addPhaseCompletedListener(phase, @@ -519,7 +519,7 @@ public abstract class StatementContextBase, E }); } - private > NamespaceBehaviourWithListeners getBehaviour( + private > NamespaceBehaviourWithListeners getBehaviour( final Class type) { final NamespaceBehaviour behaviour = getBehaviourRegistry().getNamespaceBehaviour(type); checkArgument(behaviour instanceof NamespaceBehaviourWithListeners, "Namespace %s does not support listeners", diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementDefinitionContext.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementDefinitionContext.java index b7df52b3c6..58bee310b2 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementDefinitionContext.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementDefinitionContext.java @@ -20,10 +20,10 @@ import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.model.api.meta.ArgumentDefinition; 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.parser.spi.meta.ImplicitParentAwareStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StatementFactory; import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; @@ -51,7 +51,7 @@ public class StatementDefinitionContext, E ext return support.adaptArgumentValue(context, targetModule); } - public void checkNamespaceAllowed(final Class> namespace) { + public void checkNamespaceAllowed(final Class> namespace) { // Noop } diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/VirtualNamespaceContext.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/VirtualNamespaceContext.java index 2df2fe5d36..f3badc7155 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/VirtualNamespaceContext.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/VirtualNamespaceContext.java @@ -9,10 +9,10 @@ package org.opendaylight.yangtools.yang.parser.stmt.reactor; import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.DerivedNamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; -final class VirtualNamespaceContext, D> +final class VirtualNamespaceContext, D> extends NamespaceBehaviourWithListeners { private final Multimap> listeners = HashMultimap.create(); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/namespace/ModuleQNameToPrefix.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/namespace/ModuleQNameToPrefix.java index 9118076996..b2a91c0b3d 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/namespace/ModuleQNameToPrefix.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/namespace/ModuleQNameToPrefix.java @@ -10,15 +10,15 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.namespace; import com.google.common.annotations.Beta; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QNameModule; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; /** * Implementation-internal cache for looking up URI to import prefix. URIs are taken in as Strings to save ourselves * some quality parsing time. */ @Beta -public interface ModuleQNameToPrefix extends IdentifierNamespace { +public interface ModuleQNameToPrefix extends ParserNamespace { NamespaceBehaviour BEHAVIOUR = NamespaceBehaviour.rootStatementLocal(ModuleQNameToPrefix.class); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/namespace/YangNamespaceContextNamespace.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/namespace/YangNamespaceContextNamespace.java index b18997c9bd..dceb43aad5 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/namespace/YangNamespaceContextNamespace.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/namespace/YangNamespaceContextNamespace.java @@ -12,13 +12,13 @@ import static com.google.common.base.Verify.verify; import com.google.common.annotations.Beta; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.YangNamespaceContext; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable; @Beta -public interface YangNamespaceContextNamespace extends IdentifierNamespace, YangNamespaceContext> { +public interface YangNamespaceContextNamespace extends ParserNamespace, YangNamespaceContext> { NamespaceBehaviour, YangNamespaceContext, @NonNull YangNamespaceContextNamespace> BEHAVIOUR = NamespaceBehaviour.global(YangNamespaceContextNamespace.class); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/augment/AugmentImplicitHandlingNamespace.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/augment/AugmentImplicitHandlingNamespace.java index abe287400e..fa4b706f42 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/augment/AugmentImplicitHandlingNamespace.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/augment/AugmentImplicitHandlingNamespace.java @@ -10,8 +10,8 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.augment; import com.google.common.annotations.Beta; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.Empty; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; import org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase; /** @@ -20,7 +20,7 @@ import org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase; */ @Beta public interface AugmentImplicitHandlingNamespace - extends IdentifierNamespace> { + extends ParserNamespace> { NamespaceBehaviour, @NonNull AugmentImplicitHandlingNamespace> BEHAVIOUR = NamespaceBehaviour.statementLocal(AugmentImplicitHandlingNamespace.class); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/import_/ImportedVersionNamespace.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/import_/ImportedVersionNamespace.java index 7ac07871f3..ee965ef75d 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/import_/ImportedVersionNamespace.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/import_/ImportedVersionNamespace.java @@ -10,15 +10,15 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.import_; import com.google.common.annotations.Beta; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.Empty; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; /** * Statement-local namespace carrying the versioning information about how the import was satisfied. */ @Beta -public interface ImportedVersionNamespace extends IdentifierNamespace { +public interface ImportedVersionNamespace extends ParserNamespace { NamespaceBehaviour BEHAVIOUR = NamespaceBehaviour.statementLocal(ImportedVersionNamespace.class); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/list/ConfigListWarningNamespace.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/list/ConfigListWarningNamespace.java index 8baf2cdacf..9282f157c8 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/list/ConfigListWarningNamespace.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/list/ConfigListWarningNamespace.java @@ -9,12 +9,12 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.list; import com.google.common.annotations.Beta; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; import org.opendaylight.yangtools.yang.parser.spi.source.StatementSourceReference; @Beta -public interface ConfigListWarningNamespace extends IdentifierNamespace { +public interface ConfigListWarningNamespace extends ParserNamespace { NamespaceBehaviour BEHAVIOUR = NamespaceBehaviour.global(ConfigListWarningNamespace.class); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/module/QNameModuleNamespace.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/module/QNameModuleNamespace.java index af714f81f9..f8fee1405d 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/module/QNameModuleNamespace.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/module/QNameModuleNamespace.java @@ -11,14 +11,14 @@ import com.google.common.annotations.Beta; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.Empty; import org.opendaylight.yangtools.yang.common.QNameModule; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; /** * Module-local namespace holding the module's QName. */ @Beta -public interface QNameModuleNamespace extends IdentifierNamespace { +public interface QNameModuleNamespace extends ParserNamespace { NamespaceBehaviour BEHAVIOUR = NamespaceBehaviour.statementLocal(QNameModuleNamespace.class); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/BaseTypeNamespace.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/BaseTypeNamespace.java index 3f1cea4440..59dbd37fe1 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/BaseTypeNamespace.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/BaseTypeNamespace.java @@ -10,12 +10,12 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type; import com.google.common.annotations.Beta; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.Empty; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; @Beta -public interface BaseTypeNamespace extends IdentifierNamespace> { +public interface BaseTypeNamespace extends ParserNamespace> { NamespaceBehaviour, @NonNull BaseTypeNamespace> BEHAVIOUR = NamespaceBehaviour.statementLocal(BaseTypeNamespace.class); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/uses/SourceGroupingNamespace.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/uses/SourceGroupingNamespace.java index 007f9048dd..fc4f50fa2f 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/uses/SourceGroupingNamespace.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/uses/SourceGroupingNamespace.java @@ -10,12 +10,12 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.uses; import com.google.common.annotations.Beta; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.Empty; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; @Beta -public interface SourceGroupingNamespace extends IdentifierNamespace> { +public interface SourceGroupingNamespace extends ParserNamespace> { NamespaceBehaviour, @NonNull SourceGroupingNamespace> BEHAVIOUR = NamespaceBehaviour.statementLocal(SourceGroupingNamespace.class); } diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyNamespace.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyNamespace.java index c16a1d5cdf..50d54c88ca 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyNamespace.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyNamespace.java @@ -9,13 +9,13 @@ package org.opendaylight.yangtools.yang.thirdparty.plugin; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.Empty; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; /** * ThirdPartyNamespace. */ -public interface ThirdPartyNamespace extends IdentifierNamespace { +public interface ThirdPartyNamespace extends ParserNamespace { @NonNull NamespaceBehaviour BEHAVIOR = NamespaceBehaviour.statementLocal(ThirdPartyNamespace.class); diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/SchemaTreeNamespace.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/SchemaTreeNamespace.java index 4560154e15..ea4e1308ce 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/SchemaTreeNamespace.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/SchemaTreeNamespace.java @@ -49,12 +49,6 @@ public final class SchemaTreeNamespace, return (SchemaTreeNamespace) INSTANCE; } - @Override - public StmtContext get(final QName key) { - // FIXME: 7.0.0: this method needs to be well-defined - return null; - } - /** * {@inheritDoc} * diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/DerivedNamespaceBehaviour.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/DerivedNamespaceBehaviour.java index a8919aa153..b65895154c 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/DerivedNamespaceBehaviour.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/DerivedNamespaceBehaviour.java @@ -11,7 +11,6 @@ import static java.util.Objects.requireNonNull; import com.google.common.base.MoreObjects.ToStringHelper; import java.util.Map; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; /** * An {@link NamespaceBehaviour} which derives keys from a different namespace. @@ -22,8 +21,8 @@ import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; * @param Original key type * @param Original namespace type */ -public abstract class DerivedNamespaceBehaviour, - O extends IdentifierNamespace> extends NamespaceBehaviour { +public abstract class DerivedNamespaceBehaviour, + O extends ParserNamespace> extends NamespaceBehaviour { private final Class derivedFrom; diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ImportedNamespaceContext.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ImportedNamespaceContext.java index d02d4e8c49..f62115aafe 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ImportedNamespaceContext.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ImportedNamespaceContext.java @@ -7,8 +7,6 @@ */ package org.opendaylight.yangtools.yang.parser.spi.meta; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; - /** * Special namespace which allows import of namespaces from other sources. * @@ -22,6 +20,6 @@ import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; * * @param Imported context identifier */ -public interface ImportedNamespaceContext extends IdentifierNamespace> { +public interface ImportedNamespaceContext extends ParserNamespace> { } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ModelActionBuilder.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ModelActionBuilder.java index a956306ada..93e17b0495 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ModelActionBuilder.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ModelActionBuilder.java @@ -15,7 +15,6 @@ import java.util.Collection; import org.eclipse.jdt.annotation.NonNull; 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.parser.spi.meta.StmtContext.Mutable; /** @@ -188,11 +187,11 @@ public interface ModelActionBuilder { return mutatesCtx(context, EFFECTIVE_MODEL); } - , N extends IdentifierNamespace>> + , N extends ParserNamespace>> @NonNull Prerequisite> mutatesEffectiveCtx(StmtContext context, Class namespace, K key); - default , N extends IdentifierNamespace>> + default , N extends ParserNamespace>> @NonNull Prerequisite> mutatesEffectiveCtxPath(final StmtContext context, final Class namespace, final Iterable keys) { throw new UnsupportedOperationException(getClass() + " does not implement mutatesEffectiveCtxPath()"); @@ -262,6 +261,6 @@ public interface ModelActionBuilder { * @deprecated Undocumented method. Use at your own risk. */ @Deprecated - > @NonNull Prerequisite> mutatesNs(Mutable ctx, + > @NonNull Prerequisite> mutatesNs(Mutable ctx, Class namespace); } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceBehaviour.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceBehaviour.java index cfa2898bb6..8e0dd1ce18 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceBehaviour.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceBehaviour.java @@ -20,7 +20,6 @@ import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.concepts.AbstractSimpleIdentifiable; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeAwareEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeEffectiveStatement; import org.opendaylight.yangtools.yang.parser.spi.SchemaTreeNamespace; @@ -38,7 +37,7 @@ import org.opendaylight.yangtools.yang.parser.spi.SchemaTreeNamespace; * @param Value type * @param Namespace Type */ -public abstract class NamespaceBehaviour> +public abstract class NamespaceBehaviour> extends AbstractSimpleIdentifiable> { public enum StorageNodeType { @@ -72,7 +71,7 @@ public abstract class NamespaceBehaviour> NamespaceBehaviour getNamespaceBehaviour(Class type); + > NamespaceBehaviour getNamespaceBehaviour(Class type); } public interface NamespaceStorageNode { @@ -85,9 +84,9 @@ public abstract class NamespaceBehaviour> @Nullable V getFromLocalStorage(Class type, K key); + > @Nullable V getFromLocalStorage(Class type, K key); - > @Nullable Map getAllFromLocalStorage(Class type); + > @Nullable Map getAllFromLocalStorage(Class type); /** * Populate specified namespace with a key/value pair, overwriting previous contents. Similar to @@ -98,7 +97,7 @@ public abstract class NamespaceBehaviour> @Nullable V putToLocalStorage(Class type, K key, V value); + > @Nullable V putToLocalStorage(Class type, K key, V value); /** * Populate specified namespace with a key/value pair unless the key is already associated with a value. Similar @@ -109,8 +108,7 @@ public abstract class NamespaceBehaviour> @Nullable V putToLocalStorageIfAbsent(Class type, K key, - V value); + > @Nullable V putToLocalStorageIfAbsent(Class type, K key, V value); } /** @@ -157,7 +155,7 @@ public abstract class NamespaceBehaviour type parameter * @return global namespace behaviour for supplied namespace type. */ - public static > @NonNull NamespaceBehaviour global( + public static > @NonNull NamespaceBehaviour global( final Class identifier) { return new StorageSpecific<>(identifier, StorageNodeType.GLOBAL); } @@ -173,12 +171,12 @@ public abstract class NamespaceBehaviour type parameter * @return source-local namespace behaviour for supplied namespace type. */ - public static > @NonNull NamespaceBehaviour sourceLocal( + public static > @NonNull NamespaceBehaviour sourceLocal( final Class identifier) { return new StorageSpecific<>(identifier, StorageNodeType.SOURCE_LOCAL_SPECIAL); } - public static > @NonNull NamespaceBehaviour statementLocal( + public static > @NonNull NamespaceBehaviour statementLocal( final Class identifier) { return new StatementLocal<>(identifier); } @@ -194,7 +192,7 @@ public abstract class NamespaceBehaviour type parameter * @return root-statement-local namespace behaviour for supplied namespace type. */ - public static > @NonNull NamespaceBehaviour rootStatementLocal( + public static > @NonNull NamespaceBehaviour rootStatementLocal( final Class identifier) { return new StorageSpecific<>(identifier, StorageNodeType.ROOT_STATEMENT_LOCAL); } @@ -210,7 +208,7 @@ public abstract class NamespaceBehaviour type parameter * @return tree-scoped namespace behaviour for supplied namespace type. */ - public static > @NonNull NamespaceBehaviour treeScoped( + public static > @NonNull NamespaceBehaviour treeScoped( final Class identifier) { return new TreeScoped<>(identifier); } @@ -288,7 +286,7 @@ public abstract class NamespaceBehaviour> + abstract static class AbstractSpecific> extends NamespaceBehaviour { AbstractSpecific(final Class identifier) { super(identifier); @@ -312,7 +310,7 @@ public abstract class NamespaceBehaviour> extends AbstractSpecific { + static final class StatementLocal> extends AbstractSpecific { StatementLocal(final Class identifier) { super(identifier); } @@ -323,7 +321,7 @@ public abstract class NamespaceBehaviour> extends AbstractSpecific { + static final class StorageSpecific> extends AbstractSpecific { private final StorageNodeType storageType; StorageSpecific(final Class identifier, final StorageNodeType type) { @@ -342,7 +340,7 @@ public abstract class NamespaceBehaviour> extends NamespaceBehaviour { + static final class TreeScoped> extends NamespaceBehaviour { TreeScoped(final Class identifier) { super(identifier); } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceStmtCtx.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceStmtCtx.java index 8806c13c75..95fa54cec5 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceStmtCtx.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceStmtCtx.java @@ -11,7 +11,6 @@ import com.google.common.annotations.Beta; import java.util.Map; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; /** * Support work with namespace content. @@ -27,7 +26,7 @@ public interface NamespaceStmtCtx extends CommonStmtCtx { * @param nsType namespace type class * @return Namespace contents, if available */ - > @Nullable Map namespace(Class<@NonNull N> nsType); + > @Nullable Map namespace(Class<@NonNull N> nsType); /** * Return a value associated with specified key within a namespace. @@ -41,7 +40,7 @@ public interface NamespaceStmtCtx extends CommonStmtCtx { * @return Value, or null if there is no element * @throws NamespaceNotAvailableException when the namespace is not available. */ - > @Nullable V namespaceItem(Class<@NonNull N> nsType, T key); + > @Nullable V namespaceItem(Class<@NonNull N> nsType, T key); /** * Return the portion of specified namespace stored in this node. Depending on namespace behaviour this may or may @@ -57,7 +56,7 @@ public interface NamespaceStmtCtx extends CommonStmtCtx { * @param nsType namespace type class * @return Namespace portion stored in this node, if available */ - > @Nullable Map localNamespacePortion(Class<@NonNull N> nsType); + > @Nullable Map localNamespacePortion(Class<@NonNull N> nsType); /** * Return the selected namespace. @@ -69,7 +68,7 @@ public interface NamespaceStmtCtx extends CommonStmtCtx { * @return Namespace contents, if available */ // TODO: migrate users away - default > Map getAllFromNamespace(final Class nsType) { + default > Map getAllFromNamespace(final Class nsType) { return namespace(nsType); } @@ -86,7 +85,7 @@ public interface NamespaceStmtCtx extends CommonStmtCtx { * @throws NamespaceNotAvailableException when the namespace is not available. */ // TODO: migrate users away - default > + default > @Nullable V getFromNamespace(final Class<@NonNull N> type, final T key) { return namespaceItem(type, key); } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ParserNamespace.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ParserNamespace.java new file mode 100644 index 0000000000..7b15a301b7 --- /dev/null +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ParserNamespace.java @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.yangtools.yang.parser.spi.meta; + +import com.google.common.annotations.Beta; + +/** + * {@link ParserNamespace} serves as common superclass for namespaces used during parser operation. Each such namespace, + * is a type-captured subclass. This type capture of namespace allows for handy type-safe reading methods such as + * {@link NamespaceStmtCtx#getFromNamespace(Class, Object)} and still allows introduction of new namespaces without need + * to change APIs. + * + * @param Identifier type + * @param Value type + */ +@Beta +public interface ParserNamespace { + +} diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/SemanticVersionNamespace.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/SemanticVersionNamespace.java index 4394b6b495..d9ca2c8797 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/SemanticVersionNamespace.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/SemanticVersionNamespace.java @@ -10,13 +10,12 @@ package org.opendaylight.yangtools.yang.parser.spi.meta; import com.google.common.annotations.Beta; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.SemVer; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; /** * Namespace class for storing semantic version of yang modules. */ @Beta -public interface SemanticVersionNamespace extends IdentifierNamespace, SemVer> { +public interface SemanticVersionNamespace extends ParserNamespace, SemVer> { NamespaceBehaviour, SemVer, @NonNull SemanticVersionNamespace> BEHAVIOUR = NamespaceBehaviour.global(SemanticVersionNamespace.class); diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StatementDefinitionNamespace.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StatementDefinitionNamespace.java index f851c299a4..d19812c3cf 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StatementDefinitionNamespace.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StatementDefinitionNamespace.java @@ -10,7 +10,6 @@ package org.opendaylight.yangtools.yang.parser.spi.meta; import com.google.common.annotations.Beta; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition; /** @@ -20,7 +19,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition; * @author Robert Varga */ @Beta -public interface StatementDefinitionNamespace extends IdentifierNamespace> { +public interface StatementDefinitionNamespace extends ParserNamespace> { NamespaceBehaviour, @NonNull StatementDefinitionNamespace> BEHAVIOUR = NamespaceBehaviour.global(StatementDefinitionNamespace.class); diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StatementNamespace.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StatementNamespace.java index e108098e23..04eaa93eb5 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StatementNamespace.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StatementNamespace.java @@ -9,12 +9,9 @@ package org.opendaylight.yangtools.yang.parser.spi.meta; 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; -public interface StatementNamespace, E extends EffectiveStatement> extends - IdentifierNamespace> { - @Override - StmtContext get(K key); +public interface StatementNamespace, E extends EffectiveStatement> + extends ParserNamespace> { interface TreeScoped, E extends EffectiveStatement> extends StatementNamespace { diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StatementSupportBundle.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StatementSupportBundle.java index 10ead73f2e..a78dd72795 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StatementSupportBundle.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StatementSupportBundle.java @@ -23,7 +23,6 @@ import java.util.Set; import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.YangVersion; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -101,7 +100,7 @@ public final class StatementSupportBundle implements Immutable, NamespaceBehavio @Override @SuppressWarnings("unchecked") - public > NamespaceBehaviour getNamespaceBehaviour( + public > NamespaceBehaviour getNamespaceBehaviour( final Class namespace) { final NamespaceBehaviour potential = namespaceDefinitions.get(namespace); if (potential != null) { @@ -116,7 +115,7 @@ public final class StatementSupportBundle implements Immutable, NamespaceBehavio return null; } - public > boolean hasNamespaceBehaviour(final Class namespace) { + public > boolean hasNamespaceBehaviour(final Class namespace) { if (namespaceDefinitions.containsKey(namespace)) { return true; } @@ -185,7 +184,7 @@ public final class StatementSupportBundle implements Immutable, NamespaceBehavio return this; } - public > Builder addSupport( + public > Builder addSupport( final NamespaceBehaviour namespaceSupport) { final Class identifier = namespaceSupport.getIdentifier(); checkState(!namespaces.containsKey(identifier)); diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java index 7fb27c88dd..d61be1ed02 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java @@ -22,7 +22,6 @@ import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.YangVersion; import org.opendaylight.yangtools.yang.model.api.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.model.repo.api.SourceIdentifier; @@ -219,7 +218,7 @@ public interface StmtContext, E extends Effect * @param value type * @throws NamespaceNotAvailableException when the namespace is not available. */ - > void addToNs(Class<@NonNull N> type, + > void addToNs(Class<@NonNull N> type, T key, U value); @Override diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/BelongsToPrefixToModuleName.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/BelongsToPrefixToModuleName.java index dc65d03f32..6b04899f19 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/BelongsToPrefixToModuleName.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/BelongsToPrefixToModuleName.java @@ -8,13 +8,13 @@ package org.opendaylight.yangtools.yang.parser.spi.source; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; /** * Source-specific mapping of prefixes to namespaces. */ -public interface BelongsToPrefixToModuleName extends IdentifierNamespace { +public interface BelongsToPrefixToModuleName extends ParserNamespace { NamespaceBehaviour BEHAVIOUR = NamespaceBehaviour.sourceLocal(BelongsToPrefixToModuleName.class); } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ImpPrefixToNamespace.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ImpPrefixToNamespace.java index 3ef1096155..5e8d660b67 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ImpPrefixToNamespace.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ImpPrefixToNamespace.java @@ -9,13 +9,13 @@ package org.opendaylight.yangtools.yang.parser.spi.source; import java.net.URI; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; /** * Pre-linkage source-specific mapping of prefixes to module namespaces. */ -public interface ImpPrefixToNamespace extends IdentifierNamespace { +public interface ImpPrefixToNamespace extends ParserNamespace { NamespaceBehaviour BEHAVIOUR = NamespaceBehaviour.rootStatementLocal(ImpPrefixToNamespace.class); } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ImportPrefixToModuleCtx.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ImportPrefixToModuleCtx.java index f30ab336f3..9ab50474d3 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ImportPrefixToModuleCtx.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ImportPrefixToModuleCtx.java @@ -8,14 +8,14 @@ package org.opendaylight.yangtools.yang.parser.spi.source; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; /** * Source-specific mapping of prefix strings to module context. */ -public interface ImportPrefixToModuleCtx extends IdentifierNamespace> { +public interface ImportPrefixToModuleCtx extends ParserNamespace> { NamespaceBehaviour, @NonNull ImportPrefixToModuleCtx> BEHAVIOUR = NamespaceBehaviour.rootStatementLocal(ImportPrefixToModuleCtx.class); } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ImportPrefixToSemVerSourceIdentifier.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ImportPrefixToSemVerSourceIdentifier.java index d81894c0c9..6cf340ff38 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ImportPrefixToSemVerSourceIdentifier.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ImportPrefixToSemVerSourceIdentifier.java @@ -9,16 +9,15 @@ package org.opendaylight.yangtools.yang.parser.spi.source; import com.google.common.annotations.Beta; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.model.repo.api.SemVerSourceIdentifier; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; /** * Source-specific mapping of prefixes to source identifier with specified semantic version. */ @Beta -public interface ImportPrefixToSemVerSourceIdentifier - extends IdentifierNamespace { +public interface ImportPrefixToSemVerSourceIdentifier extends ParserNamespace { NamespaceBehaviour BEHAVIOUR = NamespaceBehaviour.rootStatementLocal(ImportPrefixToSemVerSourceIdentifier.class); diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/IncludedSubmoduleNameToModuleCtx.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/IncludedSubmoduleNameToModuleCtx.java index 2b5f97a0de..772ec6504e 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/IncludedSubmoduleNameToModuleCtx.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/IncludedSubmoduleNameToModuleCtx.java @@ -8,14 +8,14 @@ package org.opendaylight.yangtools.yang.parser.spi.source; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; /** * Source-specific mapping of prefixes to namespaces. */ -public interface IncludedSubmoduleNameToModuleCtx extends IdentifierNamespace> { +public interface IncludedSubmoduleNameToModuleCtx extends ParserNamespace> { NamespaceBehaviour, @NonNull IncludedSubmoduleNameToModuleCtx> BEHAVIOUR = NamespaceBehaviour.sourceLocal(IncludedSubmoduleNameToModuleCtx.class); } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleCtxToModuleQName.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleCtxToModuleQName.java index c0d097f3c6..bf5c4448d2 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleCtxToModuleQName.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleCtxToModuleQName.java @@ -9,14 +9,14 @@ package org.opendaylight.yangtools.yang.parser.spi.source; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QNameModule; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; /** * Global mapping of modules to QNameModules. */ -public interface ModuleCtxToModuleQName extends IdentifierNamespace, QNameModule> { +public interface ModuleCtxToModuleQName extends ParserNamespace, QNameModule> { NamespaceBehaviour, QNameModule, @NonNull ModuleCtxToModuleQName> BEHAVIOUR = NamespaceBehaviour.global(ModuleCtxToModuleQName.class); diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleCtxToSourceIdentifier.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleCtxToSourceIdentifier.java index 040379841e..36fa78cfc5 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleCtxToSourceIdentifier.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleCtxToSourceIdentifier.java @@ -8,15 +8,15 @@ package org.opendaylight.yangtools.yang.parser.spi.source; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; /** * Global mapping of modules to source identifier. */ -public interface ModuleCtxToSourceIdentifier extends IdentifierNamespace, SourceIdentifier> { +public interface ModuleCtxToSourceIdentifier extends ParserNamespace, SourceIdentifier> { NamespaceBehaviour, SourceIdentifier, @NonNull ModuleCtxToSourceIdentifier> BEHAVIOUR = NamespaceBehaviour.global(ModuleCtxToSourceIdentifier.class); } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleNameToModuleQName.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleNameToModuleQName.java index e1ea85abfe..5387b34437 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleNameToModuleQName.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleNameToModuleQName.java @@ -9,13 +9,13 @@ package org.opendaylight.yangtools.yang.parser.spi.source; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QNameModule; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; /** * Source-specific mapping of prefixes to namespaces. */ -public interface ModuleNameToModuleQName extends IdentifierNamespace { +public interface ModuleNameToModuleQName extends ParserNamespace { NamespaceBehaviour BEHAVIOUR = NamespaceBehaviour.sourceLocal(ModuleNameToModuleQName.class); } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleNameToNamespace.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleNameToNamespace.java index 49c0c4fab4..0b516a5bc4 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleNameToNamespace.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleNameToNamespace.java @@ -9,13 +9,13 @@ package org.opendaylight.yangtools.yang.parser.spi.source; import java.net.URI; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; /** * Pre-linkage global mapping of module names to namespaces. */ -public interface ModuleNameToNamespace extends IdentifierNamespace { +public interface ModuleNameToNamespace extends ParserNamespace { NamespaceBehaviour BEHAVIOUR = NamespaceBehaviour.global(ModuleNameToNamespace.class); } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleQNameToModuleName.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleQNameToModuleName.java index 3bce75f8cd..bf21e26c22 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleQNameToModuleName.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleQNameToModuleName.java @@ -9,13 +9,13 @@ package org.opendaylight.yangtools.yang.parser.spi.source; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QNameModule; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; /** * Source-specific mapping of prefixes to namespaces. */ -public interface ModuleQNameToModuleName extends IdentifierNamespace { +public interface ModuleQNameToModuleName extends ParserNamespace { NamespaceBehaviour BEHAVIOUR = NamespaceBehaviour.global(ModuleQNameToModuleName.class); } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModulesDeviatedByModules.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModulesDeviatedByModules.java index 60e0363396..0224baab21 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModulesDeviatedByModules.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModulesDeviatedByModules.java @@ -12,8 +12,8 @@ import com.google.common.annotations.Beta; import com.google.common.collect.SetMultimap; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QNameModule; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; /** * Namespace used for storing information about modules that support deviation resolution. @@ -21,7 +21,7 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; */ @Beta public interface ModulesDeviatedByModules - extends IdentifierNamespace> { + extends ParserNamespace> { NamespaceBehaviour, @NonNull ModulesDeviatedByModules> BEHAVIOUR = NamespaceBehaviour.global(ModulesDeviatedByModules.class); diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/PrefixToModule.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/PrefixToModule.java index 6b2a18760b..b425a38230 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/PrefixToModule.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/PrefixToModule.java @@ -11,36 +11,30 @@ import java.net.URISyntaxException; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.yang.common.QNameModule; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; /** * Source-specific mapping of prefixes to namespaces. */ -public interface PrefixToModule extends IdentifierNamespace { +public interface PrefixToModule extends ParserNamespace { NamespaceBehaviour BEHAVIOUR = NamespaceBehaviour.global(PrefixToModule.class); String DEFAULT_PREFIX = ""; /** - * Returns QNameModule (namespace + revision) associated with supplied - * prefix. + * Returns QNameModule (namespace + revision) associated with supplied prefix. * - * @param prefix - * Prefix - * @return QNameModule associated with supplied prefix, or null if prefix is - * not defined. + * @param prefix Prefix + * @return QNameModule associated with supplied prefix, or null if prefix is not defined. */ - @Override QNameModule get(String prefix); /** * Returns QNameModule (namespace + revision) associated with XML namespace (URI). * - * @param namespace - * XML Namespace - * @return QNameModule associated with supplied namespace, or null if prefix - * is not defined. + * @param namespace XML Namespace + * @return QNameModule associated with supplied namespace, or null if prefix is not defined. * @throws URISyntaxException if the input string is not valid URI */ @Nullable QNameModule getByNamespace(String namespace) throws URISyntaxException; diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/QNameToStatementDefinition.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/QNameToStatementDefinition.java index 8a38c1c663..43c7081300 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/QNameToStatementDefinition.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/QNameToStatementDefinition.java @@ -11,34 +11,30 @@ import java.net.URI; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; /** * Map of fully qualified statement name to statement definition. */ -public interface QNameToStatementDefinition extends IdentifierNamespace { +public interface QNameToStatementDefinition extends ParserNamespace { NamespaceBehaviour BEHAVIOUR = NamespaceBehaviour.sourceLocal(QNameToStatementDefinition.class); /** * Returns StatementDefinition with specified QName. * - * @param identifier - * QName of requested statement + * @param identifier QName of requested statement * @return StatementDefinition */ - @Override StatementDefinition get(QName identifier); /** * Returns StatementDefinition with specified namespace and localName. * - * @param namespace - * namespace of requested statement - * @param localName - * localName of requested statement + * @param namespace namespace of requested statement + * @param localName localName of requested statement * @return StatementDefinition */ @Nullable StatementDefinition getByNamespaceAndLocalName(@NonNull URI namespace, @NonNull String localName); diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/SupportedFeaturesNamespace.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/SupportedFeaturesNamespace.java index 1d937d17dc..afb73c7655 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/SupportedFeaturesNamespace.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/SupportedFeaturesNamespace.java @@ -5,17 +5,16 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.yangtools.yang.parser.spi.source; import java.util.Set; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; public interface SupportedFeaturesNamespace - extends IdentifierNamespace> { + extends ParserNamespace> { NamespaceBehaviour, @NonNull SupportedFeaturesNamespace> BEHAVIOUR = NamespaceBehaviour.global(SupportedFeaturesNamespace.class); diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/validation/ValidationBundlesNamespace.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/validation/ValidationBundlesNamespace.java index 5681ea50cb..18069b3b1f 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/validation/ValidationBundlesNamespace.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/validation/ValidationBundlesNamespace.java @@ -10,15 +10,15 @@ package org.opendaylight.yangtools.yang.parser.spi.validation; import java.util.Collection; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; +import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace; /** * Namespace used for validating whether a node is of some type, e.g. usable target for some operation or has other * significant properties. */ -public interface ValidationBundlesNamespace extends - IdentifierNamespace> { +public interface ValidationBundlesNamespace + extends ParserNamespace> { NamespaceBehaviour, @NonNull ValidationBundlesNamespace> BEHAVIOUR = NamespaceBehaviour.global(ValidationBundlesNamespace.class); -- 2.36.6