001// -------------------------------------------------------------------------------- 002// Copyright 2002-2026 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 * ItemVolumeValue.java 021 */ 022 023package com.echothree.model.data.item.server.value; 024 025import com.echothree.model.data.item.common.pk.ItemVolumePK; 026 027import com.echothree.model.data.item.server.factory.ItemVolumeFactory; 028 029import com.echothree.model.data.item.common.pk.ItemPK; 030import com.echothree.model.data.uom.common.pk.UnitOfMeasureTypePK; 031import com.echothree.model.data.item.common.pk.ItemVolumeTypePK; 032 033import com.echothree.util.common.exception.PersistenceCloneException; 034import com.echothree.util.common.exception.PersistenceNotNullException; 035 036import com.echothree.util.server.persistence.BaseValue; 037 038import java.io.Serializable; 039 040import javax.annotation.Nonnull; 041import javax.annotation.Nullable; 042 043public class ItemVolumeValue 044 extends BaseValue<ItemVolumePK> 045 implements Cloneable, Serializable { 046 047 private ItemPK itemPK; 048 private boolean itemPKHasBeenModified = false; 049 private UnitOfMeasureTypePK unitOfMeasureTypePK; 050 private boolean unitOfMeasureTypePKHasBeenModified = false; 051 private ItemVolumeTypePK itemVolumeTypePK; 052 private boolean itemVolumeTypePKHasBeenModified = false; 053 private Long height; 054 private boolean heightHasBeenModified = false; 055 private Long width; 056 private boolean widthHasBeenModified = false; 057 private Long depth; 058 private boolean depthHasBeenModified = false; 059 private Long fromTime; 060 private boolean fromTimeHasBeenModified = false; 061 private Long thruTime; 062 private boolean thruTimeHasBeenModified = false; 063 064 private transient Integer _hashCode = null; 065 private transient String _stringValue = null; 066 067 private void constructFields(ItemPK itemPK, UnitOfMeasureTypePK unitOfMeasureTypePK, ItemVolumeTypePK itemVolumeTypePK, Long height, Long width, Long depth, Long fromTime, Long thruTime) 068 throws PersistenceNotNullException { 069 checkForNull(itemPK); 070 this.itemPK = itemPK; 071 checkForNull(unitOfMeasureTypePK); 072 this.unitOfMeasureTypePK = unitOfMeasureTypePK; 073 checkForNull(itemVolumeTypePK); 074 this.itemVolumeTypePK = itemVolumeTypePK; 075 checkForNull(height); 076 this.height = height; 077 checkForNull(width); 078 this.width = width; 079 checkForNull(depth); 080 this.depth = depth; 081 checkForNull(fromTime); 082 this.fromTime = fromTime; 083 checkForNull(thruTime); 084 this.thruTime = thruTime; 085 } 086 087 /** Creates a new instance of ItemVolumeValue */ 088 public ItemVolumeValue(ItemVolumePK itemVolumePK, ItemPK itemPK, UnitOfMeasureTypePK unitOfMeasureTypePK, ItemVolumeTypePK itemVolumeTypePK, Long height, Long width, Long depth, Long fromTime, Long thruTime) 089 throws PersistenceNotNullException { 090 super(itemVolumePK); 091 constructFields(itemPK, unitOfMeasureTypePK, itemVolumeTypePK, height, width, depth, fromTime, thruTime); 092 } 093 094 /** Creates a new instance of ItemVolumeValue */ 095 public ItemVolumeValue(ItemPK itemPK, UnitOfMeasureTypePK unitOfMeasureTypePK, ItemVolumeTypePK itemVolumeTypePK, Long height, Long width, Long depth, Long fromTime, Long thruTime) 096 throws PersistenceNotNullException { 097 super(); 098 constructFields(itemPK, unitOfMeasureTypePK, itemVolumeTypePK, height, width, depth, fromTime, thruTime); 099 } 100 101 @Override 102 @Nonnull 103 public ItemVolumeFactory getBaseFactoryInstance() { 104 return ItemVolumeFactory.getInstance(); 105 } 106 107 @Override 108 @Nonnull 109 public ItemVolumeValue clone() { 110 Object result; 111 112 try { 113 result = super.clone(); 114 } catch (CloneNotSupportedException cnse) { 115 // This shouldn't happen, fail when it does. 116 throw new PersistenceCloneException(cnse); 117 } 118 119 return (ItemVolumeValue)result; 120 } 121 122 @Override 123 @Nonnull 124 public ItemVolumePK getPrimaryKey() { 125 if(_primaryKey == null) { 126 _primaryKey = new ItemVolumePK(entityId); 127 } 128 129 return _primaryKey; 130 } 131 132 private void clearHashAndString() { 133 _hashCode = null; 134 _stringValue = null; 135 } 136 137 @Override 138 public int hashCode() { 139 if(_hashCode == null) { 140 int hashCode = 17; 141 142 hashCode = 37 * hashCode + ((entityId != null) ? entityId.hashCode() : 0); 143 144 hashCode = 37 * hashCode + ((itemPK != null) ? itemPK.hashCode() : 0); 145 hashCode = 37 * hashCode + ((unitOfMeasureTypePK != null) ? unitOfMeasureTypePK.hashCode() : 0); 146 hashCode = 37 * hashCode + ((itemVolumeTypePK != null) ? itemVolumeTypePK.hashCode() : 0); 147 hashCode = 37 * hashCode + ((height != null) ? height.hashCode() : 0); 148 hashCode = 37 * hashCode + ((width != null) ? width.hashCode() : 0); 149 hashCode = 37 * hashCode + ((depth != null) ? depth.hashCode() : 0); 150 hashCode = 37 * hashCode + ((fromTime != null) ? fromTime.hashCode() : 0); 151 hashCode = 37 * hashCode + ((thruTime != null) ? thruTime.hashCode() : 0); 152 153 _hashCode = hashCode; 154 } 155 156 return _hashCode; 157 } 158 159 @Override 160 @Nonnull 161 public String toString() { 162 if(_stringValue == null) { 163 _stringValue = "{" + 164 "entityId=" + getEntityId() + 165 ", itemPK=" + getItemPK() + 166 ", unitOfMeasureTypePK=" + getUnitOfMeasureTypePK() + 167 ", itemVolumeTypePK=" + getItemVolumeTypePK() + 168 ", height=" + getHeight() + 169 ", width=" + getWidth() + 170 ", depth=" + getDepth() + 171 ", fromTime=" + getFromTime() + 172 ", thruTime=" + getThruTime() + 173 "}"; 174 } 175 return _stringValue; 176 } 177 178 @Override 179 public boolean equals(Object other) { 180 if(this == other) 181 return true; 182 183 if(!hasIdentity()) 184 return false; 185 186 if(other instanceof ItemVolumeValue that) { 187 if(!that.hasIdentity()) 188 return false; 189 190 Long thisEntityId = getEntityId(); 191 Long thatEntityId = that.getEntityId(); 192 193 boolean objectsEqual = thisEntityId.equals(thatEntityId); 194 if(objectsEqual) 195 objectsEqual = isIdentical(that); 196 197 return objectsEqual; 198 } else { 199 return false; 200 } 201 } 202 203 public boolean isIdentical(Object other) { 204 if(other instanceof ItemVolumeValue that) { 205 boolean objectsEqual = true; 206 207 208 if(objectsEqual) { 209 ItemPK thisItemPK = getItemPK(); 210 ItemPK thatItemPK = that.getItemPK(); 211 212 if(thisItemPK == null) { 213 objectsEqual = objectsEqual && (thatItemPK == null); 214 } else { 215 objectsEqual = objectsEqual && thisItemPK.equals(thatItemPK); 216 } 217 } 218 219 if(objectsEqual) { 220 UnitOfMeasureTypePK thisUnitOfMeasureTypePK = getUnitOfMeasureTypePK(); 221 UnitOfMeasureTypePK thatUnitOfMeasureTypePK = that.getUnitOfMeasureTypePK(); 222 223 if(thisUnitOfMeasureTypePK == null) { 224 objectsEqual = objectsEqual && (thatUnitOfMeasureTypePK == null); 225 } else { 226 objectsEqual = objectsEqual && thisUnitOfMeasureTypePK.equals(thatUnitOfMeasureTypePK); 227 } 228 } 229 230 if(objectsEqual) { 231 ItemVolumeTypePK thisItemVolumeTypePK = getItemVolumeTypePK(); 232 ItemVolumeTypePK thatItemVolumeTypePK = that.getItemVolumeTypePK(); 233 234 if(thisItemVolumeTypePK == null) { 235 objectsEqual = objectsEqual && (thatItemVolumeTypePK == null); 236 } else { 237 objectsEqual = objectsEqual && thisItemVolumeTypePK.equals(thatItemVolumeTypePK); 238 } 239 } 240 241 if(objectsEqual) { 242 Long thisHeight = getHeight(); 243 Long thatHeight = that.getHeight(); 244 245 if(thisHeight == null) { 246 objectsEqual = objectsEqual && (thatHeight == null); 247 } else { 248 objectsEqual = objectsEqual && thisHeight.equals(thatHeight); 249 } 250 } 251 252 if(objectsEqual) { 253 Long thisWidth = getWidth(); 254 Long thatWidth = that.getWidth(); 255 256 if(thisWidth == null) { 257 objectsEqual = objectsEqual && (thatWidth == null); 258 } else { 259 objectsEqual = objectsEqual && thisWidth.equals(thatWidth); 260 } 261 } 262 263 if(objectsEqual) { 264 Long thisDepth = getDepth(); 265 Long thatDepth = that.getDepth(); 266 267 if(thisDepth == null) { 268 objectsEqual = objectsEqual && (thatDepth == null); 269 } else { 270 objectsEqual = objectsEqual && thisDepth.equals(thatDepth); 271 } 272 } 273 274 if(objectsEqual) { 275 Long thisFromTime = getFromTime(); 276 Long thatFromTime = that.getFromTime(); 277 278 if(thisFromTime == null) { 279 objectsEqual = objectsEqual && (thatFromTime == null); 280 } else { 281 objectsEqual = objectsEqual && thisFromTime.equals(thatFromTime); 282 } 283 } 284 285 if(objectsEqual) { 286 Long thisThruTime = getThruTime(); 287 Long thatThruTime = that.getThruTime(); 288 289 if(thisThruTime == null) { 290 objectsEqual = objectsEqual && (thatThruTime == null); 291 } else { 292 objectsEqual = objectsEqual && thisThruTime.equals(thatThruTime); 293 } 294 } 295 296 return objectsEqual; 297 } else { 298 return false; 299 } 300 } 301 302 @Override 303 public boolean hasBeenModified() { 304 return itemPKHasBeenModified || unitOfMeasureTypePKHasBeenModified || itemVolumeTypePKHasBeenModified || heightHasBeenModified || widthHasBeenModified || depthHasBeenModified || fromTimeHasBeenModified || thruTimeHasBeenModified; 305 } 306 307 @Override 308 public void clearHasBeenModified() { 309 itemPKHasBeenModified = false; 310 unitOfMeasureTypePKHasBeenModified = false; 311 itemVolumeTypePKHasBeenModified = false; 312 heightHasBeenModified = false; 313 widthHasBeenModified = false; 314 depthHasBeenModified = false; 315 fromTimeHasBeenModified = false; 316 thruTimeHasBeenModified = false; 317 } 318 319 @Nonnull 320 public ItemPK getItemPK() { 321 return itemPK; 322 } 323 324 public void setItemPK(@Nonnull ItemPK itemPK) 325 throws PersistenceNotNullException { 326 checkForNull(itemPK); 327 328 boolean update = true; 329 330 if(this.itemPK != null) { 331 if(this.itemPK.equals(itemPK)) { 332 update = false; 333 } 334 } else if(itemPK == null) { 335 update = false; 336 } 337 338 if(update) { 339 this.itemPK = itemPK; 340 itemPKHasBeenModified = true; 341 clearHashAndString(); 342 } 343 } 344 345 public boolean getItemPKHasBeenModified() { 346 return itemPKHasBeenModified; 347 } 348 349 @Nonnull 350 public UnitOfMeasureTypePK getUnitOfMeasureTypePK() { 351 return unitOfMeasureTypePK; 352 } 353 354 public void setUnitOfMeasureTypePK(@Nonnull UnitOfMeasureTypePK unitOfMeasureTypePK) 355 throws PersistenceNotNullException { 356 checkForNull(unitOfMeasureTypePK); 357 358 boolean update = true; 359 360 if(this.unitOfMeasureTypePK != null) { 361 if(this.unitOfMeasureTypePK.equals(unitOfMeasureTypePK)) { 362 update = false; 363 } 364 } else if(unitOfMeasureTypePK == null) { 365 update = false; 366 } 367 368 if(update) { 369 this.unitOfMeasureTypePK = unitOfMeasureTypePK; 370 unitOfMeasureTypePKHasBeenModified = true; 371 clearHashAndString(); 372 } 373 } 374 375 public boolean getUnitOfMeasureTypePKHasBeenModified() { 376 return unitOfMeasureTypePKHasBeenModified; 377 } 378 379 @Nonnull 380 public ItemVolumeTypePK getItemVolumeTypePK() { 381 return itemVolumeTypePK; 382 } 383 384 public void setItemVolumeTypePK(@Nonnull ItemVolumeTypePK itemVolumeTypePK) 385 throws PersistenceNotNullException { 386 checkForNull(itemVolumeTypePK); 387 388 boolean update = true; 389 390 if(this.itemVolumeTypePK != null) { 391 if(this.itemVolumeTypePK.equals(itemVolumeTypePK)) { 392 update = false; 393 } 394 } else if(itemVolumeTypePK == null) { 395 update = false; 396 } 397 398 if(update) { 399 this.itemVolumeTypePK = itemVolumeTypePK; 400 itemVolumeTypePKHasBeenModified = true; 401 clearHashAndString(); 402 } 403 } 404 405 public boolean getItemVolumeTypePKHasBeenModified() { 406 return itemVolumeTypePKHasBeenModified; 407 } 408 409 @Nonnull 410 public Long getHeight() { 411 return height; 412 } 413 414 public void setHeight(@Nonnull Long height) 415 throws PersistenceNotNullException { 416 checkForNull(height); 417 418 boolean update = true; 419 420 if(this.height != null) { 421 if(this.height.equals(height)) { 422 update = false; 423 } 424 } else if(height == null) { 425 update = false; 426 } 427 428 if(update) { 429 this.height = height; 430 heightHasBeenModified = true; 431 clearHashAndString(); 432 } 433 } 434 435 public boolean getHeightHasBeenModified() { 436 return heightHasBeenModified; 437 } 438 439 @Nonnull 440 public Long getWidth() { 441 return width; 442 } 443 444 public void setWidth(@Nonnull Long width) 445 throws PersistenceNotNullException { 446 checkForNull(width); 447 448 boolean update = true; 449 450 if(this.width != null) { 451 if(this.width.equals(width)) { 452 update = false; 453 } 454 } else if(width == null) { 455 update = false; 456 } 457 458 if(update) { 459 this.width = width; 460 widthHasBeenModified = true; 461 clearHashAndString(); 462 } 463 } 464 465 public boolean getWidthHasBeenModified() { 466 return widthHasBeenModified; 467 } 468 469 @Nonnull 470 public Long getDepth() { 471 return depth; 472 } 473 474 public void setDepth(@Nonnull Long depth) 475 throws PersistenceNotNullException { 476 checkForNull(depth); 477 478 boolean update = true; 479 480 if(this.depth != null) { 481 if(this.depth.equals(depth)) { 482 update = false; 483 } 484 } else if(depth == null) { 485 update = false; 486 } 487 488 if(update) { 489 this.depth = depth; 490 depthHasBeenModified = true; 491 clearHashAndString(); 492 } 493 } 494 495 public boolean getDepthHasBeenModified() { 496 return depthHasBeenModified; 497 } 498 499 @Nonnull 500 public Long getFromTime() { 501 return fromTime; 502 } 503 504 public void setFromTime(@Nonnull Long fromTime) 505 throws PersistenceNotNullException { 506 checkForNull(fromTime); 507 508 boolean update = true; 509 510 if(this.fromTime != null) { 511 if(this.fromTime.equals(fromTime)) { 512 update = false; 513 } 514 } else if(fromTime == null) { 515 update = false; 516 } 517 518 if(update) { 519 this.fromTime = fromTime; 520 fromTimeHasBeenModified = true; 521 clearHashAndString(); 522 } 523 } 524 525 public boolean getFromTimeHasBeenModified() { 526 return fromTimeHasBeenModified; 527 } 528 529 @Nonnull 530 public Long getThruTime() { 531 return thruTime; 532 } 533 534 public void setThruTime(@Nonnull Long thruTime) 535 throws PersistenceNotNullException { 536 checkForNull(thruTime); 537 538 boolean update = true; 539 540 if(this.thruTime != null) { 541 if(this.thruTime.equals(thruTime)) { 542 update = false; 543 } 544 } else if(thruTime == null) { 545 update = false; 546 } 547 548 if(update) { 549 this.thruTime = thruTime; 550 thruTimeHasBeenModified = true; 551 clearHashAndString(); 552 } 553 } 554 555 public boolean getThruTimeHasBeenModified() { 556 return thruTimeHasBeenModified; 557 } 558 559}