1 package org.sourceforge.jemm.database; 2 3 import java.io.Serializable; 4 import java.util.Map; 5 6 import org.sourceforge.jemm.types.ID; 7 8 public class ObjectState implements Serializable { 9 10 private static final long serialVersionUID = 1L; 11 12 public final ID jemmId; 13 public final int clientVersion; 14 public final Map<FieldInfo, Object> fieldValues; 15 16 public ObjectState(ID jemmId, int version, Map<FieldInfo, Object> fieldValues) { 17 if(jemmId == null) 18 throw new IllegalArgumentException("jemmId of ObjectState may not be null"); 19 this.jemmId = jemmId; 20 this.clientVersion = version; 21 this.fieldValues = fieldValues; 22 } 23 24 public boolean equals(Object obj) { 25 if(!(obj instanceof ObjectState)) 26 return false; 27 28 ObjectState rhs = (ObjectState)obj; 29 return jemmId.equals(rhs.jemmId) && clientVersion==rhs.clientVersion 30 && fieldValues.equals(rhs.fieldValues); 31 } 32 33 public int hashCode() { 34 return jemmId.hashCode() + clientVersion + fieldValues.hashCode(); 35 } 36 37 public String toString() { 38 return jemmId + "," + clientVersion + "," + fieldValues; 39 } 40 }