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 * StandardTermValue.java 021 */ 022 023package com.echothree.model.data.term.server.value; 024 025import com.echothree.model.data.term.common.pk.StandardTermPK; 026 027import com.echothree.model.data.term.server.factory.StandardTermFactory; 028 029import com.echothree.model.data.term.common.pk.TermPK; 030 031import com.echothree.util.common.exception.PersistenceCloneException; 032import com.echothree.util.common.exception.PersistenceNotNullException; 033 034import com.echothree.util.server.persistence.BaseValue; 035 036import java.io.Serializable; 037 038public class StandardTermValue 039 extends BaseValue<StandardTermPK> 040 implements Cloneable, Serializable { 041 042 private TermPK termPK; 043 private boolean termPKHasBeenModified = false; 044 private Integer netDueDays; 045 private boolean netDueDaysHasBeenModified = false; 046 private Integer discountPercentage; 047 private boolean discountPercentageHasBeenModified = false; 048 private Integer discountDays; 049 private boolean discountDaysHasBeenModified = false; 050 private Long fromTime; 051 private boolean fromTimeHasBeenModified = false; 052 private Long thruTime; 053 private boolean thruTimeHasBeenModified = false; 054 055 private transient Integer _hashCode = null; 056 private transient String _stringValue = null; 057 058 private void constructFields(TermPK termPK, Integer netDueDays, Integer discountPercentage, Integer discountDays, Long fromTime, Long thruTime) 059 throws PersistenceNotNullException { 060 checkForNull(termPK); 061 this.termPK = termPK; 062 checkForNull(netDueDays); 063 this.netDueDays = netDueDays; 064 checkForNull(discountPercentage); 065 this.discountPercentage = discountPercentage; 066 checkForNull(discountDays); 067 this.discountDays = discountDays; 068 checkForNull(fromTime); 069 this.fromTime = fromTime; 070 checkForNull(thruTime); 071 this.thruTime = thruTime; 072 } 073 074 /** Creates a new instance of StandardTermValue */ 075 public StandardTermValue(StandardTermPK standardTermPK, TermPK termPK, Integer netDueDays, Integer discountPercentage, Integer discountDays, Long fromTime, Long thruTime) 076 throws PersistenceNotNullException { 077 super(standardTermPK); 078 constructFields(termPK, netDueDays, discountPercentage, discountDays, fromTime, thruTime); 079 } 080 081 /** Creates a new instance of StandardTermValue */ 082 public StandardTermValue(TermPK termPK, Integer netDueDays, Integer discountPercentage, Integer discountDays, Long fromTime, Long thruTime) 083 throws PersistenceNotNullException { 084 super(); 085 constructFields(termPK, netDueDays, discountPercentage, discountDays, fromTime, thruTime); 086 } 087 088 @Override 089 public StandardTermFactory getBaseFactoryInstance() { 090 return StandardTermFactory.getInstance(); 091 } 092 093 @Override 094 public StandardTermValue clone() { 095 Object result; 096 097 try { 098 result = super.clone(); 099 } catch (CloneNotSupportedException cnse) { 100 // This shouldn't happen, fail when it does. 101 throw new PersistenceCloneException(cnse); 102 } 103 104 return (StandardTermValue)result; 105 } 106 107 @Override 108 public StandardTermPK getPrimaryKey() { 109 if(_primaryKey == null) { 110 _primaryKey = new StandardTermPK(entityId); 111 } 112 113 return _primaryKey; 114 } 115 116 private void clearHashAndString() { 117 _hashCode = null; 118 _stringValue = null; 119 } 120 121 @Override 122 public int hashCode() { 123 if(_hashCode == null) { 124 int hashCode = 17; 125 126 hashCode = 37 * hashCode + ((entityId != null) ? entityId.hashCode() : 0); 127 128 hashCode = 37 * hashCode + ((termPK != null) ? termPK.hashCode() : 0); 129 hashCode = 37 * hashCode + ((netDueDays != null) ? netDueDays.hashCode() : 0); 130 hashCode = 37 * hashCode + ((discountPercentage != null) ? discountPercentage.hashCode() : 0); 131 hashCode = 37 * hashCode + ((discountDays != null) ? discountDays.hashCode() : 0); 132 hashCode = 37 * hashCode + ((fromTime != null) ? fromTime.hashCode() : 0); 133 hashCode = 37 * hashCode + ((thruTime != null) ? thruTime.hashCode() : 0); 134 135 _hashCode = hashCode; 136 } 137 138 return _hashCode; 139 } 140 141 @Override 142 public String toString() { 143 if(_stringValue == null) { 144 _stringValue = "{" + 145 "entityId=" + getEntityId() + 146 ", termPK=" + getTermPK() + 147 ", netDueDays=" + getNetDueDays() + 148 ", discountPercentage=" + getDiscountPercentage() + 149 ", discountDays=" + getDiscountDays() + 150 ", fromTime=" + getFromTime() + 151 ", thruTime=" + getThruTime() + 152 "}"; 153 } 154 return _stringValue; 155 } 156 157 @Override 158 public boolean equals(Object other) { 159 if(this == other) 160 return true; 161 162 if(!hasIdentity()) 163 return false; 164 165 if(other instanceof StandardTermValue that) { 166 if(!that.hasIdentity()) 167 return false; 168 169 Long thisEntityId = getEntityId(); 170 Long thatEntityId = that.getEntityId(); 171 172 boolean objectsEqual = thisEntityId.equals(thatEntityId); 173 if(objectsEqual) 174 objectsEqual = isIdentical(that); 175 176 return objectsEqual; 177 } else { 178 return false; 179 } 180 } 181 182 public boolean isIdentical(Object other) { 183 if(other instanceof StandardTermValue that) { 184 boolean objectsEqual = true; 185 186 187 if(objectsEqual) { 188 TermPK thisTermPK = getTermPK(); 189 TermPK thatTermPK = that.getTermPK(); 190 191 if(thisTermPK == null) { 192 objectsEqual = objectsEqual && (thatTermPK == null); 193 } else { 194 objectsEqual = objectsEqual && thisTermPK.equals(thatTermPK); 195 } 196 } 197 198 if(objectsEqual) { 199 Integer thisNetDueDays = getNetDueDays(); 200 Integer thatNetDueDays = that.getNetDueDays(); 201 202 if(thisNetDueDays == null) { 203 objectsEqual = objectsEqual && (thatNetDueDays == null); 204 } else { 205 objectsEqual = objectsEqual && thisNetDueDays.equals(thatNetDueDays); 206 } 207 } 208 209 if(objectsEqual) { 210 Integer thisDiscountPercentage = getDiscountPercentage(); 211 Integer thatDiscountPercentage = that.getDiscountPercentage(); 212 213 if(thisDiscountPercentage == null) { 214 objectsEqual = objectsEqual && (thatDiscountPercentage == null); 215 } else { 216 objectsEqual = objectsEqual && thisDiscountPercentage.equals(thatDiscountPercentage); 217 } 218 } 219 220 if(objectsEqual) { 221 Integer thisDiscountDays = getDiscountDays(); 222 Integer thatDiscountDays = that.getDiscountDays(); 223 224 if(thisDiscountDays == null) { 225 objectsEqual = objectsEqual && (thatDiscountDays == null); 226 } else { 227 objectsEqual = objectsEqual && thisDiscountDays.equals(thatDiscountDays); 228 } 229 } 230 231 if(objectsEqual) { 232 Long thisFromTime = getFromTime(); 233 Long thatFromTime = that.getFromTime(); 234 235 if(thisFromTime == null) { 236 objectsEqual = objectsEqual && (thatFromTime == null); 237 } else { 238 objectsEqual = objectsEqual && thisFromTime.equals(thatFromTime); 239 } 240 } 241 242 if(objectsEqual) { 243 Long thisThruTime = getThruTime(); 244 Long thatThruTime = that.getThruTime(); 245 246 if(thisThruTime == null) { 247 objectsEqual = objectsEqual && (thatThruTime == null); 248 } else { 249 objectsEqual = objectsEqual && thisThruTime.equals(thatThruTime); 250 } 251 } 252 253 return objectsEqual; 254 } else { 255 return false; 256 } 257 } 258 259 @Override 260 public boolean hasBeenModified() { 261 return termPKHasBeenModified || netDueDaysHasBeenModified || discountPercentageHasBeenModified || discountDaysHasBeenModified || fromTimeHasBeenModified || thruTimeHasBeenModified; 262 } 263 264 @Override 265 public void clearHasBeenModified() { 266 termPKHasBeenModified = false; 267 netDueDaysHasBeenModified = false; 268 discountPercentageHasBeenModified = false; 269 discountDaysHasBeenModified = false; 270 fromTimeHasBeenModified = false; 271 thruTimeHasBeenModified = false; 272 } 273 274 public TermPK getTermPK() { 275 return termPK; 276 } 277 278 public void setTermPK(TermPK termPK) 279 throws PersistenceNotNullException { 280 checkForNull(termPK); 281 282 boolean update = true; 283 284 if(this.termPK != null) { 285 if(this.termPK.equals(termPK)) { 286 update = false; 287 } 288 } else if(termPK == null) { 289 update = false; 290 } 291 292 if(update) { 293 this.termPK = termPK; 294 termPKHasBeenModified = true; 295 clearHashAndString(); 296 } 297 } 298 299 public boolean getTermPKHasBeenModified() { 300 return termPKHasBeenModified; 301 } 302 303 public Integer getNetDueDays() { 304 return netDueDays; 305 } 306 307 public void setNetDueDays(Integer netDueDays) 308 throws PersistenceNotNullException { 309 checkForNull(netDueDays); 310 311 boolean update = true; 312 313 if(this.netDueDays != null) { 314 if(this.netDueDays.equals(netDueDays)) { 315 update = false; 316 } 317 } else if(netDueDays == null) { 318 update = false; 319 } 320 321 if(update) { 322 this.netDueDays = netDueDays; 323 netDueDaysHasBeenModified = true; 324 clearHashAndString(); 325 } 326 } 327 328 public boolean getNetDueDaysHasBeenModified() { 329 return netDueDaysHasBeenModified; 330 } 331 332 public Integer getDiscountPercentage() { 333 return discountPercentage; 334 } 335 336 public void setDiscountPercentage(Integer discountPercentage) 337 throws PersistenceNotNullException { 338 checkForNull(discountPercentage); 339 340 boolean update = true; 341 342 if(this.discountPercentage != null) { 343 if(this.discountPercentage.equals(discountPercentage)) { 344 update = false; 345 } 346 } else if(discountPercentage == null) { 347 update = false; 348 } 349 350 if(update) { 351 this.discountPercentage = discountPercentage; 352 discountPercentageHasBeenModified = true; 353 clearHashAndString(); 354 } 355 } 356 357 public boolean getDiscountPercentageHasBeenModified() { 358 return discountPercentageHasBeenModified; 359 } 360 361 public Integer getDiscountDays() { 362 return discountDays; 363 } 364 365 public void setDiscountDays(Integer discountDays) 366 throws PersistenceNotNullException { 367 checkForNull(discountDays); 368 369 boolean update = true; 370 371 if(this.discountDays != null) { 372 if(this.discountDays.equals(discountDays)) { 373 update = false; 374 } 375 } else if(discountDays == null) { 376 update = false; 377 } 378 379 if(update) { 380 this.discountDays = discountDays; 381 discountDaysHasBeenModified = true; 382 clearHashAndString(); 383 } 384 } 385 386 public boolean getDiscountDaysHasBeenModified() { 387 return discountDaysHasBeenModified; 388 } 389 390 public Long getFromTime() { 391 return fromTime; 392 } 393 394 public void setFromTime(Long fromTime) 395 throws PersistenceNotNullException { 396 checkForNull(fromTime); 397 398 boolean update = true; 399 400 if(this.fromTime != null) { 401 if(this.fromTime.equals(fromTime)) { 402 update = false; 403 } 404 } else if(fromTime == null) { 405 update = false; 406 } 407 408 if(update) { 409 this.fromTime = fromTime; 410 fromTimeHasBeenModified = true; 411 clearHashAndString(); 412 } 413 } 414 415 public boolean getFromTimeHasBeenModified() { 416 return fromTimeHasBeenModified; 417 } 418 419 public Long getThruTime() { 420 return thruTime; 421 } 422 423 public void setThruTime(Long thruTime) 424 throws PersistenceNotNullException { 425 checkForNull(thruTime); 426 427 boolean update = true; 428 429 if(this.thruTime != null) { 430 if(this.thruTime.equals(thruTime)) { 431 update = false; 432 } 433 } else if(thruTime == null) { 434 update = false; 435 } 436 437 if(update) { 438 this.thruTime = thruTime; 439 thruTimeHasBeenModified = true; 440 clearHashAndString(); 441 } 442 } 443 444 public boolean getThruTimeHasBeenModified() { 445 return thruTimeHasBeenModified; 446 } 447 448}