aboutsummaryrefslogtreecommitdiffstats
path: root/common/src/main/java/org/openecomp/mso/yangDecoder/transform/impl/YangDataTransformJava2NNServiceImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'common/src/main/java/org/openecomp/mso/yangDecoder/transform/impl/YangDataTransformJava2NNServiceImpl.java')
-rw-r--r--common/src/main/java/org/openecomp/mso/yangDecoder/transform/impl/YangDataTransformJava2NNServiceImpl.java144
1 files changed, 144 insertions, 0 deletions
diff --git a/common/src/main/java/org/openecomp/mso/yangDecoder/transform/impl/YangDataTransformJava2NNServiceImpl.java b/common/src/main/java/org/openecomp/mso/yangDecoder/transform/impl/YangDataTransformJava2NNServiceImpl.java
new file mode 100644
index 0000000000..ba82aa5539
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/yangDecoder/transform/impl/YangDataTransformJava2NNServiceImpl.java
@@ -0,0 +1,144 @@
+package org.openecomp.mso.yangDecoder.transform.impl;
+
+//import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
+
+import org.opendaylight.netconf.sal.restconf.impl.ControllerContext;
+import org.opendaylight.netconf.sal.restconf.impl.InstanceIdentifierContext;
+import org.opendaylight.netconf.sal.restconf.impl.NormalizedNodeContext;
+import org.opendaylight.netconf.sal.restconf.impl.WriterParameters;
+import org.opendaylight.yangtools.binding.data.codec.api.BindingNormalizedNodeSerializer;
+import org.opendaylight.yangtools.yang.binding.DataContainer;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.model.api.*;
+
+import java.util.Map;
+
+/**
+ * Created by Administrator on 2017/3/17.
+ */
+public class YangDataTransformJava2NNServiceImpl {
+ BindingNormalizedNodeSerializer mappingService;
+ public YangDataTransformJava2NNServiceImpl(BindingNormalizedNodeSerializer mappingService)
+ {
+ this.mappingService=mappingService;
+ }
+ public <T extends DataObject> NormalizedNodeContext yangDataObjecttoNNC(InstanceIdentifier<T> identifier, String uri, T dobj)
+ {
+ final InstanceIdentifierContext<?> iiContext = ControllerContext.getInstance().toInstanceIdentifier(uri);
+ Map.Entry<YangInstanceIdentifier, NormalizedNode<?, ?>> temp = mappingService.toNormalizedNode(identifier, dobj);
+ WriterParameters.WriterParametersBuilder aa=new WriterParameters.WriterParametersBuilder();
+ aa.setPrettyPrint(true);
+ return new NormalizedNodeContext( iiContext, temp.getValue() ,aa.build());
+ }
+ public <T extends DataObject> NormalizedNode yangDataObjecttoNN( InstanceIdentifier<T> identifier,T dobj) {
+ Map.Entry<YangInstanceIdentifier, NormalizedNode<?, ?>> temp = mappingService.toNormalizedNode(identifier, dobj);
+ if (null == temp) {
+ return null;
+ } else {
+ return temp.getValue();
+ }
+ }
+ public NormalizedNodeContext yangNNtoNNC(NormalizedNode nn, String uri){
+ final InstanceIdentifierContext<?> iiContext = ControllerContext.getInstance().toInstanceIdentifier(uri);
+ WriterParameters.WriterParametersBuilder aa=new WriterParameters.WriterParametersBuilder();
+ aa.setPrettyPrint(true);
+ return new NormalizedNodeContext(iiContext, nn,aa.build());
+ }
+ public <T extends DataObject> T yangDataObjectfromNN(YangInstanceIdentifier identifier,NormalizedNode node) {
+ Map.Entry<InstanceIdentifier<?>, DataObject> temp = mappingService.fromNormalizedNode(identifier, node);
+ if (null == temp) {
+ return null;
+ } else {
+ return (T) temp.getValue();
+ }
+ }
+ public <T extends DataObject> T yangDataObjectfromNNC(NormalizedNodeContext nnc)
+ {
+ return yangDataObjectfromNN(nnc.getInstanceIdentifierContext().getInstanceIdentifier(),nnc.getData());
+ }
+ public ContainerNode yangRpcDatatoNN(final DataContainer rpcdata){
+ return mappingService.toNormalizedNodeRpcData(rpcdata);
+ }
+ public DataObject yangRpcDatafromNN(SchemaPath path, final ContainerNode data)
+ {
+ return mappingService.fromNormalizedNodeRpcData(path,data);
+ }
+ public static DataSchemaNode findDataSchemaNode(String uriPath,String inputoroutput)
+ {
+ final InstanceIdentifierContext<?> iicontext = ControllerContext.getInstance().toInstanceIdentifier(uriPath);
+ DataSchemaNode dsn=JsonParserStream.getWrapSchemaNode( iicontext.getSchemaNode());
+ return dsn;
+ }
+ public static SchemaNode findSchemaNode(final InstanceIdentifierContext<?> iicontext ,String inputoroutput)
+ {
+ SchemaNode schemaNode;
+
+ final SchemaNode schemaNode0 = iicontext.getSchemaNode();
+ if (schemaNode0 instanceof RpcDefinition) {
+ if (inputoroutput.contains("output")) {
+ schemaNode = ((RpcDefinition) schemaNode0).getOutput();
+ } else {
+ schemaNode = ((RpcDefinition) schemaNode0).getInput();
+ }
+
+ } else if(schemaNode0 instanceof NotificationDefinition)
+ {
+ schemaNode=schemaNode0;
+ }
+ else if (schemaNode0 instanceof DataSchemaNode) {
+ schemaNode = schemaNode0;
+ } else {
+ throw new IllegalStateException("Unknow SchemaNode");
+ }
+ return schemaNode;
+ }
+
+ public static DataSchemaNode findRpcSchemaNode(final InstanceIdentifierContext<?> iicontext,String inputoroutput)
+ {
+ DataSchemaNode schemaNode;
+ final SchemaNode schemaNode0 = iicontext.getSchemaNode();
+ boolean isInput = false;
+ if (schemaNode0 instanceof RpcDefinition) {
+ if (inputoroutput.contains("output")) {
+ schemaNode = ((RpcDefinition) schemaNode0).getOutput();
+ isInput = false;
+ } else {
+ schemaNode = ((RpcDefinition) schemaNode0).getInput();
+ isInput = true;
+ }
+
+ } else if (schemaNode0 instanceof DataSchemaNode) {
+ schemaNode = (DataSchemaNode) schemaNode0;
+ } else {
+ throw new IllegalStateException("Unknow SchemaNode");
+ }
+ return schemaNode;
+ }
+ public DataObject yangRpcDatafromNN(final InstanceIdentifierContext<?> iicontext , final NormalizedNode data) {
+ // final InstanceIdentifierContext<?> iicontext = ControllerContext.getInstance().toInstanceIdentifier(uriPath);
+ ContainerNode contn= (ContainerNode)data;
+ DataSchemaNode schemaNode= findRpcSchemaNode(iicontext,contn.getNodeType().getLocalName());;
+ /* final SchemaNode schemaNode0 = iicontext.getSchemaNode();
+ boolean isInput = false;
+ if (schemaNode0 instanceof RpcDefinition) {
+ if (contn.getNodeType().getLocalName().contains("output")) {
+ schemaNode = ((RpcDefinition) schemaNode0).getOutput();
+ isInput = false;
+ } else {
+ schemaNode = ((RpcDefinition) schemaNode0).getInput();
+ isInput = true;
+ }
+
+ } else if (schemaNode0 instanceof DataSchemaNode) {
+ schemaNode = (DataSchemaNode) schemaNode0;
+ } else {
+ throw new IllegalStateException("Unknow SchemaNode");
+ }*/
+ SchemaPath path=schemaNode.getPath();
+ return mappingService.fromNormalizedNodeRpcData(path,contn);
+ }
+}