Remove SchemaContextProvider 09/92909/10
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 6 Oct 2020 05:48:01 +0000 (07:48 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 6 Oct 2020 09:10:28 +0000 (11:10 +0200)
This class has been superseded by EffectiveModelContextProvider,
remove it.

Change-Id: I81a3b0d23c3a7d359b767f5083c992b8bd397afa
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefContext.java
yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenDocument.java
yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/NormalizedNodeContextSupport.java
yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/NormalizedNodeNavigator.java
yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/YangFunctionContext.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/EffectiveModelContextProvider.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SchemaContextProvider.java [deleted file]
yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/AbstractIdentifiableSchemaContextProvider.java [deleted file]
yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/AbstractSchemaContextProvider.java [deleted file]
yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleNameNamespaceContext.java

index 7787c5a331c566ced82beb92f6c97861ab8ad7d0..1bc4757fa66e6714431c5ad1a231c1aa92c3bb34 100644 (file)
@@ -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;
index 4e2ed6b60e2073e8276eeba32110185f4fb51b96..72eab6f2750380d9104088f58d2a1d2f1892d191 100644 (file)
@@ -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);
index d9a24cba6e5edb4cb191d053659ea5884c1c77c0..7cec73cefc1e3e9d4a45d062047d254d85380ce4 100644 (file)
@@ -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();
     }
 }
index e28e56475dbe0e7d238ce9fa5ad1e151515a871b..f8f27cf500d78ef9d3989329efb66304e36cc558 100644 (file)
@@ -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() {
index 0531240dfada46043da8db006b28c3118d1eafa5..f93d0100fb073518aadf95220800f22d608b6d9a 100644 (file)
@@ -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) {
index 18b3b42ce96db2f7b9ecf283656c2c66fbcc05f2..7b33b4ac10b0ef3db85df39da75075a70a2ef4e4 100644 (file)
@@ -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 (file)
index 5f93f0f..0000000
+++ /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 (file)
index 1ca132f..0000000
+++ /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<T> extends AbstractSchemaContextProvider
-        implements Identifiable<T> {
-    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 (file)
index 138947a..0000000
+++ /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);
-    }
-}
index 1c2d3d86bd0fea39cfda5cb8791342aef124981e..2b7c2c9b2a074955e731775273fb59ff23192979 100644 (file)
@@ -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<String, QNameModule> 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<QNameModule> 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<String> findPrefixForNamespace(final QNameModule namespace) {
-        return getSchemaContext().findModule(namespace).map(Module::getName);
+        return getEffectiveModelContext().findModule(namespace).map(Module::getName);
     }
 
     private Object writeReplace() {