4025bbb2aaac30375650537764616f8185c04c19
[cdmlib.git] / cdmlib-cache / src / main / java / eu / etaxonomy / cdm / cache / CdmEntityCacheKey.java
1 package eu.etaxonomy.cdm.cache;
2
3 import eu.etaxonomy.cdm.model.common.CdmBase;
4
5 public class CdmEntityCacheKey<T extends CdmBase> {
6
7 private Class<T> persistenceClass;
8 private int persistenceId;
9
10
11 public CdmEntityCacheKey(T cdmBase) {
12 this.persistenceClass = (Class<T>)cdmBase.getClass();
13 this.persistenceId = cdmBase.getId();
14 }
15
16 /**
17 * @param clazz
18 * @param uuid
19 */
20 public CdmEntityCacheKey(Class<T> clazz, int id) {
21 this.persistenceClass = clazz;
22 this.persistenceId = id;
23 }
24
25
26
27 public Class<? extends T> getPersistenceClass() {
28 return persistenceClass;
29 }
30
31 public int getPersistenceId() {
32 return persistenceId;
33 }
34 @Override
35 public boolean equals(Object obj) {
36 if(obj == null || !(obj instanceof CdmEntityCacheKey)) {
37 return false;
38 }
39
40 if(this == obj) {
41 return true;
42 }
43 CdmEntityCacheKey<?> that = (CdmEntityCacheKey<?>) obj;
44 if(this.persistenceClass.equals(that.persistenceClass)
45 && this.persistenceId == that.persistenceId) {
46 return true;
47 }
48
49 return false;
50 }
51
52 @Override
53 public int hashCode() {
54 return (this.persistenceClass.getName() + String.valueOf(this.persistenceId)).hashCode();
55 }
56
57 @Override
58 public String toString() {
59 return this.persistenceClass.getName() + String.valueOf(this.persistenceId);
60 }
61
62 }