Added Codec concepts to the binding,
authorTony Tkacik <ttkacik@cisco.com>
Wed, 13 Nov 2013 14:17:38 +0000 (15:17 +0100)
committerTony Tkacik <ttkacik@cisco.com>
Wed, 13 Nov 2013 16:09:32 +0000 (17:09 +0100)
QNAME helper, data-dom also accessible as Map<QName,Object>

Change-Id: I37ceef6e6c7a29293e1c4c557c52df852c65b90f
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/BindingGeneratorImpl.xtend
yang/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/BindingCodec.java [new file with mode: 0644]
yang/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/BindingDeserializer.java [new file with mode: 0644]
yang/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/BindingSerializer.java [new file with mode: 0644]

index 357aad0490ddab76e7e66c40fad322f4fb5e51d5..a2836e2041c860c338d3e78b939fb996504842b2 100644 (file)
@@ -75,7 +75,8 @@ import org.opendaylight.yangtools.binding.generator.util.BindingGeneratorUtil
 import org.opendaylight.yangtools.sal.binding.model.api.Restrictions
 import org.opendaylight.yangtools.sal.binding.model.api.type.builder.GeneratedPropertyBuilder
 import org.opendaylight.yangtools.binding.generator.util.generated.type.builder.GeneratedPropertyBuilderImpl
-
+import org.opendaylight.yangtools.yang.common.QName\r
+\r
 public class BindingGeneratorImpl implements BindingGenerator {
 
     private final Map<Module, ModuleContext> genCtx = new HashMap()
@@ -1517,9 +1518,9 @@ public class BindingGeneratorImpl implements BindingGenerator {
         Type parent) {
         val it = addRawInterfaceDefinition(packageName, schemaNode, "");\r
         val qname = schemaNode.QName;
-        //addConstant(QName.typeForClass,"QNAME",'''\r
-        //    org.opendaylight.yangtools.yang.common.QName.create("«qname.namespace»","«qname.formattedRevision»","«qname.localName»");\r
-        //''')\r
+        addConstant(QName.typeForClass,"QNAME",'''\r
+            org.opendaylight.yangtools.yang.common.QName.create("«qname.namespace»","«qname.formattedRevision»","«qname.localName»")\r
+        ''');\r
         if (parent === null) {
             addImplementsType(DATA_OBJECT);
         } else {
diff --git a/yang/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/BindingCodec.java b/yang/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/BindingCodec.java
new file mode 100644 (file)
index 0000000..f8bb91b
--- /dev/null
@@ -0,0 +1,10 @@
+package org.opendaylight.yangtools.yang.binding;
+
+public interface BindingCodec<P,I>  extends BindingSerializer<P, I>, BindingDeserializer<I, P> {
+
+    @Override
+    public P serialize(I input);
+    
+    @Override
+    public I deserialize(P input);
+}
diff --git a/yang/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/BindingDeserializer.java b/yang/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/BindingDeserializer.java
new file mode 100644 (file)
index 0000000..cc97a95
--- /dev/null
@@ -0,0 +1,6 @@
+package org.opendaylight.yangtools.yang.binding;
+
+public interface BindingDeserializer<P,I> {
+
+    P deserialize(I input);
+}
diff --git a/yang/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/BindingSerializer.java b/yang/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/BindingSerializer.java
new file mode 100644 (file)
index 0000000..a0e355b
--- /dev/null
@@ -0,0 +1,5 @@
+package org.opendaylight.yangtools.yang.binding;
+
+public interface BindingSerializer<P,I> {
+    P serialize(I input);
+}