X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fmessages%2FModifyData.java;h=69c41c2a5663f5021a7a22401aef48ca9b3986d2;hb=365c9751fb9b8b5464e2576c417e97be64732def;hp=da8608876e4d7b53a2113e6140b9e8bb26bf22e9;hpb=daa1d3344b3394accd85152b6f0a2fcda8491759;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ModifyData.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ModifyData.java index da8608876e..69c41c2a56 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ModifyData.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ModifyData.java @@ -8,24 +8,63 @@ package org.opendaylight.controller.cluster.datastore.messages; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; +import java.io.Externalizable; +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; +public abstract class ModifyData implements Externalizable { + private static final long serialVersionUID = 1L; - public ModifyData(InstanceIdentifier path, NormalizedNode data) { - this.path = path; - this.data = data; - } + private YangInstanceIdentifier path; + private NormalizedNode data; + private short version; - public InstanceIdentifier getPath() { - return path; - } + protected ModifyData() { + } - public NormalizedNode getData() { - return data; - } + protected ModifyData(YangInstanceIdentifier path, NormalizedNode data) { + this.path = path; + this.data = data; + } + public YangInstanceIdentifier getPath() { + return path; + } + + public NormalizedNode getData() { + return data; + } + + public short getVersion() { + return version; + } + + protected void setVersion(short version) { + this.version = version; + } + + @Override + public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { + version = in.readShort(); + SerializationUtils.deserializePathAndNode(in, this, APPLIER); + } + + @Override + public void writeExternal(ObjectOutput out) throws IOException { + out.writeShort(version); + SerializationUtils.serializePathAndNode(path, data, out); + } + + private static final Applier APPLIER = new Applier() { + @Override + public void apply(ModifyData instance, YangInstanceIdentifier path, NormalizedNode data) { + instance.path = path; + instance.data = data; + } + }; }