001 package org.trails.io;
002
003 import java.io.Serializable;
004
005 public class EntityIdentity implements Serializable
006 {
007
008 private static final long serialVersionUID = 1L;
009
010 private final Class entityName;
011
012 private final Serializable id;
013
014 private final Object version;
015
016 public EntityIdentity(Class entityName, Serializable id)
017 {
018 this(entityName, id, null);
019 }
020
021 public EntityIdentity(Class entityName, Serializable id, Object version)
022 {
023 this.entityName = entityName;
024 this.id = id;
025 this.version = version;
026 }
027
028 public Class getEntityName()
029 {
030 return entityName;
031 }
032
033 public Serializable getId()
034 {
035 return id;
036 }
037
038 public Object getVersion()
039 {
040 return version;
041 }
042
043 public boolean equals(Object o)
044 {
045 if (this == o) return true;
046 if (o == null || getClass() != o.getClass()) return false;
047
048 EntityIdentity that = (EntityIdentity) o;
049
050 if (!entityName.equals(that.entityName)) return false;
051 if (id != null ? !id.equals(that.id) : that.id != null) return false;
052
053 return true;
054 }
055
056 public int hashCode()
057 {
058 int result;
059 result = entityName.hashCode();
060 result = 31 * result + (id != null ? id.hashCode() : 0);
061 return result;
062 }
063 }