Reduce use of getSchemaContext 06/92806/2
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 30 Sep 2020 11:05:14 +0000 (13:05 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 30 Sep 2020 11:34:10 +0000 (13:34 +0200)
We are moving towards to EffectiveModelContext usage across all
components. Make sure we propagate it to more places, fixing
related deprecation warnings.

Change-Id: If8da2a8c7037dbc1966351acc7c63b5f2cd1db85
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMWriteTransactionAdapter.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/CurrentAdapterSerializer.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/FutureSchema.java
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/test/util/BindingTestContext.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BindingCodecContext.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataContainerCodecContext.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataContainerCodecPrototype.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/LeafNodeCodecContext.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/UnionTypeCodec.java

index 35edcd0bf5e6f07de807139d184510506aaa4d30..e74decc3838fe46544b0a1dcebf7f5147dc55ba9 100644 (file)
@@ -90,7 +90,7 @@ class BindingDOMWriteTransactionAdapter<T extends DOMDataTreeWriteTransaction> e
         final YangInstanceIdentifier parentPath = domPath.getParent();
         if (parentPath != null && !parentPath.isEmpty()) {
             final NormalizedNode<?, ?> parentNode = ImmutableNodes.fromInstanceId(
-                serializer.getRuntimeContext().getSchemaContext(), parentPath);
+                serializer.getRuntimeContext().getEffectiveModelContext(), parentPath);
             getDelegate().merge(store, YangInstanceIdentifier.create(parentNode.getIdentifier()), parentNode);
         }
     }
