001: package app.data;
002:
003: import javax.persistence.Embeddable;
004:
005: /**
006: * Id for Role Module
007: */
008: @Embeddable
009: public class RoleModuleId {
010:
011: Integer moduleId;
012:
013: Integer roleId;
014:
015: /**
016: * Default constructor.
017: */
018: public RoleModuleId() {
019: }
020:
021: /**
022: * Construct with fields.
023: */
024: public RoleModuleId(Integer moduleId, Integer roleId) {
025: this .moduleId = moduleId;
026: this .roleId = roleId;
027: }
028:
029: /**
030: * Return module id.
031: */
032: public Integer getModuleId() {
033: return moduleId;
034: }
035:
036: /**
037: * Set module id.
038: */
039: public void setModuleId(Integer moduleId) {
040: this .moduleId = moduleId;
041: }
042:
043: /**
044: * Return role id.
045: */
046: public Integer getRoleId() {
047: return roleId;
048: }
049:
050: /**
051: * Set role id.
052: */
053: public void setRoleId(Integer roleId) {
054: this .roleId = roleId;
055: }
056:
057: public String toString() {
058: return "moduleId=" + moduleId + "," + "roleId=" + roleId;
059: }
060:
061: /**
062: * equals by field.
063: */
064: public boolean equals(Object o) {
065: if (o instanceof RoleModuleId == false) {
066: return false;
067: }
068: if (o == this ) {
069: return true;
070: }
071: return o.hashCode() == hashCode();
072: }
073:
074: /**
075: * store the hashcode so that it doesn't change if
076: * first calculated when fields are null.
077: */
078: private Integer hashCodeValue;
079:
080: /**
081: * Hashcode based on non null fields.
082: */
083: public int hashCode() {
084:
085: if (hashCodeValue != null) {
086: return hashCodeValue.intValue();
087: }
088: // expecting all fields to be null or not null
089: if (moduleId != null && roleId != null) {
090:
091: int hc = getClass().hashCode();
092: hc = 31 * (hc + moduleId.hashCode());
093: hc = 31 * (hc + roleId.hashCode());
094:
095: hashCodeValue = new Integer(hc);
096: return hc;
097: }
098: // going to be using instance equality from now on
099: int hc = super .hashCode();
100: hashCodeValue = new Integer(hc);
101: return hc;
102: }
103:
104: }
|