1 21 22 package org.opensubsystems.core.data; 23 24 import java.sql.Timestamp ; 25 26 import org.opensubsystems.core.util.GlobalConstants; 27 import org.opensubsystems.core.util.HashCodeUtils; 28 29 38 public abstract class BasicDataObject extends DataObject 39 { 40 42 46 private int m_iId; 47 48 53 protected int m_iDomainId; 54 55 58 protected Timestamp m_creationTimestamp; 59 60 62 70 private Integer m_iIdObject; 71 72 74 77 public BasicDataObject( 78 ) 79 { 80 this(DataObject.NEW_ID); 81 } 82 83 88 public BasicDataObject( 89 int iDomainId 90 ) 91 { 92 this(DataObject.NEW_ID, iDomainId, null); 93 } 94 95 102 public BasicDataObject( 103 int iId, 104 int iDomainId, 105 Timestamp creationTimestamp 106 ) 107 { 108 restore(iId, iDomainId, creationTimestamp); 109 } 110 111 113 116 public int getDomainId( 117 ) 118 { 119 return m_iDomainId; 120 } 121 122 125 public int getId() 126 { 127 return m_iId; 128 } 129 130 133 public Integer getIdAsObject() 134 { 135 if (m_iIdObject == null) 138 { 139 if (m_iId == DataObject.NEW_ID) 140 { 141 m_iIdObject = NEW_ID_OBJ; 142 } 143 else 144 { 145 m_iIdObject = new Integer (m_iId); 146 } 147 } 148 149 return m_iIdObject; 150 } 151 152 155 public void setId( 156 int iNewId 157 ) 158 { 159 if (GlobalConstants.ERROR_CHECKING) 160 { 161 assert ((m_iId == DataObject.NEW_ID) || (iNewId == DataObject.NEW_ID)) 163 : "Cannot set id for object which already has id " + m_iId; 164 } 165 166 if (m_iId != iNewId) 167 { 168 m_iId = iNewId; 169 m_iIdObject = null; 170 } 171 } 172 173 178 public Timestamp getCreationTimestamp() 179 { 180 return m_creationTimestamp; 181 } 182 183 188 public void setCreationTimestamp( 189 Timestamp creationTimestamp 190 ) 191 { 192 if (GlobalConstants.ERROR_CHECKING) 193 { 194 assert ((m_creationTimestamp == null) || (creationTimestamp == null)) 195 : "Creation timestamp can be set only if it is null."; 196 } 197 198 m_creationTimestamp = creationTimestamp; 199 } 200 201 204 public boolean equals( 205 Object oObject 206 ) 207 { 208 boolean bReturn = false; 209 BasicDataObject helper; 210 211 if (oObject == this) 212 { 213 bReturn = true; 214 } 215 else if ((oObject != null) && (oObject instanceof BasicDataObject)) 216 { 217 helper = (BasicDataObject) oObject; 218 bReturn = (m_iId == helper.m_iId) 219 && (m_iDomainId == helper.m_iDomainId) 220 && ((m_creationTimestamp == null && helper.m_creationTimestamp == null) 221 || ((m_creationTimestamp != null) 222 && (m_creationTimestamp.equals(helper.m_creationTimestamp)))) 223 && (isSame(oObject)); 225 } 226 return bReturn; 227 } 228 229 232 public int hashCode() 233 { 234 int iResult = HashCodeUtils.SEED; 235 iResult = HashCodeUtils.hash(iResult, m_iId); 236 return iResult; 237 } 238 239 241 250 protected void restore( 251 int iId, 252 int iDomainId, 253 Timestamp creationTimestamp 254 ) 255 { 256 m_iId = iId; 257 m_iDomainId = iDomainId; 258 m_creationTimestamp = creationTimestamp; 259 m_iIdObject = null; 260 } 261 } 262 | Popular Tags |