index 216cd07924011f03b641863c1deeb4772e2e85b0..14b2fc278f23e83c0aac7f42399b6392afff2697 100644 (file)
@@ -120,7 +120,7 @@ public final class CurrentAdapterSerializer extends ForwardingBindingDOMCodecSer
     private Module getModule(final Class<?> modeledClass) {
         final QNameModule moduleName = BindingReflections.getQNameModule(modeledClass);
         final BindingRuntimeContext localRuntimeContext = getRuntimeContext();
-        final Module module = localRuntimeContext.getSchemaContext().findModule(moduleName).orElse(null);
+        final Module module = localRuntimeContext.getEffectiveModelContext().findModule(moduleName).orElse(null);
         if (module != null) {
             return module;
         }
index 86867d3672ae1f6b3f24e7f2abe1ab35eb7c1a86..f9868d28bee1949a2fd924e1b24676fc2b833f63 100644 (file)
@@ -127,7 +127,7 @@ abstract class FutureSchema implements AutoCloseable {
         return addPostponedOpAndWait(new FutureSchemaPredicate() {
             @Override
             public boolean test(final BindingRuntimeContext input) {
-                return input.getSchemaContext().findModule(module).isPresent();
+                return input.getEffectiveModelContext().findModule(module).isPresent();
             }
         });
     }
index 5b78b879b965994a3e7a61f6536013dce7a81046..c0c0085dd5d183069c8170ed54dbdb8ee205e1f2 100644 (file)
@@ -44,7 +44,7 @@ import org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker;
 import org.opendaylight.mdsal.dom.spi.store.DOMStore;
 import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore;
 import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 
 @Beta
 public class BindingTestContext implements AutoCloseable {
@@ -143,8 +143,8 @@ public class BindingTestContext implements AutoCloseable {
         mockSchemaService.changeSchema(BindingRuntimeHelpers.createEffectiveModel(moduleInfos));
     }
 
-    public SchemaContext getContext() {
-        return mockSchemaService.getSchemaContext();
+    public EffectiveModelContext getContext() {
+        return mockSchemaService.getEffectiveModelContext();
     }
 
     public void start() {
index 1a93f7007bba1b2811435e948939ce7fb3424546..7a71a694325370fff41159d9dfcfe1abc6ddb0e8 100644 (file)
@@ -369,7 +369,7 @@ public final class BindingCodecContext extends AbstractBindingNormalizedNodeSeri
                     final Class<?> valueType = method.getReturnType();
                     final IllegalArgumentCodec<Object, Object> codec = getCodec(valueType, leafSchema.getType());
                     valueNode = LeafNodeCodecContext.of(leafSchema, codec, method.getName(), valueType,
-                        context.getSchemaContext());
+                        context.getEffectiveModelContext());
                 } else if (schema instanceof LeafListSchemaNode) {
                     final Optional<Type> optType = ClassLoaderUtils.getFirstGenericParameter(
                         method.getGenericReturnType());
@@ -574,7 +574,7 @@ public final class BindingCodecContext extends AbstractBindingNormalizedNodeSeri
     @SuppressFBWarnings("BC_UNCONFIRMED_CAST")
     public ContainerNode toNormalizedNodeRpcData(final DataContainer data) {
         // FIXME: Should the cast to DataObject be necessary?
-        return serializeDataObject((DataObject) data, (ctx, iface, domWriter) -> ctx.newRpcWriter(iface, domWriter));
+        return serializeDataObject((DataObject) data, @NonNull BindingNormalizedNodeWriterFactory::newRpcWriter);
     }
 
     @Override
index 1eef79db650628df2101baba7cec9d8841ab32a1..5814671b0f43e932031fa8f151e8b4a313bbdcc0 100644 (file)
@@ -192,7 +192,7 @@ abstract class DataContainerCodecContext<D extends DataObject, T extends WithSta
 
     private IllegalArgumentException childNullException(final QName child, final String message, final Object... args) {
         final QNameModule module = child.getModule();
-        if (!factory().getRuntimeContext().getSchemaContext().findModule(module).isPresent()) {
+        if (!factory().getRuntimeContext().getEffectiveModelContext().findModule(module).isPresent()) {
             throw new MissingSchemaException("Module " + module + " is not present in current schema context.");
         }
         throw IncorrectNestingException.create(message, args);
index 73a52cfd12108d6d303b4d518aaeb428b9b90c02..32dff75f327656a028daa18478d6f03c078bfa84 100644 (file)
@@ -175,7 +175,7 @@ final class DataContainerCodecPrototype<T extends WithStatus> implements NodeCon
     }
 
     static DataContainerCodecPrototype<SchemaContext> rootPrototype(final CodecContextFactory factory) {
-        final SchemaContext schema = factory.getRuntimeContext().getSchemaContext();
+        final SchemaContext schema = factory.getRuntimeContext().getEffectiveModelContext();
         final NodeIdentifier arg = NodeIdentifier.create(schema.getQName());
         return new DataContainerCodecPrototype<>(DataRoot.class, arg, schema, factory);
     }
index 06c3d19e9885265d7a91b62d546802ad9f038849..f8467c7f397b43884eece4fff93f4a4047c90cfd 100644 (file)
@@ -19,10 +19,10 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.impl.codec.TypeDefinitionAwareCodec;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.ModuleImport;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.IdentityrefTypeDefinition;
 
@@ -32,7 +32,7 @@ class LeafNodeCodecContext extends ValueNodeCodecContext.WithCodec {
         private final @NonNull Class<T> bindingClass;
 
         OfTypeObject(final LeafSchemaNode schema, final IllegalArgumentCodec<Object, Object> codec,
-                final String getterName, final SchemaContext schemaContext, final Class<T> bindingClass) {
+                final String getterName, final EffectiveModelContext schemaContext, final Class<T> bindingClass) {
             super(schema, codec, getterName, schemaContext);
             this.bindingClass = requireNonNull(bindingClass);
         }
@@ -54,12 +54,12 @@ class LeafNodeCodecContext extends ValueNodeCodecContext.WithCodec {
     }
 
     LeafNodeCodecContext(final LeafSchemaNode schema, final IllegalArgumentCodec<Object, Object> codec,
-            final String getterName, final SchemaContext schemaContext) {
+            final String getterName, final EffectiveModelContext schemaContext) {
         super(schema, codec, getterName, createDefaultObject(schema, codec, schemaContext));
     }
 
     static LeafNodeCodecContext of(final LeafSchemaNode schema, final IllegalArgumentCodec<Object, Object> codec,
-            final String getterName, final Class<?> valueType, final SchemaContext schemaContext) {
+            final String getterName, final Class<?> valueType, final EffectiveModelContext schemaContext) {
         return TypeObject.class.isAssignableFrom(valueType)
                 ? new OfTypeObject<>(schema, codec, getterName, schemaContext, valueType.asSubclass(TypeObject.class))
                         : new LeafNodeCodecContext(schema, codec, getterName, schemaContext);
@@ -72,7 +72,7 @@ class LeafNodeCodecContext extends ValueNodeCodecContext.WithCodec {
 
     private static Object createDefaultObject(final LeafSchemaNode schema,
                                               final IllegalArgumentCodec<Object, Object> codec,
-                                              final SchemaContext schemaContext) {
+                                              final EffectiveModelContext schemaContext) {
         Optional<? extends Object> defaultValue = schema.getType().getDefaultValue();
         TypeDefinition<?> type = schema.getType();
         if (defaultValue.isPresent()) {
@@ -98,7 +98,7 @@ class LeafNodeCodecContext extends ValueNodeCodecContext.WithCodec {
 
     private static Object qnameDomValueFromString(final IllegalArgumentCodec<Object, Object> codec,
                                                   final DataSchemaNode schema, final String defaultValue,
-                                                  final SchemaContext schemaContext) {
+                                                  final EffectiveModelContext schemaContext) {
         int prefixEndIndex = defaultValue.indexOf(':');
         QName qname;
         if (prefixEndIndex != -1) {
index e0dbff9c09ea663b032c511f9dbadfb0cd8598f6..94ab6595a4c2935d9492039ba0b2145665ea7a48 100644 (file)
@@ -15,10 +15,10 @@ import java.util.concurrent.Callable;
 import org.opendaylight.mdsal.binding.generator.util.BaseYangTypesProvider;
 import org.opendaylight.mdsal.binding.spec.naming.BindingMapping;
 import org.opendaylight.yangtools.concepts.IllegalArgumentCodec;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.PathExpression;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition;
@@ -73,7 +73,7 @@ final class UnionTypeCodec extends ReflectionBasedCodec {
     private static void addLeafrefValueCodec(final Class<?> unionCls, final UnionTypeDefinition unionType,
             final BindingCodecContext bindingCodecContext, final Set<UnionValueOptionContext> values,
             final TypeDefinition<?> subtype) throws NoSuchMethodException {
-        final SchemaContext schemaContext = bindingCodecContext.getRuntimeContext().getSchemaContext();
+        final EffectiveModelContext schemaContext = bindingCodecContext.getRuntimeContext().getEffectiveModelContext();
         final Module module = schemaContext.findModule(subtype.getQName().getModule()).get();
         final PathExpression xpath = ((LeafrefTypeDefinition) subtype).getPathStatement();
         // find schema node in schema context by xpath of leafref