Phosphorus migration
[transportpce.git] / pce / src / test / java / org / opendaylight / transportpce / pce / utils / JsonUtil.java
index b97d105eba5088b899f76870b88d53ad3dc3fbee..0c54e6316b0694fbb668033b1f5a3a5796306126 100644 (file)
@@ -12,9 +12,10 @@ import java.io.IOException;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.ServiceLoader;
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext;
+import org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext;
+import org.opendaylight.mdsal.binding.dom.codec.spi.BindingDOMCodecServices;
+import org.opendaylight.mdsal.binding.runtime.api.BindingRuntimeContext;
+import org.opendaylight.mdsal.binding.runtime.spi.BindingRuntimeHelpers;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.YangModelBindingProvider;
 import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
@@ -25,7 +26,7 @@ import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactorySupplier;
 import org.opendaylight.yangtools.yang.data.codec.gson.JsonParserStream;
 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.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -35,9 +36,8 @@ public final class JsonUtil {
     private static final Logger LOG = LoggerFactory.getLogger(JsonUtil.class);
     private static JsonUtil instance;
 
-    private SchemaContext schemaCtx;
-
-    private BindingNormalizedNodeCodecRegistry codecRegistry;
+    private EffectiveModelContext schemaCtx;
+    private BindingDOMCodecServices bindingDOMCodecServices;
 
     private JsonUtil() {
         List<YangModuleInfo> moduleInfos = new LinkedList<>();
@@ -46,15 +46,9 @@ public final class JsonUtil {
             moduleInfos.add(yangModelBindingProvider.getModuleInfo());
         }
         /* Create the schema context for loaded models */
-        ModuleInfoBackedContext moduleInfoBackedCntxt = ModuleInfoBackedContext.create();
-        moduleInfoBackedCntxt.addModuleInfos(moduleInfos);
-        schemaCtx = moduleInfoBackedCntxt.getSchemaContext();
-        if (schemaCtx == null) {
-            throw new IllegalStateException("Failed to load schema context");
-        }
-        // Create the binding binding normalized node codec registry
-        BindingRuntimeContext bindingRuntimeContext = BindingRuntimeContext.create(moduleInfoBackedCntxt, schemaCtx);
-        codecRegistry = new BindingNormalizedNodeCodecRegistry(bindingRuntimeContext);
+        this.schemaCtx = BindingRuntimeHelpers.createEffectiveModel(moduleInfos);
+        BindingRuntimeContext bindingContext = BindingRuntimeHelpers.createRuntimeContext();
+        bindingDOMCodecServices = new BindingCodecContext(bindingContext);
     }
 
     public static JsonUtil getInstance() {
@@ -68,11 +62,11 @@ public final class JsonUtil {
         NormalizedNodeResult result = new NormalizedNodeResult();
         try (NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
                 JsonParserStream jsonParser = JsonParserStream.create(streamWriter,
-                        JSONCodecFactorySupplier.RFC7951.getShared(schemaCtx), schemaCtx);) {
+                    JSONCodecFactorySupplier.RFC7951.getShared(schemaCtx));) {
             jsonParser.parse(reader);
             YangInstanceIdentifier yangId = YangInstanceIdentifier.of(pathQname);
-            if (codecRegistry.fromNormalizedNode(yangId, result.getResult()) != null) {
-                return codecRegistry.fromNormalizedNode(yangId, result.getResult()).getValue();
+            if (bindingDOMCodecServices.fromNormalizedNode(yangId, result.getResult()) != null) {
+                return bindingDOMCodecServices.fromNormalizedNode(yangId, result.getResult()).getValue();
             } else {
                 return null;
             }
@@ -82,4 +76,8 @@ public final class JsonUtil {
         }
 
     }
+
+    public BindingDOMCodecServices getBindingDOMCodecServices() {
+        return bindingDOMCodecServices;
+    }
 }