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    }