From: Robert Varga Date: Tue, 6 Oct 2020 05:48:01 +0000 (+0200) Subject: Remove SchemaContextProvider X-Git-Tag: v6.0.0~11 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F09%2F92909%2F10;p=yangtools.git Remove SchemaContextProvider This class has been superseded by EffectiveModelContextProvider, remove it. Change-Id: I81a3b0d23c3a7d359b767f5083c992b8bd397afa Signed-off-by: Robert Varga --- diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefContext.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefContext.java index 7787c5a331..1bc4757fa6 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefContext.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefContext.java @@ -13,9 +13,9 @@ import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaPath; -import org.opendaylight.yangtools.yang.model.util.AbstractSchemaContextProvider; +import org.opendaylight.yangtools.yang.model.util.AbstractEffectiveModelContextProvider; -public final class LeafRefContext extends AbstractSchemaContextProvider { +public final class LeafRefContext extends AbstractEffectiveModelContextProvider { private final QName currentNodeQName; private final SchemaPath currentNodePath; diff --git a/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenDocument.java b/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenDocument.java index 4e2ed6b60e..72eab6f275 100644 --- a/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenDocument.java +++ b/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenDocument.java @@ -14,15 +14,15 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.jaxen.api.XPathDocument; import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode; import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; -import org.opendaylight.yangtools.yang.model.util.AbstractSchemaContextProvider; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; +import org.opendaylight.yangtools.yang.model.util.AbstractEffectiveModelContextProvider; @NonNullByDefault -final class JaxenDocument extends AbstractSchemaContextProvider implements XPathDocument { +final class JaxenDocument extends AbstractEffectiveModelContextProvider implements XPathDocument { private final DataSchemaContextNode schema; private final NormalizedNode root; - JaxenDocument(final SchemaContext context, final DataSchemaContextTree tree, + JaxenDocument(final EffectiveModelContext context, final DataSchemaContextTree tree, final NormalizedNode root) { super(context); this.root = requireNonNull(root); diff --git a/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/NormalizedNodeContextSupport.java b/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/NormalizedNodeContextSupport.java index d9a24cba6e..7cec73cefc 100644 --- a/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/NormalizedNodeContextSupport.java +++ b/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/NormalizedNodeContextSupport.java @@ -18,10 +18,10 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodes; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; -import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider; -final class NormalizedNodeContextSupport extends ContextSupport implements SchemaContextProvider { +final class NormalizedNodeContextSupport extends ContextSupport implements EffectiveModelContextProvider { private static final long serialVersionUID = 1L; private final NormalizedNodeContext root; @@ -55,7 +55,7 @@ final class NormalizedNodeContextSupport extends ContextSupport implements Schem } @Override - public SchemaContext getSchemaContext() { - return getNavigator().getSchemaContext(); + public EffectiveModelContext getEffectiveModelContext() { + return getNavigator().getEffectiveModelContext(); } } diff --git a/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/NormalizedNodeNavigator.java b/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/NormalizedNodeNavigator.java index e28e56475d..f8f27cf500 100644 --- a/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/NormalizedNodeNavigator.java +++ b/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/NormalizedNodeNavigator.java @@ -30,13 +30,14 @@ import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; -import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider; /** * A {@link Navigator} implementation for YANG XPaths instantiated on a particular root {@link NormalizedNode}. */ -final class NormalizedNodeNavigator extends DefaultNavigator implements NamedAccessNavigator, SchemaContextProvider { +final class NormalizedNodeNavigator extends DefaultNavigator + implements NamedAccessNavigator, EffectiveModelContextProvider { private static final long serialVersionUID = 1L; private static final Joiner JOINER = Joiner.on(" ").skipNulls(); private final ConverterNamespaceContext namespaceContext; @@ -287,8 +288,8 @@ final class NormalizedNodeNavigator extends DefaultNavigator implements NamedAcc } @Override - public SchemaContext getSchemaContext() { - return document.getSchemaContext(); + public EffectiveModelContext getEffectiveModelContext() { + return document.getEffectiveModelContext(); } JaxenDocument getDocument() { diff --git a/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/YangFunctionContext.java b/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/YangFunctionContext.java index 0531240dfa..f93d0100fb 100644 --- a/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/YangFunctionContext.java +++ b/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/YangFunctionContext.java @@ -34,6 +34,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodes; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.ModuleImport; @@ -410,11 +411,11 @@ final class YangFunctionContext implements FunctionContext { enumName, enumerationType)); } - private static SchemaContext getSchemaContext(final NormalizedNodeContext normalizedNodeContext) { + private static EffectiveModelContext getSchemaContext(final NormalizedNodeContext normalizedNodeContext) { final ContextSupport contextSupport = normalizedNodeContext.getContextSupport(); verify(contextSupport instanceof NormalizedNodeContextSupport, "Unhandled context support %s", contextSupport.getClass()); - return ((NormalizedNodeContextSupport) contextSupport).getSchemaContext(); + return ((NormalizedNodeContextSupport) contextSupport).getEffectiveModelContext(); } private static TypedDataSchemaNode getCorrespondingTypedSchemaNode(final NormalizedNodeContext currentNodeContext) { diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/EffectiveModelContextProvider.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/EffectiveModelContextProvider.java index 18b3b42ce9..7b33b4ac10 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/EffectiveModelContextProvider.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/EffectiveModelContextProvider.java @@ -16,7 +16,7 @@ import org.eclipse.jdt.annotation.NonNull; * @author Robert Varga */ @Beta -public interface EffectiveModelContextProvider extends SchemaContextProvider { +public interface EffectiveModelContextProvider { /** * Return the {@link EffectiveModelContext} attached to this object. * @@ -24,15 +24,4 @@ public interface EffectiveModelContextProvider extends SchemaContextProvider { * @throws IllegalStateException if the context is not available. */ @NonNull EffectiveModelContext getEffectiveModelContext(); - - /** - * {@inheritDoc} - * - * @deprecated Please use {@link #getEffectiveModelContext()} instead. - */ - @Deprecated - @Override - default SchemaContext getSchemaContext() { - return getEffectiveModelContext(); - } } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SchemaContextProvider.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SchemaContextProvider.java deleted file mode 100644 index 5f93f0fe92..0000000000 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SchemaContextProvider.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (c) 2013 Cisco Systems, Inc. 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.model.api; - -import org.eclipse.jdt.annotation.NonNull; - -// FIXME: 6.0.0: remove this contract -public interface SchemaContextProvider { - /** - * Return the {@link SchemaContext} attached to this object. - * - * @return An SchemaContext instance. - * @throws IllegalStateException if the context is not available. - */ - @NonNull SchemaContext getSchemaContext(); -} diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/AbstractIdentifiableSchemaContextProvider.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/AbstractIdentifiableSchemaContextProvider.java deleted file mode 100644 index 1ca132f3a9..0000000000 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/AbstractIdentifiableSchemaContextProvider.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2019 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.model.util; - -import static java.util.Objects.requireNonNull; - -import com.google.common.annotations.Beta; -import org.eclipse.jdt.annotation.NonNull; -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.opendaylight.yangtools.concepts.Identifiable; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; - -@Beta -@NonNullByDefault -public abstract class AbstractIdentifiableSchemaContextProvider extends AbstractSchemaContextProvider - implements Identifiable { - private final @NonNull T identifier; - - protected AbstractIdentifiableSchemaContextProvider(final SchemaContext schemaContext, final T identifier) { - super(schemaContext); - this.identifier = requireNonNull(identifier); - } - - @Override - public final T getIdentifier() { - return identifier; - } - -} diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/AbstractSchemaContextProvider.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/AbstractSchemaContextProvider.java deleted file mode 100644 index 138947a855..0000000000 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/AbstractSchemaContextProvider.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2019 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.model.util; - -import static java.util.Objects.requireNonNull; - -import com.google.common.annotations.Beta; -import com.google.common.base.MoreObjects; -import com.google.common.base.MoreObjects.ToStringHelper; -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; -import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider; - -/** - * Utility superclass for classes returning a constant {@link SchemaContext}. - */ -@Beta -@NonNullByDefault -public abstract class AbstractSchemaContextProvider implements SchemaContextProvider { - private final SchemaContext schemaContext; - - protected AbstractSchemaContextProvider(final SchemaContext schemaContext) { - this.schemaContext = requireNonNull(schemaContext); - } - - @Override - public final SchemaContext getSchemaContext() { - return schemaContext; - } - - @Override - public final String toString() { - return addToStringAttributes(MoreObjects.toStringHelper(this)).toString(); - } - - protected ToStringHelper addToStringAttributes(final ToStringHelper helper) { - return helper.add("schemaContext", schemaContext); - } -} diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleNameNamespaceContext.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleNameNamespaceContext.java index 1c2d3d86bd..2b7c2c9b2a 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleNameNamespaceContext.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleNameNamespaceContext.java @@ -12,12 +12,12 @@ import com.google.common.collect.ImmutableBiMap; import com.google.common.collect.ImmutableBiMap.Builder; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Optional; -import java.util.stream.Collectors; import org.opendaylight.yangtools.yang.common.BiMapYangNamespaceContext; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.YangNamespaceContext; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.Module; +import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement; /** * Utility {@link YangNamespaceContext} backed by a SchemaContext, resolving namespaces to their module names. This @@ -31,7 +31,8 @@ import org.opendaylight.yangtools.yang.model.api.Module; * @author Robert Varga */ @Beta -public final class ModuleNameNamespaceContext extends AbstractSchemaContextProvider implements YangNamespaceContext { +public final class ModuleNameNamespaceContext extends AbstractEffectiveModelContextProvider + implements YangNamespaceContext { private static final long serialVersionUID = 1L; @SuppressFBWarnings(value = "SE_NO_SUITABLE_CONSTRUCTOR", justification = "Handled through writeReplace()") @@ -46,7 +47,8 @@ public final class ModuleNameNamespaceContext extends AbstractSchemaContextProvi */ public BiMapYangNamespaceContext toBiMap() { final Builder builder = ImmutableBiMap.builder(); - for (String name : getSchemaContext().getModules().stream().map(Module::getName).collect(Collectors.toSet())) { + for (ModuleEffectiveStatement module : getEffectiveModelContext().getModuleStatements().values()) { + final String name = module.argument().getLocalName(); builder.put(name, findNamespaceForPrefix(name).get()); } return new BiMapYangNamespaceContext(builder.build()); @@ -54,12 +56,12 @@ public final class ModuleNameNamespaceContext extends AbstractSchemaContextProvi @Override public Optional findNamespaceForPrefix(final String prefix) { - return getSchemaContext().findModules(prefix).stream().findFirst().map(Module::getQNameModule); + return getEffectiveModelContext().findModules(prefix).stream().findFirst().map(Module::getQNameModule); } @Override public Optional findPrefixForNamespace(final QNameModule namespace) { - return getSchemaContext().findModule(namespace).map(Module::getName); + return getEffectiveModelContext().findModule(namespace).map(Module::getName); } private Object writeReplace() {