package jef.database.cache; import java.util.List; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; @SuppressWarnings("serial") public class SqlCacheKey implements CacheKey{ private KeyDimension dimension; private List<?> params; public SqlCacheKey(){ } /** * 构造 * @param dim * @param params */ public SqlCacheKey(KeyDimension dim,List<?> params){ this.dimension=dim; this.params=params; } public List<?> getParams() { return params; } public KeyDimension getDimension() { return dimension; } @Override public String toString() { StringBuilder sb=new StringBuilder(); sb.append('[').append(dimension.getTableDefinition()); sb.append("] ").append(dimension); sb.append(' '); sb.append(params); return sb.toString(); } @Override public int hashCode() { return new HashCodeBuilder().append(dimension).append(params).toHashCode(); } @Override public boolean equals(Object obj) { if(obj instanceof SqlCacheKey) { SqlCacheKey rhs=(SqlCacheKey)obj; return new EqualsBuilder().append(this.dimension, rhs.dimension).append(this.params, rhs.params).isEquals(); } return false; } @Override public String getStoreSpace() { return dimension.getTableDefinition(); } @Override public List<String> getAffectedKey() { return dimension.getTables(); } }