1 21 22 package org.opensubsystems.patterns.versioneddata.data; 23 24 import java.sql.Timestamp ; 25 26 import org.opensubsystems.core.data.DataObject; 27 import org.opensubsystems.core.data.ModifiableDataObject; 28 import org.opensubsystems.core.util.HashCodeUtils; 29 30 40 public abstract class VersionedDataObject extends ModifiableDataObject 41 { 42 44 47 public static final int FIRST_VERSION_NUMBER = 1; 48 49 51 56 protected int m_iBaseVersionId; 57 58 61 protected boolean m_bTip; 62 63 67 protected int m_iVersion; 68 69 71 74 public VersionedDataObject( 75 ) 76 { 77 this(DataObject.NEW_ID); 78 } 79 80 85 public VersionedDataObject( 86 int iDomainId 87 ) 88 { 89 this(DataObject.NEW_ID, iDomainId, DataObject.NEW_ID, true, 90 FIRST_VERSION_NUMBER, null, null); 91 } 92 93 105 public VersionedDataObject( 106 int iId, 107 int iDomainId, 108 int iBaseVersionId, 109 boolean bTip, 110 int iVersion, 111 Timestamp creationTimestamp, 112 Timestamp modificationTimestamp 113 ) 114 { 115 super(iId, iDomainId, creationTimestamp, modificationTimestamp); 116 117 m_iBaseVersionId = iBaseVersionId; 118 m_bTip = bTip; 119 m_iVersion = iVersion; 120 } 121 122 124 129 public int getBaseVersionId() 130 { 131 return m_iBaseVersionId; 132 } 133 134 139 public void setBaseVersionId( 140 int baseVersionId 141 ) 142 { 143 m_iBaseVersionId = baseVersionId; 144 } 145 146 151 public boolean isTip() 152 { 153 return m_bTip; 154 } 155 156 161 public void setTip( 162 boolean tip 163 ) 164 { 165 m_bTip = tip; 166 } 167 168 173 public int getVersion() 174 { 175 return m_iVersion; 176 } 177 178 183 public void setVersion( 184 int version 185 ) 186 { 187 m_iVersion = version; 188 } 189 190 193 public boolean equals( 194 Object oObject 195 ) 196 { 197 boolean bReturn = false; 198 VersionedDataObject helper; 199 200 if (oObject == this) 201 { 202 bReturn = true; 203 } 204 else if ((oObject != null) && (oObject instanceof VersionedDataObject)) 205 { 206 helper = (VersionedDataObject) oObject; 207 bReturn = (m_bTip == helper.m_bTip) 208 && (m_iBaseVersionId == helper.m_iBaseVersionId) 209 && (m_iVersion == helper.m_iVersion) 210 && (super.equals(oObject)); 211 } 212 213 return bReturn; 214 } 215 216 219 public int hashCode() 220 { 221 int iResult = HashCodeUtils.SEED; 222 iResult = HashCodeUtils.hash(iResult, m_bTip); 223 iResult = HashCodeUtils.hash(iResult, m_iBaseVersionId); 224 iResult = HashCodeUtils.hash(iResult, m_iVersion); 225 iResult = HashCodeUtils.hash(iResult, super.hashCode()); 226 return iResult; 227 } 228 229 231 245 protected void restore( 246 int iId, 247 int iDomainId, 248 int iBaseVersionId, 249 boolean bTip, 250 int iVersion, 251 Timestamp creationTimestamp, 252 Timestamp modificationTimestamp 253 ) 254 { 255 super.restore(iId, iDomainId, creationTimestamp, modificationTimestamp); 256 257 m_iBaseVersionId = iBaseVersionId; 258 m_bTip = bTip; 259 m_iVersion = iVersion; 260 } 261 } 262 | Popular Tags |