Remove Copier interface
[controller.git] / opendaylight / md-sal / sal-remoterpc-connector / src / main / java / org / opendaylight / controller / remote / rpc / registry / gossip / BucketImpl.java
index 01c77f1f085823928c91dc1feb451ad6a2158c0d..a927c935331e31d13737ffb49a649cdc626c88f5 100644 (file)
@@ -9,36 +9,39 @@ package org.opendaylight.controller.remote.rpc.registry.gossip;
 
 import java.io.Serializable;
 
-public class BucketImpl<T extends Copier<T>> implements Bucket<T>, Serializable {
-    private static final long serialVersionUID = 1L;
+public final class BucketImpl<T extends BucketData<T>> implements Bucket<T>, Serializable {
+    private static final long serialVersionUID = 294779770032719196L;
 
     private Long version = System.currentTimeMillis();
 
     private T data;
 
-    @Override
-    public Long getVersion() {
-        return version;
+    public BucketImpl(final T data) {
+        this.data = data;
     }
 
-    @Override
-    public T getData() {
-        if (this.data == null)
-            return null;
-
-        return data.copy();
+    public BucketImpl(final Bucket<T> other) {
+        this.version = other.getVersion();
+        this.data = other.getData();
     }
 
-    public void setData(T data){
-        this.version = System.currentTimeMillis()+1;
+    public void setData(final T data) {
         this.data = data;
+        this.version = System.currentTimeMillis() + 1;
+    }
+
+    @Override
+    public long getVersion() {
+        return version.longValue();
+    }
+
+    @Override
+    public T getData() {
+        return data;
     }
 
     @Override
     public String toString() {
-        return "BucketImpl{" +
-                "version=" + version +
-                ", data=" + data +
-                '}';
+        return "BucketImpl{" + "version=" + version + ", data=" + data + '}';
     }
 }