summaryrefslogtreecommitdiffstats
path: root/common/src/main/java/org/openecomp/mso/yangDecoder/transform/impl/TransformJava2XMLFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'common/src/main/java/org/openecomp/mso/yangDecoder/transform/impl/TransformJava2XMLFactory.java')
-rw-r--r--common/src/main/java/org/openecomp/mso/yangDecoder/transform/impl/TransformJava2XMLFactory.java64
1 files changed, 64 insertions, 0 deletions
diff --git a/common/src/main/java/org/openecomp/mso/yangDecoder/transform/impl/TransformJava2XMLFactory.java b/common/src/main/java/org/openecomp/mso/yangDecoder/transform/impl/TransformJava2XMLFactory.java
new file mode 100644
index 0000000000..5e5511b5e7
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/yangDecoder/transform/impl/TransformJava2XMLFactory.java
@@ -0,0 +1,64 @@
+package org.openecomp.mso.yangDecoder.transform.impl;
+
+import javassist.ClassPool;
+import org.openecomp.mso.yangDecoder.base.TYangJsonXmlBase;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
+import org.opendaylight.netconf.sal.restconf.impl.ControllerContext;
+import org.opendaylight.yangtools.binding.data.codec.gen.impl.StreamWriterGenerator;
+import org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry;
+import org.opendaylight.mdsal.binding.generator.impl.GeneratedClassLoadingStrategy;
+import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
+import org.opendaylight.mdsal.binding.generator.util.JavassistUtils;
+import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
+
+/**
+ * Created by 10112215 on 2017/3/26.
+ */
+public class TransformJava2XMLFactory extends TYangJsonXmlBase {
+ BindingToNormalizedNodeCodec mappingservice;
+ ModuleInfoBackedContext moduleInfoBackedContext;
+ protected final static ControllerContext controllerContext = ControllerContext.getInstance();
+
+ public TransformJava2XMLServiceImpl getJava2xmlService() {
+ if (java2xmlService == null) {
+ try {
+ setup2();
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+ return java2xmlService;
+ }
+
+ TransformJava2XMLServiceImpl java2xmlService;
+
+ @Override
+ protected void setupWithDataBroker(final DataBroker dataBroker) {
+ // Intentionally left No-op, subclasses may customize it
+ mappingservice = new BindingToNormalizedNodeCodec(GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy(),
+ new BindingNormalizedNodeCodecRegistry(StreamWriterGenerator.create(JavassistUtils.forClassPool(ClassPool.getDefault()))));
+ moduleInfoBackedContext = ModuleInfoBackedContext.create();
+ // moduleInfoBackedContext.registerModuleInfo(BindingReflections.getModuleInfo(SncTunnels.class));
+ try {
+ for (YangModuleInfo yangModuleInfo : getModuleInfos()) {
+ moduleInfoBackedContext.registerModuleInfo(yangModuleInfo);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ schemaContext = moduleInfoBackedContext.tryToCreateSchemaContext().get();
+ mappingservice.onGlobalContextUpdated(schemaContext);
+ controllerContext.setSchemas(schemaContext);
+
+ }
+
+ public final void setup2() throws Exception {
+ super.setup();
+ if(java2xmlService==null)
+ java2xmlService = new TransformJava2XMLServiceImpl(mappingservice, schemaContext);
+ }
+
+
+}