Remove EffectiveModelContext{Listener,Provider}
[yangtools.git] / data / yang-data-util / src / main / java / org / opendaylight / yangtools / yang / data / util / codec / AbstractCodecFactory.java
index adba8a8d63c04cfee860261199a1306248acda60..54bc7f89a6e1cd858e015cd819d7e67d298dc291 100644 (file)
@@ -39,7 +39,6 @@ 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.spi.AbstractEffectiveModelContextProvider;
 import org.opendaylight.yangtools.yang.model.util.LeafrefResolver;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -51,15 +50,15 @@ import org.slf4j.LoggerFactory;
  *
  * @param <T> Codec type
  */
-public abstract class AbstractCodecFactory<T extends TypeAwareCodec<?, ?, ?>>
-        extends AbstractEffectiveModelContextProvider {
+public abstract class AbstractCodecFactory<T extends TypeAwareCodec<?, ?, ?>> {
     private static final Logger LOG = LoggerFactory.getLogger(AbstractCodecFactory.class);
 
+    private final @NonNull EffectiveModelContext modelContext;
     private final @NonNull CodecCache<T> cache;
 
-    protected AbstractCodecFactory(final @NonNull EffectiveModelContext schemaContext,
+    protected AbstractCodecFactory(final @NonNull EffectiveModelContext modelContext,
             final @NonNull CodecCache<T> cache) {
-        super(schemaContext);
+        this.modelContext = requireNonNull(modelContext);
         this.cache = requireNonNull(cache);
     }
 
@@ -102,6 +101,15 @@ public abstract class AbstractCodecFactory<T extends TypeAwareCodec<?, ?, ?>>
         return cache.getComplex(schema, ret);
     }
 
+    /**
+     * Return the {@link EffectiveModelContext} backing this factory.
+     *
+     * @return the {@link EffectiveModelContext} backing this factory
+     */
+    public final @NonNull EffectiveModelContext modelContext() {
+        return modelContext;
+    }
+
     protected abstract T binaryCodec(BinaryTypeDefinition type);
 
     protected abstract T booleanCodec(BooleanTypeDefinition type);