diff options
Diffstat (limited to 'common/src/main/java/org/openecomp/mso/yangDecoder/transform/impl/TransformJava2JsonFactory.java')
-rw-r--r-- | common/src/main/java/org/openecomp/mso/yangDecoder/transform/impl/TransformJava2JsonFactory.java | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/common/src/main/java/org/openecomp/mso/yangDecoder/transform/impl/TransformJava2JsonFactory.java b/common/src/main/java/org/openecomp/mso/yangDecoder/transform/impl/TransformJava2JsonFactory.java new file mode 100644 index 0000000000..647b3038bb --- /dev/null +++ b/common/src/main/java/org/openecomp/mso/yangDecoder/transform/impl/TransformJava2JsonFactory.java @@ -0,0 +1,63 @@ +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 TransformJava2JsonFactory extends TYangJsonXmlBase { + BindingToNormalizedNodeCodec mappingservice; + ModuleInfoBackedContext moduleInfoBackedContext; + protected final static ControllerContext controllerContext = ControllerContext.getInstance(); + + public TransformJava2JsonServiceImpl getJava2jsonService() { + if (java2jsonService == null) { + try { + setup2(); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + return java2jsonService; + } + + TransformJava2JsonServiceImpl java2jsonService; + + @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(java2jsonService==null) + java2jsonService = new TransformJava2JsonServiceImpl(mappingservice, schemaContext); + } +} |