001// -------------------------------------------------------------------------------- 002// Copyright 2002-2025 Echo Three, LLC 003// 004// Licensed under the Apache License, Version 2.0 (the "License"); 005// you may not use this file except in compliance with the License. 006// You may obtain a copy of the License at 007// 008// http://www.apache.org/licenses/LICENSE-2.0 009// 010// Unless required by applicable law or agreed to in writing, software 011// distributed under the License is distributed on an "AS IS" BASIS, 012// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013// See the License for the specific language governing permissions and 014// limitations under the License. 015// -------------------------------------------------------------------------------- 016// Generated File -- DO NOT EDIT BY HAND 017// -------------------------------------------------------------------------------- 018 019/** 020 * PartyTrainingClassStatusValue.java 021 */ 022 023package com.echothree.model.data.training.server.value; 024 025import com.echothree.model.data.training.common.pk.PartyTrainingClassStatusPK; 026 027import com.echothree.model.data.training.server.factory.PartyTrainingClassStatusFactory; 028 029import com.echothree.model.data.training.common.pk.PartyTrainingClassPK; 030import com.echothree.model.data.training.common.pk.PartyTrainingClassSessionPK; 031 032import com.echothree.util.common.exception.PersistenceCloneException; 033import com.echothree.util.common.exception.PersistenceNotNullException; 034 035import com.echothree.util.server.persistence.BaseValue; 036 037import java.io.Serializable; 038 039public class PartyTrainingClassStatusValue 040 extends BaseValue<PartyTrainingClassStatusPK> 041 implements Cloneable, Serializable { 042 043 private PartyTrainingClassPK partyTrainingClassPK; 044 private boolean partyTrainingClassPKHasBeenModified = false; 045 private Integer partyTrainingClassSessionSequence; 046 private boolean partyTrainingClassSessionSequenceHasBeenModified = false; 047 private PartyTrainingClassSessionPK lastPartyTrainingClassSessionPK; 048 private boolean lastPartyTrainingClassSessionPKHasBeenModified = false; 049 050 private transient Integer _hashCode = null; 051 private transient String _stringValue = null; 052 053 private void constructFields(PartyTrainingClassPK partyTrainingClassPK, Integer partyTrainingClassSessionSequence, PartyTrainingClassSessionPK lastPartyTrainingClassSessionPK) 054 throws PersistenceNotNullException { 055 checkForNull(partyTrainingClassPK); 056 this.partyTrainingClassPK = partyTrainingClassPK; 057 checkForNull(partyTrainingClassSessionSequence); 058 this.partyTrainingClassSessionSequence = partyTrainingClassSessionSequence; 059 this.lastPartyTrainingClassSessionPK = lastPartyTrainingClassSessionPK; 060 } 061 062 /** Creates a new instance of PartyTrainingClassStatusValue */ 063 public PartyTrainingClassStatusValue(PartyTrainingClassStatusPK partyTrainingClassStatusPK, PartyTrainingClassPK partyTrainingClassPK, Integer partyTrainingClassSessionSequence, PartyTrainingClassSessionPK lastPartyTrainingClassSessionPK) 064 throws PersistenceNotNullException { 065 super(partyTrainingClassStatusPK); 066 constructFields(partyTrainingClassPK, partyTrainingClassSessionSequence, lastPartyTrainingClassSessionPK); 067 } 068 069 /** Creates a new instance of PartyTrainingClassStatusValue */ 070 public PartyTrainingClassStatusValue(PartyTrainingClassPK partyTrainingClassPK, Integer partyTrainingClassSessionSequence, PartyTrainingClassSessionPK lastPartyTrainingClassSessionPK) 071 throws PersistenceNotNullException { 072 super(); 073 constructFields(partyTrainingClassPK, partyTrainingClassSessionSequence, lastPartyTrainingClassSessionPK); 074 } 075 076 @Override 077 public PartyTrainingClassStatusFactory getBaseFactoryInstance() { 078 return PartyTrainingClassStatusFactory.getInstance(); 079 } 080 081 @Override 082 public PartyTrainingClassStatusValue clone() { 083 Object result; 084 085 try { 086 result = super.clone(); 087 } catch (CloneNotSupportedException cnse) { 088 // This shouldn't happen, fail when it does. 089 throw new PersistenceCloneException(cnse); 090 } 091 092 return (PartyTrainingClassStatusValue)result; 093 } 094 095 @Override 096 public PartyTrainingClassStatusPK getPrimaryKey() { 097 if(_primaryKey == null) { 098 _primaryKey = new PartyTrainingClassStatusPK(entityId); 099 } 100 101 return _primaryKey; 102 } 103 104 private void clearHashAndString() { 105 _hashCode = null; 106 _stringValue = null; 107 } 108 109 @Override 110 public int hashCode() { 111 if(_hashCode == null) { 112 int hashCode = 17; 113 114 hashCode = 37 * hashCode + ((entityId != null) ? entityId.hashCode() : 0); 115 116 hashCode = 37 * hashCode + ((partyTrainingClassPK != null) ? partyTrainingClassPK.hashCode() : 0); 117 hashCode = 37 * hashCode + ((partyTrainingClassSessionSequence != null) ? partyTrainingClassSessionSequence.hashCode() : 0); 118 hashCode = 37 * hashCode + ((lastPartyTrainingClassSessionPK != null) ? lastPartyTrainingClassSessionPK.hashCode() : 0); 119 120 _hashCode = hashCode; 121 } 122 123 return _hashCode; 124 } 125 126 @Override 127 public String toString() { 128 if(_stringValue == null) { 129 _stringValue = "{" + 130 "entityId=" + getEntityId() + 131 ", partyTrainingClassPK=" + getPartyTrainingClassPK() + 132 ", partyTrainingClassSessionSequence=" + getPartyTrainingClassSessionSequence() + 133 ", lastPartyTrainingClassSessionPK=" + getLastPartyTrainingClassSessionPK() + 134 "}"; 135 } 136 return _stringValue; 137 } 138 139 @Override 140 public boolean equals(Object other) { 141 if(this == other) 142 return true; 143 144 if(!hasIdentity()) 145 return false; 146 147 if(other instanceof PartyTrainingClassStatusValue that) { 148 if(!that.hasIdentity()) 149 return false; 150 151 Long thisEntityId = getEntityId(); 152 Long thatEntityId = that.getEntityId(); 153 154 boolean objectsEqual = thisEntityId.equals(thatEntityId); 155 if(objectsEqual) 156 objectsEqual = isIdentical(that); 157 158 return objectsEqual; 159 } else { 160 return false; 161 } 162 } 163 164 public boolean isIdentical(Object other) { 165 if(other instanceof PartyTrainingClassStatusValue that) { 166 boolean objectsEqual = true; 167 168 169 if(objectsEqual) { 170 PartyTrainingClassPK thisPartyTrainingClassPK = getPartyTrainingClassPK(); 171 PartyTrainingClassPK thatPartyTrainingClassPK = that.getPartyTrainingClassPK(); 172 173 if(thisPartyTrainingClassPK == null) { 174 objectsEqual = objectsEqual && (thatPartyTrainingClassPK == null); 175 } else { 176 objectsEqual = objectsEqual && thisPartyTrainingClassPK.equals(thatPartyTrainingClassPK); 177 } 178 } 179 180 if(objectsEqual) { 181 Integer thisPartyTrainingClassSessionSequence = getPartyTrainingClassSessionSequence(); 182 Integer thatPartyTrainingClassSessionSequence = that.getPartyTrainingClassSessionSequence(); 183 184 if(thisPartyTrainingClassSessionSequence == null) { 185 objectsEqual = objectsEqual && (thatPartyTrainingClassSessionSequence == null); 186 } else { 187 objectsEqual = objectsEqual && thisPartyTrainingClassSessionSequence.equals(thatPartyTrainingClassSessionSequence); 188 } 189 } 190 191 if(objectsEqual) { 192 PartyTrainingClassSessionPK thisLastPartyTrainingClassSessionPK = getLastPartyTrainingClassSessionPK(); 193 PartyTrainingClassSessionPK thatLastPartyTrainingClassSessionPK = that.getLastPartyTrainingClassSessionPK(); 194 195 if(thisLastPartyTrainingClassSessionPK == null) { 196 objectsEqual = objectsEqual && (thatLastPartyTrainingClassSessionPK == null); 197 } else { 198 objectsEqual = objectsEqual && thisLastPartyTrainingClassSessionPK.equals(thatLastPartyTrainingClassSessionPK); 199 } 200 } 201 202 return objectsEqual; 203 } else { 204 return false; 205 } 206 } 207 208 @Override 209 public boolean hasBeenModified() { 210 return partyTrainingClassPKHasBeenModified || partyTrainingClassSessionSequenceHasBeenModified || lastPartyTrainingClassSessionPKHasBeenModified; 211 } 212 213 @Override 214 public void clearHasBeenModified() { 215 partyTrainingClassPKHasBeenModified = false; 216 partyTrainingClassSessionSequenceHasBeenModified = false; 217 lastPartyTrainingClassSessionPKHasBeenModified = false; 218 } 219 220 public PartyTrainingClassPK getPartyTrainingClassPK() { 221 return partyTrainingClassPK; 222 } 223 224 public void setPartyTrainingClassPK(PartyTrainingClassPK partyTrainingClassPK) 225 throws PersistenceNotNullException { 226 checkForNull(partyTrainingClassPK); 227 228 boolean update = true; 229 230 if(this.partyTrainingClassPK != null) { 231 if(this.partyTrainingClassPK.equals(partyTrainingClassPK)) { 232 update = false; 233 } 234 } else if(partyTrainingClassPK == null) { 235 update = false; 236 } 237 238 if(update) { 239 this.partyTrainingClassPK = partyTrainingClassPK; 240 partyTrainingClassPKHasBeenModified = true; 241 clearHashAndString(); 242 } 243 } 244 245 public boolean getPartyTrainingClassPKHasBeenModified() { 246 return partyTrainingClassPKHasBeenModified; 247 } 248 249 public Integer getPartyTrainingClassSessionSequence() { 250 return partyTrainingClassSessionSequence; 251 } 252 253 public void setPartyTrainingClassSessionSequence(Integer partyTrainingClassSessionSequence) 254 throws PersistenceNotNullException { 255 checkForNull(partyTrainingClassSessionSequence); 256 257 boolean update = true; 258 259 if(this.partyTrainingClassSessionSequence != null) { 260 if(this.partyTrainingClassSessionSequence.equals(partyTrainingClassSessionSequence)) { 261 update = false; 262 } 263 } else if(partyTrainingClassSessionSequence == null) { 264 update = false; 265 } 266 267 if(update) { 268 this.partyTrainingClassSessionSequence = partyTrainingClassSessionSequence; 269 partyTrainingClassSessionSequenceHasBeenModified = true; 270 clearHashAndString(); 271 } 272 } 273 274 public boolean getPartyTrainingClassSessionSequenceHasBeenModified() { 275 return partyTrainingClassSessionSequenceHasBeenModified; 276 } 277 278 public PartyTrainingClassSessionPK getLastPartyTrainingClassSessionPK() { 279 return lastPartyTrainingClassSessionPK; 280 } 281 282 public void setLastPartyTrainingClassSessionPK(PartyTrainingClassSessionPK lastPartyTrainingClassSessionPK) { 283 boolean update = true; 284 285 if(this.lastPartyTrainingClassSessionPK != null) { 286 if(this.lastPartyTrainingClassSessionPK.equals(lastPartyTrainingClassSessionPK)) { 287 update = false; 288 } 289 } else if(lastPartyTrainingClassSessionPK == null) { 290 update = false; 291 } 292 293 if(update) { 294 this.lastPartyTrainingClassSessionPK = lastPartyTrainingClassSessionPK; 295 lastPartyTrainingClassSessionPKHasBeenModified = true; 296 clearHashAndString(); 297 } 298 } 299 300 public boolean getLastPartyTrainingClassSessionPKHasBeenModified() { 301 return lastPartyTrainingClassSessionPKHasBeenModified; 302 } 303 304}