package com.cache2.key;
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;
import com.cache2.domain.Identifiable;
public class Cache2Key implements Serializable {
/**
*
*/
private static final long serialVersionUID = 5181262771317030866L;
private final Class<? extends Identifiable> clazz;
private final int id;
public Cache2Key(Class<? extends Identifiable> clazz, int id) {
super();
this.clazz = clazz;
this.id = id;
}
@Override
public int hashCode() {
return new HashCodeBuilder(17, 31).append(clazz).append(id)
.toHashCode();
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof Cache2Key)) {
return false;
}
Cache2Key rhs = (Cache2Key) obj;
return new EqualsBuilder().append(clazz, rhs.getClazz())
.append(id, rhs.getId()).isEquals();
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
/**
* @return the clazz
*/
public Class<? extends Identifiable> getClazz() {
return clazz;
}
/**
* @return the id
*/
public int getId() {
return id;
}
}