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 + '}';
}
}