Mass-migrate to use EffectiveModelContext 17/92417/2
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 7 Sep 2020 11:36:25 +0000 (13:36 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 8 Sep 2020 09:17:52 +0000 (11:17 +0200)
This is the next step in migration: make sure most of our yang-data
constructs operate on EffectiveModelContext.

Change-Id: I85a314899bcd29ead0396a4b4ebd369f4e141014
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
29 files changed:
yang/rfc7952-data-util/src/main/java/org/opendaylight/yangtools/rfc7952/data/util/ImmutableMetadataNormalizedAnydata.java
yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/NormalizedAnydata.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/IdentityrefJSONCodec.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONCodecFactory.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONCodecFactorySupplier.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONNormalizedNodeStreamWriter.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterContext.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterExclusiveRootContext.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterListContext.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterNamedObjectContext.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterObjectContext.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterURIContext.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonParserStream.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/Lhotka02JSONCodecFactory.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/RFC7951JSONCodecFactory.java
yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/AbstractYT1027Test.java
yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug4501Test.java
yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug4969Test.java
yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug5446Test.java
yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug6112Test.java
yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug7246Test.java
yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug8083Test.java
yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/TestUtils.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/DOMSourceMountPointChild.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlCodecFactory.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlParserStream.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStringInstanceIdentifierCodec.java
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ImmutableNormalizedAnydata.java
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/codec/AbstractCodecFactory.java

index b6f4aa3443bfa2b6ea563566b62c84ed83513a57..a0502adfcc731a7b93c8c2d53d09ce83d1dfe27d 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.util.ImmutableNormalizedAnydata;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 
 @Beta
 @NonNullByDefault
@@ -27,13 +27,13 @@ public final class ImmutableMetadataNormalizedAnydata extends ImmutableNormalize
         implements MetadataNormalizedAnydata {
     private final NormalizedMetadata metadata;
 
-    public ImmutableMetadataNormalizedAnydata(final SchemaContext schemaContext, final DataSchemaNode contextNode,
-            final NormalizedNode<?, ?> data, final NormalizedMetadata metadata) {
+    public ImmutableMetadataNormalizedAnydata(final EffectiveModelContext schemaContext,
+            final DataSchemaNode contextNode, final NormalizedNode<?, ?> data, final NormalizedMetadata metadata) {
         super(schemaContext, contextNode, data);
         this.metadata = requireNonNull(metadata);
     }
 
-    public static ImmutableNormalizedAnydata ofOptional(final SchemaContext schemaContext,
+    public static ImmutableNormalizedAnydata ofOptional(final EffectiveModelContext schemaContext,
             final DataSchemaNode contextNode, final NormalizedNode<?, ?> data,
             final Optional<NormalizedMetadata> metadata) {
         return metadata.isPresent()
index b231e917812eb40df84ce237cc8d1dae85bc9a9f..f7c683f5d597a26281bc7d502f36c511ca97441b 100644 (file)
@@ -14,7 +14,7 @@ import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider;
 
 /**
  * The contents of an {@code anydata} node in a normalized format. This representation acts as a schema-bound bridge
@@ -27,7 +27,7 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider;
  */
 @Beta
 @NonNullByDefault
-public interface NormalizedAnydata extends Immutable, SchemaContextProvider {
+public interface NormalizedAnydata extends Immutable, EffectiveModelContextProvider {
 
     DataSchemaNode getContextNode();
 
index 73f31de069ab3c55dbb94febd419276d7138eb3f..5257e9d02a23830f0c68af7f64c74c9045f4f91a 100644 (file)
@@ -18,14 +18,14 @@ import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.data.util.codec.IdentityCodecUtil;
 import org.opendaylight.yangtools.yang.data.util.codec.QNameCodecUtil;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.Module;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 
 final class IdentityrefJSONCodec implements JSONCodec<QName> {
-    private final SchemaContext schemaContext;
+    private final EffectiveModelContext schemaContext;
     private final QNameModule parentModule;
 
-    IdentityrefJSONCodec(final SchemaContext context, final QNameModule parentModule) {
+    IdentityrefJSONCodec(final EffectiveModelContext context, final QNameModule parentModule) {
         this.schemaContext = requireNonNull(context);
         this.parentModule = requireNonNull(parentModule);
     }
index 87835b0dfac8ae5b93816cd9796eddb8aca81874..a945c604a99d3c0e29c4762175a43c4906a26e2e 100644 (file)
@@ -21,6 +21,7 @@ import org.opendaylight.yangtools.yang.data.impl.codec.StringStringCodec;
 import org.opendaylight.yangtools.yang.data.util.codec.AbstractCodecFactory;
 import org.opendaylight.yangtools.yang.data.util.codec.CodecCache;
 import org.opendaylight.yangtools.yang.data.util.codec.LazyCodecCache;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.type.BinaryTypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition;
@@ -48,7 +49,7 @@ import org.opendaylight.yangtools.yang.model.api.type.UnknownTypeDefinition;
  */
 @Beta
 public abstract class JSONCodecFactory extends AbstractCodecFactory<JSONCodec<?>> {
-    JSONCodecFactory(final @NonNull SchemaContext context, final @NonNull CodecCache<JSONCodec<?>> cache) {
+    JSONCodecFactory(final @NonNull EffectiveModelContext context, final @NonNull CodecCache<JSONCodec<?>> cache) {
         super(context, cache);
     }
 
@@ -84,7 +85,7 @@ public abstract class JSONCodecFactory extends AbstractCodecFactory<JSONCodec<?>
 
     @Override
     protected final JSONCodec<?> identityRefCodec(final IdentityrefTypeDefinition type, final QNameModule module) {
-        return new IdentityrefJSONCodec(getSchemaContext(), module);
+        return new IdentityrefJSONCodec(getEffectiveModelContext(), module);
     }
 
     @Override
@@ -154,11 +155,11 @@ public abstract class JSONCodecFactory extends AbstractCodecFactory<JSONCodec<?>
     //
     //               The above is not currently possible, as we cannot reference JSONCodecFactorySupplier from the
     //               factory due to that potentially creating a circular reference.
-    final JSONCodecFactory rebaseTo(final SchemaContext newSchemaContext) {
+    final JSONCodecFactory rebaseTo(final EffectiveModelContext newSchemaContext) {
         return rebaseTo(newSchemaContext, new LazyCodecCache<>());
     }
 
-    abstract JSONCodecFactory rebaseTo(SchemaContext newSchemaContext, CodecCache<JSONCodec<?>> newCache);
+    abstract JSONCodecFactory rebaseTo(EffectiveModelContext newSchemaContext, CodecCache<JSONCodec<?>> newCache);
 
     abstract JSONCodec<?> wrapDecimalCodec(DecimalStringCodec decimalCodec);
 
index 4be9b8979462e5dc53ae80717078d3879051a1c3..c42e4d510266c648d8a88bc550d4aa1b38521945 100644 (file)
@@ -25,7 +25,7 @@ import org.opendaylight.yangtools.yang.data.util.codec.PrecomputedCodecCache;
 import org.opendaylight.yangtools.yang.data.util.codec.SharedCodecCache;
 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.TypedDataSchemaNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -42,7 +42,7 @@ public enum JSONCodecFactorySupplier {
      */
     RFC7951() {
         @Override
-        JSONCodecFactory createFactory(final SchemaContext context, final CodecCache<JSONCodec<?>> cache) {
+        JSONCodecFactory createFactory(final EffectiveModelContext context, final CodecCache<JSONCodec<?>> cache) {
             return new RFC7951JSONCodecFactory(context, cache);
         }
     },
@@ -51,22 +51,23 @@ public enum JSONCodecFactorySupplier {
      */
     DRAFT_LHOTKA_NETMOD_YANG_JSON_02() {
         @Override
-        JSONCodecFactory createFactory(final SchemaContext context, final CodecCache<JSONCodec<?>> cache) {
+        JSONCodecFactory createFactory(final EffectiveModelContext context, final CodecCache<JSONCodec<?>> cache) {
             return new Lhotka02JSONCodecFactory(context, cache);
         }
     };
 
     private static final Logger LOG = LoggerFactory.getLogger(JSONCodecFactorySupplier.class);
 
-    private static final class EagerCacheLoader extends CacheLoader<SchemaContext, JSONCodecFactory> {
-        private final BiFunction<SchemaContext, CodecCache<JSONCodec<?>>, JSONCodecFactory> factorySupplier;
+    private static final class EagerCacheLoader extends CacheLoader<EffectiveModelContext, JSONCodecFactory> {
+        private final BiFunction<EffectiveModelContext, CodecCache<JSONCodec<?>>, JSONCodecFactory> factorySupplier;
 
-        EagerCacheLoader(final BiFunction<SchemaContext, CodecCache<JSONCodec<?>>, JSONCodecFactory> factorySupplier) {
+        EagerCacheLoader(final BiFunction<EffectiveModelContext,
+                CodecCache<JSONCodec<?>>, JSONCodecFactory> factorySupplier) {
             this.factorySupplier = requireNonNull(factorySupplier);
         }
 
         @Override
-        public JSONCodecFactory load(final SchemaContext key) {
+        public JSONCodecFactory load(final EffectiveModelContext key) {
             final Stopwatch sw = Stopwatch.createStarted();
             final LazyCodecCache<JSONCodec<?>> lazyCache = new LazyCodecCache<>();
             final JSONCodecFactory lazy = factorySupplier.apply(key, lazyCache);
@@ -95,16 +96,16 @@ public enum JSONCodecFactorySupplier {
     }
 
     // Weak keys to retire the entry when SchemaContext goes away
-    private final LoadingCache<SchemaContext, JSONCodecFactory> precomputed;
+    private final LoadingCache<EffectiveModelContext, JSONCodecFactory> precomputed;
 
     // Weak keys to retire the entry when SchemaContext goes away and to force identity-based lookup
-    private final LoadingCache<SchemaContext, JSONCodecFactory> shared;
+    private final LoadingCache<EffectiveModelContext, JSONCodecFactory> shared;
 
     JSONCodecFactorySupplier() {
         precomputed = CacheBuilder.newBuilder().weakKeys().build(new EagerCacheLoader(this::createFactory));
-        shared = CacheBuilder.newBuilder().weakKeys().build(new CacheLoader<SchemaContext, JSONCodecFactory>() {
+        shared = CacheBuilder.newBuilder().weakKeys().build(new CacheLoader<EffectiveModelContext, JSONCodecFactory>() {
             @Override
-            public JSONCodecFactory load(final SchemaContext key) {
+            public JSONCodecFactory load(final EffectiveModelContext key) {
                 return createFactory(key, new SharedCodecCache<>());
             }
         });
@@ -119,25 +120,25 @@ public enum JSONCodecFactorySupplier {
      * <p>
      * Choosing this implementation is appropriate when the memory overhead of keeping a full codec tree is not as
      * great a concern as predictable performance. When compared to the implementation returned by
-     * {@link #getShared(SchemaContext)}, this implementation is expected to offer higher performance and have lower
-     * peak memory footprint when most of the SchemaContext is actually in use.
+     * {@link #getShared(EffectiveModelContext)}, this implementation is expected to offer higher performance and have
+     * lower peak memory footprint when most of the SchemaContext is actually in use.
      *
      * <p>
      * For call sites which do not want to pay the CPU cost of pre-computing this implementation, but still would like
      * to use it if is available (by being populated by some other caller), you can use
-     * {@link #getPrecomputedIfAvailable(SchemaContext)}.
+     * {@link #getPrecomputedIfAvailable(EffectiveModelContext)}.
      *
      * @param context SchemaContext instance
      * @return A sharable {@link JSONCodecFactory}
      * @throws NullPointerException if context is null
      */
-    public @NonNull JSONCodecFactory getPrecomputed(final @NonNull SchemaContext context) {
+    public @NonNull JSONCodecFactory getPrecomputed(final @NonNull EffectiveModelContext context) {
         return verifyNotNull(precomputed.getUnchecked(context));
     }
 
     /**
      * Get a thread-safe, eagerly-caching {@link JSONCodecFactory} for a SchemaContext, if it is available. This
-     * method is a non-blocking equivalent of {@link #getPrecomputed(SchemaContext)} for use in code paths where
+     * method is a non-blocking equivalent of {@link #getPrecomputed(EffectiveModelContext)} for use in code paths where
      * the potential of having to pre-compute the implementation is not acceptable. One such scenario is when the
      * code base wants to opportunistically take advantage of pre-computed version, but is okay with a fallback to
      * a different implementation.
@@ -146,14 +147,14 @@ public enum JSONCodecFactorySupplier {
      * @return A sharable {@link JSONCodecFactory}, or absent if such an implementation is not available.
      * @throws NullPointerException if context is null
      */
-    public @NonNull Optional<JSONCodecFactory> getPrecomputedIfAvailable(final @NonNull SchemaContext context) {
+    public @NonNull Optional<JSONCodecFactory> getPrecomputedIfAvailable(final @NonNull EffectiveModelContext context) {
         return Optional.ofNullable(precomputed.getIfPresent(context));
     }
 
     /**
      * Get a thread-safe, lazily-caching {@link JSONCodecFactory} for a SchemaContext. This method can, and will,
-     * return the same instance as long as the associated SchemaContext is present or the factory is not invalidated
-     * by memory pressure. Returned object can be safely used by multiple threads concurrently.
+     * return the same instance as long as the associated EffectiveModelContext is present or the factory is not
+     * invalidated by memory pressure. Returned object can be safely used by multiple threads concurrently.
      *
      * <p>
      * Choosing this implementation is a safe default, as it will not incur prohibitive blocking, nor will it tie up
@@ -163,7 +164,7 @@ public enum JSONCodecFactorySupplier {
      * @return A sharable {@link JSONCodecFactory}
      * @throws NullPointerException if context is null
      */
-    public @NonNull JSONCodecFactory getShared(final @NonNull SchemaContext context) {
+    public @NonNull JSONCodecFactory getShared(final @NonNull EffectiveModelContext context) {
         return verifyNotNull(shared.getUnchecked(context));
     }
 
@@ -180,13 +181,13 @@ public enum JSONCodecFactorySupplier {
      * @return A non-sharable {@link JSONCodecFactory}
      * @throws NullPointerException if context is null
      */
-    public @NonNull JSONCodecFactory createLazy(final @NonNull SchemaContext context) {
+    public @NonNull JSONCodecFactory createLazy(final @NonNull EffectiveModelContext context) {
         return createFactory(context, new LazyCodecCache<>());
     }
 
     /**
-     * Create a simplistic, thread-safe {@link JSONCodecFactory} for a {@link SchemaContext}. This method will return
-     * distinct objects every time it is invoked. Returned object may be use from multiple threads concurrently.
+     * Create a simplistic, thread-safe {@link JSONCodecFactory} for a {@link EffectiveModelContext}. This method will
+     * return distinct objects every time it is invoked. Returned object may be use from multiple threads concurrently.
      *
      * <p>
      * This implementation exists mostly for completeness only, as it does not perform any caching at all and each codec
@@ -197,9 +198,9 @@ public enum JSONCodecFactorySupplier {
      * @return A non-sharable {@link JSONCodecFactory}
      * @throws NullPointerException if context is null.
      */
-    public @NonNull JSONCodecFactory createSimple(final @NonNull SchemaContext context) {
+    public @NonNull JSONCodecFactory createSimple(final @NonNull EffectiveModelContext context) {
         return createFactory(context, NoopCodecCache.getInstance());
     }
 
-    abstract @NonNull JSONCodecFactory createFactory(SchemaContext context, CodecCache<JSONCodec<?>> cache);
+    abstract @NonNull JSONCodecFactory createFactory(EffectiveModelContext context, CodecCache<JSONCodec<?>> cache);
 }
index 38c873f46c20124f476baa07c2ff9c831b569c92..91126cdb3b7da25ca0308bbb5855c7d69e21f0e4 100644 (file)
@@ -36,7 +36,7 @@ import org.opendaylight.yangtools.yang.model.api.AnydataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.TypedDataSchemaNode;
@@ -129,8 +129,8 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt
      */
     public static NormalizedNodeStreamWriter createExclusiveWriter(final JSONCodecFactory codecFactory,
             final SchemaPath path, final URI initialNs, final JsonWriter jsonWriter) {
-        return new Exclusive(codecFactory, SchemaTracker.create(codecFactory.getSchemaContext(), path), jsonWriter,
-            new JSONStreamWriterExclusiveRootContext(initialNs));
+        return new Exclusive(codecFactory, SchemaTracker.create(codecFactory.getEffectiveModelContext(), path),
+            jsonWriter, new JSONStreamWriterExclusiveRootContext(initialNs));
     }
 
     /**
@@ -181,7 +181,7 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt
      */
     public static NormalizedNodeStreamWriter createNestedWriter(final JSONCodecFactory codecFactory,
             final SchemaPath path, final URI initialNs, final JsonWriter jsonWriter) {
-        return new Nested(codecFactory, SchemaTracker.create(codecFactory.getSchemaContext(), path), jsonWriter,
+        return new Nested(codecFactory, SchemaTracker.create(codecFactory.getEffectiveModelContext(), path), jsonWriter,
             new JSONStreamWriterSharedRootContext(initialNs));
     }
 
@@ -218,8 +218,8 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt
     @Override
     public void startLeafNode(final NodeIdentifier name) throws IOException {
         tracker.startLeafNode(name);
-        context.emittingChild(codecs.getSchemaContext(), writer);
-        context.writeChildJsonIdentifier(codecs.getSchemaContext(), writer, name.getNodeType());
+        context.emittingChild(codecs.getEffectiveModelContext(), writer);
+        context.writeChildJsonIdentifier(codecs.getEffectiveModelContext(), writer, name.getNodeType());
     }
 
     @Override
@@ -231,7 +231,7 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt
     @Override
     public void startLeafSetEntryNode(final NodeWithValue<?> name) throws IOException {
         tracker.startLeafSetEntryNode(name);
-        context.emittingChild(codecs.getSchemaContext(), writer);
+        context.emittingChild(codecs.getEffectiveModelContext(), writer);
     }
 
     @Override
@@ -299,8 +299,8 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt
     public final boolean startAnydataNode(final NodeIdentifier name, final Class<?> objectModel) throws IOException {
         if (NormalizedAnydata.class.isAssignableFrom(objectModel)) {
             tracker.startAnydataNode(name);
-            context.emittingChild(codecs.getSchemaContext(), writer);
-            context.writeChildJsonIdentifier(codecs.getSchemaContext(), writer, name.getNodeType());
+            context.emittingChild(codecs.getEffectiveModelContext(), writer);
+            context.writeChildJsonIdentifier(codecs.getEffectiveModelContext(), writer, name.getNodeType());
             return true;
         }
 
@@ -310,7 +310,7 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt
     @Override
     public final NormalizedNodeStreamWriter startMountPoint(final MountPointIdentifier mountId,
             final MountPointContext mountCtx) throws IOException {
-        final SchemaContext ctx = mountCtx.getSchemaContext();
+        final EffectiveModelContext ctx = mountCtx.getEffectiveModelContext();
         return new Nested(codecs.rebaseTo(ctx), SchemaTracker.create(ctx), writer,
             new JSONStreamWriterSharedRootContext(context.getNamespace()));
     }
@@ -319,8 +319,8 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt
     public final boolean startAnyxmlNode(final NodeIdentifier name, final Class<?> objectModel) throws IOException {
         if (DOMSource.class.isAssignableFrom(objectModel)) {
             tracker.startAnyxmlNode(name);
-            context.emittingChild(codecs.getSchemaContext(), writer);
-            context.writeChildJsonIdentifier(codecs.getSchemaContext(), writer, name.getNodeType());
+            context.emittingChild(codecs.getEffectiveModelContext(), writer);
+            context.writeChildJsonIdentifier(codecs.getEffectiveModelContext(), writer, name.getNodeType());
             return true;
         }
         return false;
@@ -336,7 +336,7 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt
     @Override
     public final void endNode() throws IOException {
         tracker.endNode();
-        context = context.endNode(codecs.getSchemaContext(), writer);
+        context = context.endNode(codecs.getEffectiveModelContext(), writer);
     }
 
     @Override
@@ -349,7 +349,7 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt
             throw new IOException("Unexpected root context " + context);
         }
 
-        context.endNode(codecs.getSchemaContext(), writer);
+        context.endNode(codecs.getEffectiveModelContext(), writer);
         writer.close();
     }
 
@@ -387,7 +387,8 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt
     }
 
     private void writeNormalizedAnydata(final NormalizedAnydata anydata) throws IOException {
-        anydata.writeTo(JSONNormalizedNodeStreamWriter.createNestedWriter(codecs.rebaseTo(anydata.getSchemaContext()),
+        anydata.writeTo(JSONNormalizedNodeStreamWriter.createNestedWriter(
+            codecs.rebaseTo(anydata.getEffectiveModelContext()),
             new SingleChildDataNodeContainer(anydata.getContextNode()), context.getNamespace(), writer));
     }
 
index fa2a7b9e8bd82bc82a77220216bc222eb2be646b..9f34573162ad7b6c5247aeb5cc0b1d454939ff78 100644 (file)
@@ -19,8 +19,8 @@ import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.Module;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 
 /**
  * Abstract base class for a single level of {@link JSONNormalizedNodeStreamWriter} recursion. Provides the base API
@@ -60,7 +60,7 @@ abstract class JSONStreamWriterContext {
      * @param qname Namespace/name tuple
      * @throws IOException when the writer reports it
      */
-    final void writeChildJsonIdentifier(final SchemaContext schema, final JsonWriter writer, final QName qname)
+    final void writeChildJsonIdentifier(final EffectiveModelContext schema, final JsonWriter writer, final QName qname)
             throws IOException {
 
         final StringBuilder sb = new StringBuilder();
@@ -84,8 +84,8 @@ abstract class JSONStreamWriterContext {
      * @param qname Namespace/name tuple
      * @throws IOException when the writer reports it
      */
-    protected final void writeMyJsonIdentifier(final SchemaContext schema, final JsonWriter writer, final QName qname)
-            throws IOException {
+    protected final void writeMyJsonIdentifier(final EffectiveModelContext schema, final JsonWriter writer,
+            final QName qname) throws IOException {
         parent.writeChildJsonIdentifier(schema, writer, qname);
     }
 
@@ -103,7 +103,7 @@ abstract class JSONStreamWriterContext {
      * @param writer Output writer
      * @throws IOException when the writer reports it
      */
-    protected abstract void emitStart(SchemaContext schema, JsonWriter writer) throws IOException;
+    protected abstract void emitStart(EffectiveModelContext schema, JsonWriter writer) throws IOException;
 
     /**
      * Emit the end of an element.
@@ -114,7 +114,7 @@ abstract class JSONStreamWriterContext {
      */
     protected abstract void emitEnd(JsonWriter writer) throws IOException;
 
-    private void emitMyself(final SchemaContext schema, final JsonWriter writer) throws IOException {
+    private void emitMyself(final EffectiveModelContext schema, final JsonWriter writer) throws IOException {
         if (!emittedMyself) {
             if (parent != null) {
                 parent.emitMyself(schema, writer);
@@ -134,7 +134,7 @@ abstract class JSONStreamWriterContext {
      * @param writer Output writer
      * @throws IOException when writer reports it
      */
-    final void emittingChild(final SchemaContext schema, final JsonWriter writer) throws IOException {
+    final void emittingChild(final EffectiveModelContext schema, final JsonWriter writer) throws IOException {
         checkState(!inChild, "Duplicate child encountered");
         emitMyself(schema, writer);
         inChild = true;
@@ -150,7 +150,8 @@ abstract class JSONStreamWriterContext {
      * @throws IOException when writer reports it
      * @throws IllegalArgumentException if this node cannot be ended (e.g. root)
      */
-    final JSONStreamWriterContext endNode(final SchemaContext schema, final JsonWriter writer) throws IOException {
+    final JSONStreamWriterContext endNode(final EffectiveModelContext schema, final JsonWriter writer)
+            throws IOException {
         if (inChild) {
             inChild = false;
             return this;
index 426d34fe8c2f26625e5425bfbbb2bb06c6a70faa..7fed467695be955f698176fe6e1b8453c5031939 100644 (file)
@@ -10,7 +10,7 @@ package org.opendaylight.yangtools.yang.data.codec.gson;
 import com.google.gson.stream.JsonWriter;
 import java.io.IOException;
 import java.net.URI;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 
 final class JSONStreamWriterExclusiveRootContext extends JSONStreamWriterRootContext {
     JSONStreamWriterExclusiveRootContext(final URI namespace) {
@@ -18,7 +18,7 @@ final class JSONStreamWriterExclusiveRootContext extends JSONStreamWriterRootCon
     }
 
     @Override
-    protected void emitStart(final SchemaContext schema, final JsonWriter writer) throws IOException {
+    protected void emitStart(final EffectiveModelContext schema, final JsonWriter writer) throws IOException {
         writer.beginObject();
     }
 
index 8d902baa955b46130928a3db795c6d1848d5916b..eadaa38c0f880ea61a79966e0a309aa262ec12eb 100644 (file)
@@ -12,7 +12,7 @@ import static java.util.Objects.requireNonNull;
 import com.google.gson.stream.JsonWriter;
 import java.io.IOException;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 
 /**
  * A single recursion level of {@link JSONNormalizedNodeStreamWriter} representing
@@ -24,7 +24,7 @@ final class JSONStreamWriterListContext extends JSONStreamWriterQNameContext {
     }
 
     @Override
-    protected void emitStart(final SchemaContext schema, final JsonWriter writer) throws IOException {
+    protected void emitStart(final EffectiveModelContext schema, final JsonWriter writer) throws IOException {
         writeMyJsonIdentifier(schema, writer, getQName());
         writer.beginArray();
     }
index cac95796c7463fb9d26bee9cff68991e3853ff2b..3627471901c213d3e1681c2ea12a4b72b156fb66 100644 (file)
@@ -10,7 +10,7 @@ package org.opendaylight.yangtools.yang.data.codec.gson;
 import com.google.gson.stream.JsonWriter;
 import java.io.IOException;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 
 /**
  * A recursion level of {@link JSONNormalizedNodeStreamWriter}, which represents
@@ -24,7 +24,7 @@ final class JSONStreamWriterNamedObjectContext extends JSONStreamWriterObjectCon
     }
 
     @Override
-    protected void emitStart(final SchemaContext schema, final JsonWriter writer) throws IOException {
+    protected void emitStart(final EffectiveModelContext schema, final JsonWriter writer) throws IOException {
         writeMyJsonIdentifier(schema, writer, getQName());
         super.emitStart(schema, writer);
     }
index bfc81a42ae38db86ceaf182c9772cbdac7b66839..fcee390796f884b58693e20f9d91ead037531894 100644 (file)
@@ -12,7 +12,7 @@ import static java.util.Objects.requireNonNull;
 import com.google.gson.stream.JsonWriter;
 import java.io.IOException;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 
 /**
  * A recursion level of {@link JSONNormalizedNodeStreamWriter}, which represents
@@ -26,7 +26,7 @@ class JSONStreamWriterObjectContext extends JSONStreamWriterQNameContext {
     }
 
     @Override
-    protected void emitStart(final SchemaContext schema, final JsonWriter writer) throws IOException {
+    protected void emitStart(final EffectiveModelContext schema, final JsonWriter writer) throws IOException {
         writer.beginObject();
     }
 
index 7caa4adbe6bd80b6982c0a5ad03a8a926c31f619..212c077ae42caa12a7a21774c7c1d4fc06338f7b 100644 (file)
@@ -10,7 +10,7 @@ package org.opendaylight.yangtools.yang.data.codec.gson;
 import com.google.gson.stream.JsonWriter;
 import java.io.IOException;
 import java.net.URI;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 
 /**
  * Abstract class tracking a virtual level of {@link JSONNormalizedNodeStreamWriter}
@@ -34,7 +34,7 @@ abstract class JSONStreamWriterURIContext extends JSONStreamWriterContext {
     }
 
     @Override
-    protected void emitStart(final SchemaContext schema, final JsonWriter writer) throws IOException {
+    protected void emitStart(final EffectiveModelContext schema, final JsonWriter writer) throws IOException {
         // No-op
     }
 }
\ No newline at end of file
index 877173b4ebef7284948b964cc67bda2fb31ffb6d..8df6b03e380cb402a6809162688ae932dc5729f9 100644 (file)
@@ -95,7 +95,7 @@ public final class JsonParserStream implements Closeable, Flushable {
      */
     public static @NonNull JsonParserStream create(final @NonNull NormalizedNodeStreamWriter writer,
             final @NonNull JSONCodecFactory codecFactory) {
-        return new JsonParserStream(writer, codecFactory, codecFactory.getSchemaContext(), false);
+        return new JsonParserStream(writer, codecFactory, codecFactory.getEffectiveModelContext(), false);
     }
 
     /**
@@ -131,7 +131,7 @@ public final class JsonParserStream implements Closeable, Flushable {
      */
     public static @NonNull JsonParserStream createLenient(final @NonNull NormalizedNodeStreamWriter writer,
             final @NonNull JSONCodecFactory codecFactory) {
-        return new JsonParserStream(writer, codecFactory, codecFactory.getSchemaContext(), true);
+        return new JsonParserStream(writer, codecFactory, codecFactory.getEffectiveModelContext(), true);
     }
 
     /**
@@ -365,7 +365,8 @@ public final class JsonParserStream implements Closeable, Flushable {
             moduleNamePart = childName.substring(0, lastIndexOfColon);
             nodeNamePart = childName.substring(lastIndexOfColon + 1);
 
-            final Iterator<? extends Module> m = codecs.getSchemaContext().findModules(moduleNamePart).iterator();
+            final Iterator<? extends Module> m = codecs.getEffectiveModelContext().findModules(moduleNamePart)
+                    .iterator();
             namespace = m.hasNext() ? m.next().getNamespace() : null;
         } else {
             nodeNamePart = childName;
@@ -394,7 +395,7 @@ public final class JsonParserStream implements Closeable, Flushable {
         for (final URI potentialUri : potentialUris) {
             builder.append('\n');
             //FIXME how to get information about revision from JSON input? currently first available is used.
-            builder.append(codecs.getSchemaContext().findModules(potentialUri).iterator().next().getName());
+            builder.append(codecs.getEffectiveModelContext().findModules(potentialUri).iterator().next().getName());
         }
         return builder.toString();
     }
index 56ce4a7d5c48ed79ac98bec8ad945aee8d4d422d..87701c54575b0f5749c31d8e09af9bd0137649e0 100644 (file)
@@ -10,13 +10,13 @@ package org.opendaylight.yangtools.yang.data.codec.gson;
 import org.opendaylight.yangtools.yang.data.impl.codec.AbstractIntegerStringCodec;
 import org.opendaylight.yangtools.yang.data.impl.codec.DecimalStringCodec;
 import org.opendaylight.yangtools.yang.data.util.codec.CodecCache;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.type.InstanceIdentifierTypeDefinition;
 
 final class Lhotka02JSONCodecFactory extends JSONCodecFactory {
     private final JSONInstanceIdentifierCodec iidCodec;
 
-    Lhotka02JSONCodecFactory(final SchemaContext context, final CodecCache<JSONCodec<?>> cache) {
+    Lhotka02JSONCodecFactory(final EffectiveModelContext context, final CodecCache<JSONCodec<?>> cache) {
         super(context, cache);
         iidCodec = new Lhotka02JSONInstanceIdentifierCodec(context, this);
     }
@@ -27,7 +27,8 @@ final class Lhotka02JSONCodecFactory extends JSONCodecFactory {
     }
 
     @Override
-    Lhotka02JSONCodecFactory rebaseTo(final SchemaContext newSchemaContext, final CodecCache<JSONCodec<?>> newCache) {
+    Lhotka02JSONCodecFactory rebaseTo(final EffectiveModelContext newSchemaContext,
+            final CodecCache<JSONCodec<?>> newCache) {
         return new Lhotka02JSONCodecFactory(newSchemaContext, newCache);
     }
 
index 51e7a57977c32371b7f8d051753d87ba68b69ec8..f60fff658eaa592bdcb5ef9cc4674a256bb6f9f8 100644 (file)
@@ -10,13 +10,13 @@ package org.opendaylight.yangtools.yang.data.codec.gson;
 import org.opendaylight.yangtools.yang.data.impl.codec.AbstractIntegerStringCodec;
 import org.opendaylight.yangtools.yang.data.impl.codec.DecimalStringCodec;
 import org.opendaylight.yangtools.yang.data.util.codec.CodecCache;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.type.InstanceIdentifierTypeDefinition;
 
 final class RFC7951JSONCodecFactory extends JSONCodecFactory {
     private final RFC7951JSONInstanceIdentifierCodec iidCodec;
 
-    RFC7951JSONCodecFactory(final SchemaContext context, final CodecCache<JSONCodec<?>> cache) {
+    RFC7951JSONCodecFactory(final EffectiveModelContext context, final CodecCache<JSONCodec<?>> cache) {
         super(context, cache);
         iidCodec = new RFC7951JSONInstanceIdentifierCodec(context, this);
     }
@@ -27,7 +27,7 @@ final class RFC7951JSONCodecFactory extends JSONCodecFactory {
     }
 
     @Override
-    JSONCodecFactory rebaseTo(final SchemaContext newSchemaContext, final CodecCache<JSONCodec<?>> newCache) {
+    JSONCodecFactory rebaseTo(final EffectiveModelContext newSchemaContext, final CodecCache<JSONCodec<?>> newCache) {
         return new RFC7951JSONCodecFactory(newSchemaContext, newCache);
     }
 
index 8e5feb2ffb29fd032211b166637899530da53fd8..faa90b1d7578a07b7081eeaa1f6c044ee840831d 100644 (file)
@@ -31,8 +31,8 @@ import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
 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.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.DecimalTypeDefinition;
@@ -59,7 +59,7 @@ public abstract class AbstractYT1027Test {
             + "  \"yt1027:uint64\": 1\n"
             + "}";
 
-    static SchemaContext SCHEMA_CONTEXT;
+    static EffectiveModelContext SCHEMA_CONTEXT;
     private static DecimalTypeDefinition DECIMAL_TYPE;
     private static Int64TypeDefinition INT64_TYPE;
     private static Uint64TypeDefinition UINT64_TYPE;
index 9cde9b39bda503556a45ba7352ec8eb85535b168..d4b99cc58ea200287ff345f4a45f0af5d14c3d66 100644 (file)
@@ -30,12 +30,12 @@ import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 public class Bug4501Test {
 
-    private static SchemaContext schemaContext;
+    private static EffectiveModelContext schemaContext;
 
     @BeforeClass
     public static void initialization() {
index c1f30b46c6d895b99f8ef302dc07d11151c26a70..f3b4e1f8329f3423247224e3ab1b9730307cd45e 100644 (file)
@@ -27,20 +27,21 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 public class Bug4969Test {
 
     @Test
     public void newParserLeafRefTest() throws IOException, URISyntaxException {
-        SchemaContext context = YangParserTestUtils.parseYangResourceDirectory("/bug-4969/yang");
+        EffectiveModelContext context = YangParserTestUtils.parseYangResourceDirectory("/bug-4969/yang");
         assertNotNull(context);
 
         verifyNormalizedNodeResult(context);
     }
 
-    private static void verifyNormalizedNodeResult(final SchemaContext context) throws IOException, URISyntaxException {
+    private static void verifyNormalizedNodeResult(final EffectiveModelContext context) throws IOException,
+            URISyntaxException {
         final String inputJson = TestUtils.loadTextFile("/bug-4969/json/foo.json");
         final NormalizedNodeResult result = new NormalizedNodeResult();
         final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
@@ -93,13 +94,14 @@ public class Bug4969Test {
 
     @Test
     public void newParserLeafRefTest2() throws URISyntaxException, IOException {
-        SchemaContext context = YangParserTestUtils.parseYangResourceDirectory("/leafref/yang");
+        EffectiveModelContext context = YangParserTestUtils.parseYangResourceDirectory("/leafref/yang");
         assertNotNull(context);
 
         parseJsonToNormalizedNodes(context);
     }
 
-    private static void parseJsonToNormalizedNodes(final SchemaContext context) throws IOException, URISyntaxException {
+    private static void parseJsonToNormalizedNodes(final EffectiveModelContext context) throws IOException,
+            URISyntaxException {
         final String inputJson = TestUtils.loadTextFile("/leafref/json/data.json");
         final NormalizedNodeResult result = new NormalizedNodeResult();
         final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
index 45d50e54c3c884bb209d2d978c00dae22656975d..bae4da98506ffe2f6ce066dde0723957986226d7 100644 (file)
@@ -37,7 +37,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStre
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
@@ -46,7 +46,7 @@ public class Bug5446Test {
     private static final QNameModule FOO_MODULE = QNameModule.create(URI.create("foo"), Revision.of("2015-11-05"));
     private static final QName ROOT_QNAME = QName.create(FOO_MODULE, "root");
     private static final QName IP_ADDRESS_QNAME = QName.create(FOO_MODULE, "ip-address");
-    private static SchemaContext schemaContext;
+    private static EffectiveModelContext schemaContext;
 
     @BeforeClass
     public static void init() {
index 4dd17d3241896399977120445816f05524cb4b4c..b6d159c5a75facd77d78156d98db4a2e84c835bb 100644 (file)
@@ -29,11 +29,11 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 public class Bug6112Test {
-    private static SchemaContext schemaContext;
+    private static EffectiveModelContext schemaContext;
 
     @BeforeClass
     public static void initialization() {
index 86a0057551a892f66654933d4097888afeb3c6ed..a2a413c0efd078859f90268c3268175df776658a 100644 (file)
@@ -27,7 +27,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStre
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
@@ -36,7 +36,8 @@ public class Bug7246Test {
 
     @Test
     public void test() throws Exception {
-        final SchemaContext schemaContext = YangParserTestUtils.parseYangResource("/bug7246/yang/rpc-test.yang");
+        final EffectiveModelContext schemaContext =
+                YangParserTestUtils.parseYangResource("/bug7246/yang/rpc-test.yang");
         final JsonParser parser = new JsonParser();
         final JsonElement expextedJson = parser
                 .parse(new FileReader(new File(getClass().getResource("/bug7246/json/expected-output.json").toURI())));
@@ -57,7 +58,7 @@ public class Bug7246Test {
         return QName.create(NS, localName);
     }
 
-    private static String normalizedNodeToJsonStreamTransformation(final SchemaContext schemaContext,
+    private static String normalizedNodeToJsonStreamTransformation(final EffectiveModelContext schemaContext,
             final SchemaPath path, final Writer writer, final NormalizedNode<?, ?> inputStructure)
             throws IOException {
 
index 9b006ff5e44013088a43162599ed63345e91d9ad..0aa170864df0617c81532d831ca73e04bd58ac2e 100644 (file)
@@ -43,8 +43,8 @@ import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeS
 import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 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.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.InstanceIdentifierTypeDefinition;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
@@ -68,7 +68,7 @@ public class Bug8083Test {
             .node(QName.create(BARMOD, "bar-leaf"))
             .build();
 
-    private static SchemaContext FULL_SCHEMA_CONTEXT;
+    private static EffectiveModelContext FULL_SCHEMA_CONTEXT;
 
     @BeforeClass
     public static void init() {
@@ -114,7 +114,7 @@ public class Bug8083Test {
 
     @Test
     public void testInstanceIdentifierPathWithEmptyListKey() throws IOException, URISyntaxException {
-        final SchemaContext schemaContext = YangParserTestUtils.parseYangResource("/bug8083/yang/baz.yang");
+        final EffectiveModelContext schemaContext = YangParserTestUtils.parseYangResource("/bug8083/yang/baz.yang");
         final String inputJson = loadTextFile("/bug8083/json/baz.json");
 
         // deserialization
@@ -129,7 +129,7 @@ public class Bug8083Test {
 
     @Test
     public void testInstanceIdentifierPathWithIdentityrefListKey() throws IOException, URISyntaxException {
-        final SchemaContext schemaContext = YangParserTestUtils.parseYangResource("/bug8083/yang/zab.yang");
+        final EffectiveModelContext schemaContext = YangParserTestUtils.parseYangResource("/bug8083/yang/zab.yang");
         final String inputJson = loadTextFile("/bug8083/json/zab.json");
 
         // deserialization
@@ -144,7 +144,7 @@ public class Bug8083Test {
 
     @Test
     public void testInstanceIdentifierPathWithInstanceIdentifierListKey() throws IOException, URISyntaxException {
-        final SchemaContext schemaContext = YangParserTestUtils.parseYangResource("/bug8083/yang/foobar.yang");
+        final EffectiveModelContext schemaContext = YangParserTestUtils.parseYangResource("/bug8083/yang/foobar.yang");
         final String inputJson = loadTextFile("/bug8083/json/foobar.json");
 
         // deserialization
index 933ac541f087850b12ea04f0dfd7c2a820c72bbe..2a9fdcb72fb3c5b8663692b64a8bd10115151a85 100644 (file)
@@ -31,7 +31,6 @@ import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 
 public final class TestUtils {
@@ -64,8 +63,8 @@ public final class TestUtils {
         xmlParser.parse(reader);
     }
 
-    static String normalizedNodesToJsonString(final NormalizedNode<?, ?> data, final SchemaContext schemaContext,
-            final SchemaPath rootPath) throws IOException {
+    static String normalizedNodesToJsonString(final NormalizedNode<?, ?> data,
+            final EffectiveModelContext schemaContext, final SchemaPath rootPath) throws IOException {
         final Writer writer = new StringWriter();
         final NormalizedNodeStreamWriter jsonStream = JSONNormalizedNodeStreamWriter.createExclusiveWriter(
                 JSONCodecFactorySupplier.DRAFT_LHOTKA_NETMOD_YANG_JSON_02.getShared(schemaContext), rootPath, null,
index b33abbadb9cc18abf73a08554fdcfa1dfa7adbc3..f66f6e312ab0f4c184cb6e482c886eae15e72c9e 100644 (file)
@@ -36,7 +36,7 @@ final class DOMSourceMountPointChild extends AbstractMountPointChild {
 
         final XmlParserStream xmlParser;
         try {
-            xmlParser = XmlParserStream.create(writer, mountCtx, mountCtx.getSchemaContext());
+            xmlParser = XmlParserStream.create(writer, mountCtx, mountCtx.getEffectiveModelContext());
         } catch (IllegalArgumentException e) {
             throw new IOException("Failed to instantiate XML parser", e);
         }
index aa98d9a86fb0b00f0cf0887852a86817feef5e7c..c63009f8f9f78e5097e6c3e100e5f258ac4df0be 100644 (file)
@@ -53,7 +53,7 @@ public final class XmlCodecFactory extends AbstractCodecFactory<XmlCodec<?>> {
     private final MountPointContext mountCtx;
 
     private XmlCodecFactory(final MountPointContext mountCtx) {
-        super(mountCtx.getSchemaContext(), new SharedCodecCache<>());
+        super(mountCtx.getEffectiveModelContext(), new SharedCodecCache<>());
         this.mountCtx = requireNonNull(mountCtx);
     }
 
@@ -108,12 +108,12 @@ public final class XmlCodecFactory extends AbstractCodecFactory<XmlCodec<?>> {
 
     @Override
     protected XmlCodec<?> identityRefCodec(final IdentityrefTypeDefinition type, final QNameModule module) {
-        return new IdentityrefXmlCodec(getSchemaContext(), module);
+        return new IdentityrefXmlCodec(getEffectiveModelContext(), module);
     }
 
     @Override
     protected XmlCodec<?> instanceIdentifierCodec(final InstanceIdentifierTypeDefinition type) {
-        return new XmlStringInstanceIdentifierCodec(getSchemaContext(), this);
+        return new XmlStringInstanceIdentifierCodec(getEffectiveModelContext(), this);
     }
 
     @Override
index cc885d1982b05c67cd39ed385e37530283890862..c97b6575653709ce1b87b8d3d23d4b03659dadca 100644 (file)
@@ -324,7 +324,7 @@ public final class XmlParserStream implements Closeable, Flushable {
             if (optModule.isPresent()) {
                 final QName qname = QName.create(optModule.get(), localName);
                 final Optional<AnnotationSchemaNode> optAnnotation = AnnotationSchemaNode.find(
-                    codecs.getSchemaContext(), qname);
+                    codecs.getEffectiveModelContext(), qname);
                 if (optAnnotation.isPresent()) {
                     final AnnotationSchemaNode schema = optAnnotation.get();
                     final Object value = codecs.codecFor(schema).parseValue(in.getNamespaceContext(), attrValue);
@@ -660,7 +660,8 @@ public final class XmlParserStream implements Closeable, Flushable {
 
     private Optional<QNameModule> resolveXmlNamespace(final String xmlNamespace) {
         return resolvedNamespaces.computeIfAbsent(xmlNamespace, nsUri -> {
-            final Iterator<? extends Module> it = codecs.getSchemaContext().findModules(URI.create(nsUri)).iterator();
+            final Iterator<? extends Module> it = codecs.getEffectiveModelContext().findModules(URI.create(nsUri))
+                    .iterator();
             return it.hasNext() ? Optional.of(it.next().getQNameModule()) : Optional.empty();
         });
     }
index ce18ef220f543fcc74f6923e84cfc1e6dce0d96e..126a3343ce38f8e9a74e43fd6946a69493f26d99 100644 (file)
@@ -22,9 +22,9 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.util.AbstractModuleStringInstanceIdentifierCodec;
 import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
 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.SchemaContext;
 
 final class XmlStringInstanceIdentifierCodec extends AbstractModuleStringInstanceIdentifierCodec
         implements XmlCodec<YangInstanceIdentifier> {
@@ -33,9 +33,9 @@ final class XmlStringInstanceIdentifierCodec extends AbstractModuleStringInstanc
 
     private final @NonNull DataSchemaContextTree dataContextTree;
     private final @NonNull XmlCodecFactory codecFactory;
-    private final @NonNull SchemaContext context;
+    private final @NonNull EffectiveModelContext context;
 
-    XmlStringInstanceIdentifierCodec(final SchemaContext context, final XmlCodecFactory xmlCodecFactory) {
+    XmlStringInstanceIdentifierCodec(final EffectiveModelContext context, final XmlCodecFactory xmlCodecFactory) {
         this.context = requireNonNull(context);
         this.dataContextTree = DataSchemaContextTree.from(context);
         this.codecFactory = requireNonNull(xmlCodecFactory);
index 5168ea9f9b7031e15cdf55551f452e07e545e840..049a3ae957551be5bcc2442d296228cbdb1e2c59 100644 (file)
@@ -16,16 +16,16 @@ import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedAnydata;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
-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;
 
 @Beta
 @NonNullByDefault
-public class ImmutableNormalizedAnydata extends AbstractSchemaContextProvider implements NormalizedAnydata {
+public class ImmutableNormalizedAnydata extends AbstractEffectiveModelContextProvider implements NormalizedAnydata {
     private final DataSchemaNode contextNode;
     private final NormalizedNode<?, ?> data;
 
-    public ImmutableNormalizedAnydata(final SchemaContext schemaContext, final DataSchemaNode contextNode,
+    public ImmutableNormalizedAnydata(final EffectiveModelContext schemaContext, final DataSchemaNode contextNode,
             final NormalizedNode<?, ?> data) {
         super(schemaContext);
         this.contextNode = requireNonNull(contextNode);
index b8327594143d1849195271832884f925d82e8814..7304968de50b83350cadea8daa8cf5797d40c86e 100644 (file)
@@ -14,7 +14,7 @@ import java.util.ArrayList;
 import java.util.List;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QNameModule;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
 import org.opendaylight.yangtools.yang.model.api.TypeAware;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
@@ -38,7 +38,7 @@ import org.opendaylight.yangtools.yang.model.api.type.Uint64TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.Uint8TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.UnknownTypeDefinition;
-import org.opendaylight.yangtools.yang.model.util.AbstractSchemaContextProvider;
+import org.opendaylight.yangtools.yang.model.util.AbstractEffectiveModelContextProvider;
 import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -51,12 +51,14 @@ import org.slf4j.LoggerFactory;
  * @param <T> Codec type
  * @author Robert Varga
  */
-public abstract class AbstractCodecFactory<T extends TypeAwareCodec<?, ?, ?>> extends AbstractSchemaContextProvider {
+public abstract class AbstractCodecFactory<T extends TypeAwareCodec<?, ?, ?>>
+        extends AbstractEffectiveModelContextProvider {
     private static final Logger LOG = LoggerFactory.getLogger(AbstractCodecFactory.class);
 
     private final @NonNull CodecCache<T> cache;
 
-    protected AbstractCodecFactory(final @NonNull SchemaContext schemaContext, final @NonNull CodecCache<T> cache) {
+    protected AbstractCodecFactory(final @NonNull EffectiveModelContext schemaContext,
+            final @NonNull CodecCache<T> cache) {
         super(schemaContext);
         this.cache = requireNonNull(cache);
     }
@@ -211,7 +213,7 @@ public abstract class AbstractCodecFactory<T extends TypeAwareCodec<?, ?, ?>> ex
             return createComplexUnion(schema, (UnionTypeDefinition) type);
         } else if (type instanceof LeafrefTypeDefinition) {
             final TypeDefinition<?> target = SchemaContextUtil.getBaseTypeForLeafRef((LeafrefTypeDefinition) type,
-                getSchemaContext(), schema);
+                getEffectiveModelContext(), schema);
             verifyNotNull(target, "Unable to find base type for leafref node %s type %s.", schema, target);
 
             final T ret = getSimpleCodecFor(target);