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%2FReadDataReply.java;h=43dd81252c3a52f35da645e6993d716e2a0d7715;hp=52e2c29249704fc2831b1db0d97ad1a4f9b2ecdc;hb=5adfd98dac66cab656090d1b51324b4d09573bd9;hpb=18f8f0b852694daf18e8fd034ba576d78499e0ee diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ReadDataReply.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ReadDataReply.java index 52e2c29249..43dd81252c 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ReadDataReply.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ReadDataReply.java @@ -8,17 +8,51 @@ package org.opendaylight.controller.cluster.datastore.messages; +import com.google.protobuf.ByteString; +import org.opendaylight.controller.cluster.datastore.node.NormalizedNodeToNodeCodec; +import org.opendaylight.controller.protobuff.messages.transaction.ShardTransactionMessages; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.opendaylight.yangtools.yang.model.api.SchemaContext; -public class ReadDataReply { - private final NormalizedNode normalizedNode; +public class ReadDataReply implements SerializableMessage { + public static final Class SERIALIZABLE_CLASS = + ShardTransactionMessages.ReadDataReply.class; - public ReadDataReply(NormalizedNode normalizedNode){ + private final NormalizedNode normalizedNode; + private final SchemaContext schemaContext; - this.normalizedNode = normalizedNode; - } + public ReadDataReply(SchemaContext context,NormalizedNode normalizedNode){ - public NormalizedNode getNormalizedNode() { - return normalizedNode; - } + this.normalizedNode = normalizedNode; + this.schemaContext = context; + } + + public NormalizedNode getNormalizedNode() { + return normalizedNode; + } + + @Override + public Object toSerializable(){ + if(normalizedNode != null) { + return ShardTransactionMessages.ReadDataReply.newBuilder() + .setNormalizedNode(new NormalizedNodeToNodeCodec(schemaContext) + .encode(normalizedNode).getNormalizedNode()).build(); + } else { + return ShardTransactionMessages.ReadDataReply.newBuilder().build(); + + } + } + + public static ReadDataReply fromSerializable(SchemaContext schemaContext, + YangInstanceIdentifier id, Object serializable) { + ShardTransactionMessages.ReadDataReply o = (ShardTransactionMessages.ReadDataReply) serializable; + return new ReadDataReply(schemaContext, new NormalizedNodeToNodeCodec(schemaContext).decode( + o.getNormalizedNode())); + } + + public static ByteString getNormalizedNodeByteString(Object serializable){ + ShardTransactionMessages.ReadDataReply o = (ShardTransactionMessages.ReadDataReply) serializable; + return ((ShardTransactionMessages.ReadDataReply) serializable).getNormalizedNode().toByteString(); + } }