X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fmessages%2FAbstractRead.java;h=e73b5af7cdecdf7a311c9a36f36bb975f19d17a3;hp=c1d83e989184a7795cb5b987438d4a562b67659b;hb=e448e4e5f1f071aa61152b2f49b239d878c0a580;hpb=74926cb05f2e5e4937658ca61444f7d7c846eb00 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/AbstractRead.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/AbstractRead.java index c1d83e9891..e73b5af7cd 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/AbstractRead.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/AbstractRead.java @@ -10,6 +10,10 @@ package org.opendaylight.controller.cluster.datastore.messages; import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.SettableFuture; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import org.opendaylight.controller.cluster.datastore.utils.SerializationUtils; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadTransaction; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -20,10 +24,16 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; * @author gwu * */ -public abstract class AbstractRead implements SerializableMessage { - private final YangInstanceIdentifier path; +public abstract class AbstractRead extends VersionedExternalizableMessage { + private static final long serialVersionUID = 1L; - public AbstractRead(final YangInstanceIdentifier path) { + private YangInstanceIdentifier path; + + protected AbstractRead() { + } + + public AbstractRead(final YangInstanceIdentifier path, final short version) { + super(version); this.path = path; } @@ -31,8 +41,25 @@ public abstract class AbstractRead implements SerializableMessage { return path; } + @Override + public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { + super.readExternal(in); + path = SerializationUtils.deserializePath(in); + } + + @Override + public void writeExternal(ObjectOutput out) throws IOException { + super.writeExternal(out); + SerializationUtils.serializePath(path, out); + } + + public AbstractRead asVersion(short version) { + return version == getVersion() ? this : newInstance(version); + } + public abstract CheckedFuture apply(DOMStoreReadTransaction readDelegate); public abstract void processResponse(Object reponse, SettableFuture promise); + protected abstract AbstractRead newInstance(short withVersion); }