Make MutableCompositeNodeTOImpl Serializable so that it can be marshalled by Infinispan 54/4754/1
authorMoiz Raja <moraja@cisco.com>
Sat, 25 Jan 2014 02:01:45 +0000 (18:01 -0800)
committerMoiz Raja <moraja@cisco.com>
Sat, 25 Jan 2014 02:01:45 +0000 (18:01 -0800)
Change-Id: I492a336314ebf5c6b98a7ac86b092d314363fac1
Signed-off-by: Moiz Raja <moraja@cisco.com>
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/MutableCompositeNodeTOImpl.java

index 6c29fca336daa2cba843c4a145deddc4cb7c4902..975c2a9795d0ba40c263614ef14b1795e987bfbd 100644 (file)
@@ -7,6 +7,17 @@
  */\r
 package org.opendaylight.yangtools.yang.data.impl;\r
 \r
+import org.opendaylight.yangtools.yang.common.QName;\r
+import org.opendaylight.yangtools.yang.data.api.CompositeNode;\r
+import org.opendaylight.yangtools.yang.data.api.ModifyAction;\r
+import org.opendaylight.yangtools.yang.data.api.MutableCompositeNode;\r
+import org.opendaylight.yangtools.yang.data.api.Node;\r
+import org.opendaylight.yangtools.yang.data.api.SimpleNode;\r
+\r
+import java.io.IOException;\r
+import java.io.ObjectInputStream;\r
+import java.io.ObjectOutputStream;\r
+import java.io.Serializable;\r
 import java.util.ArrayList;\r
 import java.util.Collection;\r
 import java.util.Collections;\r
@@ -15,18 +26,13 @@ import java.util.List;
 import java.util.Map;\r
 import java.util.Set;\r
 \r
-import org.opendaylight.yangtools.yang.common.QName;\r
-import org.opendaylight.yangtools.yang.data.api.CompositeNode;\r
-import org.opendaylight.yangtools.yang.data.api.ModifyAction;\r
-import org.opendaylight.yangtools.yang.data.api.MutableCompositeNode;\r
-import org.opendaylight.yangtools.yang.data.api.Node;\r
-import org.opendaylight.yangtools.yang.data.api.SimpleNode;\r
-\r
 /**\r
  * @author michal.rehak\r
  * \r
  */\r
-public class MutableCompositeNodeTOImpl extends AbstractNodeTO<List<Node<?>>> implements MutableCompositeNode {\r
+public class MutableCompositeNodeTOImpl extends AbstractNodeTO<List<Node<?>>> implements MutableCompositeNode, Serializable {\r
+\r
+    private static final long serialVersionUID = 100L;\r
 \r
     private Map<QName, List<Node<?>>> nodeMap = new HashMap<>();\r
     private CompositeNode original;\r
@@ -225,4 +231,25 @@ public class MutableCompositeNodeTOImpl extends AbstractNodeTO<List<Node<?>>> im
     public Collection<List<Node<?>>> values() {\r
         return nodeMap.values();\r
     }\r
+\r
+  // Serialization related\r
+\r
+    private void readObject(ObjectInputStream aStream) throws IOException, ClassNotFoundException {\r
+        aStream.defaultReadObject();\r
+        QName qName = (QName)aStream.readObject();\r
+        CompositeNode parent = (CompositeNode) aStream.readObject();\r
+        List<Node<?>> value = (List<Node<?>>) aStream.readObject();\r
+        ModifyAction modifyAction = (ModifyAction) aStream.readObject();\r
+\r
+        init(qName, parent, value, modifyAction);\r
+    }\r
+\r
+    private void writeObject(ObjectOutputStream aStream) throws IOException {\r
+        aStream.defaultWriteObject();\r
+        //manually serialize superclass\r
+        aStream.writeObject(getQName());\r
+        aStream.writeObject(getParent());\r
+        aStream.writeObject(getValue());\r
+        aStream.writeObject(getModificationAction());\r
+    }\r
 }\r