Merge "BUG 2412 - restconf @GET getModule(identifier,uri) method migration"
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / messages / ModifyData.java
index da8608876e4d7b53a2113e6140b9e8bb26bf22e9..bbd090f9291ccde682b33a46e748e6f618352754 100644 (file)
@@ -8,24 +8,58 @@
 
 package org.opendaylight.controller.cluster.datastore.messages;
 
-import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import org.opendaylight.controller.cluster.datastore.utils.SerializationUtils;
+import org.opendaylight.controller.cluster.datastore.utils.SerializationUtils.Applier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 
-public abstract class ModifyData {
-  private final InstanceIdentifier path;
-  private final NormalizedNode<?,?> data;
+/**
+ * @deprecated Replaced by BatchedModifications.
+ */
+@Deprecated
+public abstract class ModifyData extends VersionedExternalizableMessage {
+    private static final long serialVersionUID = 1L;
+
+    private YangInstanceIdentifier path;
+    private NormalizedNode<?, ?> data;
+
+    protected ModifyData() {
+    }
+
+    protected ModifyData(YangInstanceIdentifier path, NormalizedNode<?, ?> data, short version) {
+        super(version);
+        this.path = path;
+        this.data = data;
+    }
+
+    public YangInstanceIdentifier getPath() {
+        return path;
+    }
 
-  public ModifyData(InstanceIdentifier path, NormalizedNode<?, ?> data) {
-    this.path = path;
-    this.data = data;
-  }
+    public NormalizedNode<?, ?> getData() {
+        return data;
+    }
 
-  public InstanceIdentifier getPath() {
-    return path;
-  }
+    @Override
+    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+        SerializationUtils.deserializePathAndNode(in, this, APPLIER);
+    }
 
-  public NormalizedNode<?, ?> getData() {
-    return data;
-  }
+    @Override
+    public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+        SerializationUtils.serializePathAndNode(path, data, out);
+    }
 
+    private static final Applier<ModifyData> APPLIER = new Applier<ModifyData>() {
+        @Override
+        public void apply(ModifyData instance, YangInstanceIdentifier path, NormalizedNode<?, ?> data) {
+            instance.path = path;
+            instance.data = data;
+        }
+    };
 }