Add serialVersionUID to Serializable classes
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / main / java / org / opendaylight / controller / cluster / example / messages / KeyValue.java
index 00cc09ae3004316f35ed35398ae930832192a236..e0873cc7bae06159f5644f5cda370b1ada78275b 100644 (file)
@@ -8,11 +8,22 @@
 
 package org.opendaylight.controller.cluster.example.messages;
 
+import com.google.protobuf.GeneratedMessage;
+import org.opendaylight.controller.protobuff.messages.cluster.example.KeyValueMessages;
+import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload;
+import org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages;
+
 import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+
+public class KeyValue extends Payload implements Serializable {
+    private static final long serialVersionUID = 1L;
+    private String key;
+    private String value;
 
-public class KeyValue implements Serializable{
-    private final String key;
-    private final String value;
+    public KeyValue() {
+    }
 
     public KeyValue(String key, String value){
         this.key = key;
@@ -27,10 +38,37 @@ public class KeyValue implements Serializable{
         return value;
     }
 
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
     @Override public String toString() {
         return "KeyValue{" +
             "key='" + key + '\'' +
             ", value='" + value + '\'' +
             '}';
     }
+
+    // override this method to return  the protobuff related extension fields and their values
+    @Override public Map<GeneratedMessage.GeneratedExtension, String> encode() {
+        Map<GeneratedMessage.GeneratedExtension, String> map = new HashMap<>();
+        map.put(KeyValueMessages.key, getKey());
+        map.put(KeyValueMessages.value, getValue());
+        return map;
+    }
+
+    // override this method to assign the values from protobuff
+    @Override public Payload decode(
+        AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload payloadProtoBuff) {
+        String key = payloadProtoBuff.getExtension(KeyValueMessages.key);
+        String value = payloadProtoBuff.getExtension(KeyValueMessages.value);
+        this.setKey(key);
+        this.setValue(value);
+        return this;
+    }
+
 }