package com.cache2.domain; import java.io.Serializable; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; /** * Supports caching null values. * * @author matthew * * @param <T> */ public class CachedValue<T> implements Serializable { /** * */ private static final long serialVersionUID = -8358529675627649583L; private final T value; public CachedValue(T value) { super(); this.value = value; } /** * @return the value */ public T getValue() { return value; } @Override public int hashCode() { return new HashCodeBuilder(17, 31).append(value).toHashCode(); } @SuppressWarnings("unchecked") @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof CachedValue)) { return false; } CachedValue<T> rhs = (CachedValue<T>) obj; return new EqualsBuilder().append(value, rhs.getValue()).isEquals(); } @Override public String toString() { return ToStringBuilder.reflectionToString(this); } }