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 }