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 * TaxDetailValue.java 021 */ 022 023package com.echothree.model.data.tax.server.value; 024 025import com.echothree.model.data.tax.common.pk.TaxDetailPK; 026 027import com.echothree.model.data.tax.server.factory.TaxDetailFactory; 028 029import com.echothree.model.data.tax.common.pk.TaxPK; 030import com.echothree.model.data.contact.common.pk.ContactMechanismPurposePK; 031import com.echothree.model.data.accounting.common.pk.GlAccountPK; 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 TaxDetailValue 044 extends BaseValue<TaxDetailPK> 045 implements Cloneable, Serializable { 046 047 private TaxPK taxPK; 048 private boolean taxPKHasBeenModified = false; 049 private String taxName; 050 private boolean taxNameHasBeenModified = false; 051 private ContactMechanismPurposePK contactMechanismPurposePK; 052 private boolean contactMechanismPurposePKHasBeenModified = false; 053 private GlAccountPK glAccountPK; 054 private boolean glAccountPKHasBeenModified = false; 055 private Boolean includeShippingCharge; 056 private boolean includeShippingChargeHasBeenModified = false; 057 private Boolean includeProcessingCharge; 058 private boolean includeProcessingChargeHasBeenModified = false; 059 private Boolean includeInsuranceCharge; 060 private boolean includeInsuranceChargeHasBeenModified = false; 061 private Integer percent; 062 private boolean percentHasBeenModified = false; 063 private Boolean isDefault; 064 private boolean isDefaultHasBeenModified = false; 065 private Integer sortOrder; 066 private boolean sortOrderHasBeenModified = false; 067 private Long fromTime; 068 private boolean fromTimeHasBeenModified = false; 069 private Long thruTime; 070 private boolean thruTimeHasBeenModified = false; 071 072 private transient Integer _hashCode = null; 073 private transient String _stringValue = null; 074 075 private void constructFields(TaxPK taxPK, String taxName, ContactMechanismPurposePK contactMechanismPurposePK, GlAccountPK glAccountPK, Boolean includeShippingCharge, Boolean includeProcessingCharge, Boolean includeInsuranceCharge, Integer percent, Boolean isDefault, Integer sortOrder, Long fromTime, Long thruTime) 076 throws PersistenceNotNullException { 077 checkForNull(taxPK); 078 this.taxPK = taxPK; 079 checkForNull(taxName); 080 this.taxName = taxName; 081 checkForNull(contactMechanismPurposePK); 082 this.contactMechanismPurposePK = contactMechanismPurposePK; 083 checkForNull(glAccountPK); 084 this.glAccountPK = glAccountPK; 085 checkForNull(includeShippingCharge); 086 this.includeShippingCharge = includeShippingCharge; 087 checkForNull(includeProcessingCharge); 088 this.includeProcessingCharge = includeProcessingCharge; 089 checkForNull(includeInsuranceCharge); 090 this.includeInsuranceCharge = includeInsuranceCharge; 091 checkForNull(percent); 092 this.percent = percent; 093 checkForNull(isDefault); 094 this.isDefault = isDefault; 095 checkForNull(sortOrder); 096 this.sortOrder = sortOrder; 097 checkForNull(fromTime); 098 this.fromTime = fromTime; 099 checkForNull(thruTime); 100 this.thruTime = thruTime; 101 } 102 103 /** Creates a new instance of TaxDetailValue */ 104 public TaxDetailValue(TaxDetailPK taxDetailPK, TaxPK taxPK, String taxName, ContactMechanismPurposePK contactMechanismPurposePK, GlAccountPK glAccountPK, Boolean includeShippingCharge, Boolean includeProcessingCharge, Boolean includeInsuranceCharge, Integer percent, Boolean isDefault, Integer sortOrder, Long fromTime, Long thruTime) 105 throws PersistenceNotNullException { 106 super(taxDetailPK); 107 constructFields(taxPK, taxName, contactMechanismPurposePK, glAccountPK, includeShippingCharge, includeProcessingCharge, includeInsuranceCharge, percent, isDefault, sortOrder, fromTime, thruTime); 108 } 109 110 /** Creates a new instance of TaxDetailValue */ 111 public TaxDetailValue(TaxPK taxPK, String taxName, ContactMechanismPurposePK contactMechanismPurposePK, GlAccountPK glAccountPK, Boolean includeShippingCharge, Boolean includeProcessingCharge, Boolean includeInsuranceCharge, Integer percent, Boolean isDefault, Integer sortOrder, Long fromTime, Long thruTime) 112 throws PersistenceNotNullException { 113 super(); 114 constructFields(taxPK, taxName, contactMechanismPurposePK, glAccountPK, includeShippingCharge, includeProcessingCharge, includeInsuranceCharge, percent, isDefault, sortOrder, fromTime, thruTime); 115 } 116 117 @Override 118 @Nonnull 119 public TaxDetailFactory getBaseFactoryInstance() { 120 return TaxDetailFactory.getInstance(); 121 } 122 123 @Override 124 @Nonnull 125 public TaxDetailValue clone() { 126 Object result; 127 128 try { 129 result = super.clone(); 130 } catch (CloneNotSupportedException cnse) { 131 // This shouldn't happen, fail when it does. 132 throw new PersistenceCloneException(cnse); 133 } 134 135 return (TaxDetailValue)result; 136 } 137 138 @Override 139 @Nonnull 140 public TaxDetailPK getPrimaryKey() { 141 if(_primaryKey == null) { 142 _primaryKey = new TaxDetailPK(entityId); 143 } 144 145 return _primaryKey; 146 } 147 148 private void clearHashAndString() { 149 _hashCode = null; 150 _stringValue = null; 151 } 152 153 @Override 154 public int hashCode() { 155 if(_hashCode == null) { 156 int hashCode = 17; 157 158 hashCode = 37 * hashCode + ((entityId != null) ? entityId.hashCode() : 0); 159 160 hashCode = 37 * hashCode + ((taxPK != null) ? taxPK.hashCode() : 0); 161 hashCode = 37 * hashCode + ((taxName != null) ? taxName.hashCode() : 0); 162 hashCode = 37 * hashCode + ((contactMechanismPurposePK != null) ? contactMechanismPurposePK.hashCode() : 0); 163 hashCode = 37 * hashCode + ((glAccountPK != null) ? glAccountPK.hashCode() : 0); 164 hashCode = 37 * hashCode + ((includeShippingCharge != null) ? includeShippingCharge.hashCode() : 0); 165 hashCode = 37 * hashCode + ((includeProcessingCharge != null) ? includeProcessingCharge.hashCode() : 0); 166 hashCode = 37 * hashCode + ((includeInsuranceCharge != null) ? includeInsuranceCharge.hashCode() : 0); 167 hashCode = 37 * hashCode + ((percent != null) ? percent.hashCode() : 0); 168 hashCode = 37 * hashCode + ((isDefault != null) ? isDefault.hashCode() : 0); 169 hashCode = 37 * hashCode + ((sortOrder != null) ? sortOrder.hashCode() : 0); 170 hashCode = 37 * hashCode + ((fromTime != null) ? fromTime.hashCode() : 0); 171 hashCode = 37 * hashCode + ((thruTime != null) ? thruTime.hashCode() : 0); 172 173 _hashCode = hashCode; 174 } 175 176 return _hashCode; 177 } 178 179 @Override 180 @Nonnull 181 public String toString() { 182 if(_stringValue == null) { 183 _stringValue = "{" + 184 "entityId=" + getEntityId() + 185 ", taxPK=" + getTaxPK() + 186 ", taxName=" + getTaxName() + 187 ", contactMechanismPurposePK=" + getContactMechanismPurposePK() + 188 ", glAccountPK=" + getGlAccountPK() + 189 ", includeShippingCharge=" + getIncludeShippingCharge() + 190 ", includeProcessingCharge=" + getIncludeProcessingCharge() + 191 ", includeInsuranceCharge=" + getIncludeInsuranceCharge() + 192 ", percent=" + getPercent() + 193 ", isDefault=" + getIsDefault() + 194 ", sortOrder=" + getSortOrder() + 195 ", fromTime=" + getFromTime() + 196 ", thruTime=" + getThruTime() + 197 "}"; 198 } 199 return _stringValue; 200 } 201 202 @Override 203 public boolean equals(Object other) { 204 if(this == other) 205 return true; 206 207 if(!hasIdentity()) 208 return false; 209 210 if(other instanceof TaxDetailValue that) { 211 if(!that.hasIdentity()) 212 return false; 213 214 Long thisEntityId = getEntityId(); 215 Long thatEntityId = that.getEntityId(); 216 217 boolean objectsEqual = thisEntityId.equals(thatEntityId); 218 if(objectsEqual) 219 objectsEqual = isIdentical(that); 220 221 return objectsEqual; 222 } else { 223 return false; 224 } 225 } 226 227 public boolean isIdentical(Object other) { 228 if(other instanceof TaxDetailValue that) { 229 boolean objectsEqual = true; 230 231 232 if(objectsEqual) { 233 TaxPK thisTaxPK = getTaxPK(); 234 TaxPK thatTaxPK = that.getTaxPK(); 235 236 if(thisTaxPK == null) { 237 objectsEqual = objectsEqual && (thatTaxPK == null); 238 } else { 239 objectsEqual = objectsEqual && thisTaxPK.equals(thatTaxPK); 240 } 241 } 242 243 if(objectsEqual) { 244 String thisTaxName = getTaxName(); 245 String thatTaxName = that.getTaxName(); 246 247 if(thisTaxName == null) { 248 objectsEqual = objectsEqual && (thatTaxName == null); 249 } else { 250 objectsEqual = objectsEqual && thisTaxName.equals(thatTaxName); 251 } 252 } 253 254 if(objectsEqual) { 255 ContactMechanismPurposePK thisContactMechanismPurposePK = getContactMechanismPurposePK(); 256 ContactMechanismPurposePK thatContactMechanismPurposePK = that.getContactMechanismPurposePK(); 257 258 if(thisContactMechanismPurposePK == null) { 259 objectsEqual = objectsEqual && (thatContactMechanismPurposePK == null); 260 } else { 261 objectsEqual = objectsEqual && thisContactMechanismPurposePK.equals(thatContactMechanismPurposePK); 262 } 263 } 264 265 if(objectsEqual) { 266 GlAccountPK thisGlAccountPK = getGlAccountPK(); 267 GlAccountPK thatGlAccountPK = that.getGlAccountPK(); 268 269 if(thisGlAccountPK == null) { 270 objectsEqual = objectsEqual && (thatGlAccountPK == null); 271 } else { 272 objectsEqual = objectsEqual && thisGlAccountPK.equals(thatGlAccountPK); 273 } 274 } 275 276 if(objectsEqual) { 277 Boolean thisIncludeShippingCharge = getIncludeShippingCharge(); 278 Boolean thatIncludeShippingCharge = that.getIncludeShippingCharge(); 279 280 if(thisIncludeShippingCharge == null) { 281 objectsEqual = objectsEqual && (thatIncludeShippingCharge == null); 282 } else { 283 objectsEqual = objectsEqual && thisIncludeShippingCharge.equals(thatIncludeShippingCharge); 284 } 285 } 286 287 if(objectsEqual) { 288 Boolean thisIncludeProcessingCharge = getIncludeProcessingCharge(); 289 Boolean thatIncludeProcessingCharge = that.getIncludeProcessingCharge(); 290 291 if(thisIncludeProcessingCharge == null) { 292 objectsEqual = objectsEqual && (thatIncludeProcessingCharge == null); 293 } else { 294 objectsEqual = objectsEqual && thisIncludeProcessingCharge.equals(thatIncludeProcessingCharge); 295 } 296 } 297 298 if(objectsEqual) { 299 Boolean thisIncludeInsuranceCharge = getIncludeInsuranceCharge(); 300 Boolean thatIncludeInsuranceCharge = that.getIncludeInsuranceCharge(); 301 302 if(thisIncludeInsuranceCharge == null) { 303 objectsEqual = objectsEqual && (thatIncludeInsuranceCharge == null); 304 } else { 305 objectsEqual = objectsEqual && thisIncludeInsuranceCharge.equals(thatIncludeInsuranceCharge); 306 } 307 } 308 309 if(objectsEqual) { 310 Integer thisPercent = getPercent(); 311 Integer thatPercent = that.getPercent(); 312 313 if(thisPercent == null) { 314 objectsEqual = objectsEqual && (thatPercent == null); 315 } else { 316 objectsEqual = objectsEqual && thisPercent.equals(thatPercent); 317 } 318 } 319 320 if(objectsEqual) { 321 Boolean thisIsDefault = getIsDefault(); 322 Boolean thatIsDefault = that.getIsDefault(); 323 324 if(thisIsDefault == null) { 325 objectsEqual = objectsEqual && (thatIsDefault == null); 326 } else { 327 objectsEqual = objectsEqual && thisIsDefault.equals(thatIsDefault); 328 } 329 } 330 331 if(objectsEqual) { 332 Integer thisSortOrder = getSortOrder(); 333 Integer thatSortOrder = that.getSortOrder(); 334 335 if(thisSortOrder == null) { 336 objectsEqual = objectsEqual && (thatSortOrder == null); 337 } else { 338 objectsEqual = objectsEqual && thisSortOrder.equals(thatSortOrder); 339 } 340 } 341 342 if(objectsEqual) { 343 Long thisFromTime = getFromTime(); 344 Long thatFromTime = that.getFromTime(); 345 346 if(thisFromTime == null) { 347 objectsEqual = objectsEqual && (thatFromTime == null); 348 } else { 349 objectsEqual = objectsEqual && thisFromTime.equals(thatFromTime); 350 } 351 } 352 353 if(objectsEqual) { 354 Long thisThruTime = getThruTime(); 355 Long thatThruTime = that.getThruTime(); 356 357 if(thisThruTime == null) { 358 objectsEqual = objectsEqual && (thatThruTime == null); 359 } else { 360 objectsEqual = objectsEqual && thisThruTime.equals(thatThruTime); 361 } 362 } 363 364 return objectsEqual; 365 } else { 366 return false; 367 } 368 } 369 370 @Override 371 public boolean hasBeenModified() { 372 return taxPKHasBeenModified || taxNameHasBeenModified || contactMechanismPurposePKHasBeenModified || glAccountPKHasBeenModified || includeShippingChargeHasBeenModified || includeProcessingChargeHasBeenModified || includeInsuranceChargeHasBeenModified || percentHasBeenModified || isDefaultHasBeenModified || sortOrderHasBeenModified || fromTimeHasBeenModified || thruTimeHasBeenModified; 373 } 374 375 @Override 376 public void clearHasBeenModified() { 377 taxPKHasBeenModified = false; 378 taxNameHasBeenModified = false; 379 contactMechanismPurposePKHasBeenModified = false; 380 glAccountPKHasBeenModified = false; 381 includeShippingChargeHasBeenModified = false; 382 includeProcessingChargeHasBeenModified = false; 383 includeInsuranceChargeHasBeenModified = false; 384 percentHasBeenModified = false; 385 isDefaultHasBeenModified = false; 386 sortOrderHasBeenModified = false; 387 fromTimeHasBeenModified = false; 388 thruTimeHasBeenModified = false; 389 } 390 391 @Nonnull 392 public TaxPK getTaxPK() { 393 return taxPK; 394 } 395 396 public void setTaxPK(@Nonnull TaxPK taxPK) 397 throws PersistenceNotNullException { 398 checkForNull(taxPK); 399 400 boolean update = true; 401 402 if(this.taxPK != null) { 403 if(this.taxPK.equals(taxPK)) { 404 update = false; 405 } 406 } else if(taxPK == null) { 407 update = false; 408 } 409 410 if(update) { 411 this.taxPK = taxPK; 412 taxPKHasBeenModified = true; 413 clearHashAndString(); 414 } 415 } 416 417 public boolean getTaxPKHasBeenModified() { 418 return taxPKHasBeenModified; 419 } 420 421 @Nonnull 422 public String getTaxName() { 423 return taxName; 424 } 425 426 public void setTaxName(@Nonnull String taxName) 427 throws PersistenceNotNullException { 428 checkForNull(taxName); 429 430 boolean update = true; 431 432 if(this.taxName != null) { 433 if(this.taxName.equals(taxName)) { 434 update = false; 435 } 436 } else if(taxName == null) { 437 update = false; 438 } 439 440 if(update) { 441 this.taxName = taxName; 442 taxNameHasBeenModified = true; 443 clearHashAndString(); 444 } 445 } 446 447 public boolean getTaxNameHasBeenModified() { 448 return taxNameHasBeenModified; 449 } 450 451 @Nonnull 452 public ContactMechanismPurposePK getContactMechanismPurposePK() { 453 return contactMechanismPurposePK; 454 } 455 456 public void setContactMechanismPurposePK(@Nonnull ContactMechanismPurposePK contactMechanismPurposePK) 457 throws PersistenceNotNullException { 458 checkForNull(contactMechanismPurposePK); 459 460 boolean update = true; 461 462 if(this.contactMechanismPurposePK != null) { 463 if(this.contactMechanismPurposePK.equals(contactMechanismPurposePK)) { 464 update = false; 465 } 466 } else if(contactMechanismPurposePK == null) { 467 update = false; 468 } 469 470 if(update) { 471 this.contactMechanismPurposePK = contactMechanismPurposePK; 472 contactMechanismPurposePKHasBeenModified = true; 473 clearHashAndString(); 474 } 475 } 476 477 public boolean getContactMechanismPurposePKHasBeenModified() { 478 return contactMechanismPurposePKHasBeenModified; 479 } 480 481 @Nonnull 482 public GlAccountPK getGlAccountPK() { 483 return glAccountPK; 484 } 485 486 public void setGlAccountPK(@Nonnull GlAccountPK glAccountPK) 487 throws PersistenceNotNullException { 488 checkForNull(glAccountPK); 489 490 boolean update = true; 491 492 if(this.glAccountPK != null) { 493 if(this.glAccountPK.equals(glAccountPK)) { 494 update = false; 495 } 496 } else if(glAccountPK == null) { 497 update = false; 498 } 499 500 if(update) { 501 this.glAccountPK = glAccountPK; 502 glAccountPKHasBeenModified = true; 503 clearHashAndString(); 504 } 505 } 506 507 public boolean getGlAccountPKHasBeenModified() { 508 return glAccountPKHasBeenModified; 509 } 510 511 @Nonnull 512 public Boolean getIncludeShippingCharge() { 513 return includeShippingCharge; 514 } 515 516 public void setIncludeShippingCharge(@Nonnull Boolean includeShippingCharge) 517 throws PersistenceNotNullException { 518 checkForNull(includeShippingCharge); 519 520 boolean update = true; 521 522 if(this.includeShippingCharge != null) { 523 if(this.includeShippingCharge.equals(includeShippingCharge)) { 524 update = false; 525 } 526 } else if(includeShippingCharge == null) { 527 update = false; 528 } 529 530 if(update) { 531 this.includeShippingCharge = includeShippingCharge; 532 includeShippingChargeHasBeenModified = true; 533 clearHashAndString(); 534 } 535 } 536 537 public boolean getIncludeShippingChargeHasBeenModified() { 538 return includeShippingChargeHasBeenModified; 539 } 540 541 @Nonnull 542 public Boolean getIncludeProcessingCharge() { 543 return includeProcessingCharge; 544 } 545 546 public void setIncludeProcessingCharge(@Nonnull Boolean includeProcessingCharge) 547 throws PersistenceNotNullException { 548 checkForNull(includeProcessingCharge); 549 550 boolean update = true; 551 552 if(this.includeProcessingCharge != null) { 553 if(this.includeProcessingCharge.equals(includeProcessingCharge)) { 554 update = false; 555 } 556 } else if(includeProcessingCharge == null) { 557 update = false; 558 } 559 560 if(update) { 561 this.includeProcessingCharge = includeProcessingCharge; 562 includeProcessingChargeHasBeenModified = true; 563 clearHashAndString(); 564 } 565 } 566 567 public boolean getIncludeProcessingChargeHasBeenModified() { 568 return includeProcessingChargeHasBeenModified; 569 } 570 571 @Nonnull 572 public Boolean getIncludeInsuranceCharge() { 573 return includeInsuranceCharge; 574 } 575 576 public void setIncludeInsuranceCharge(@Nonnull Boolean includeInsuranceCharge) 577 throws PersistenceNotNullException { 578 checkForNull(includeInsuranceCharge); 579 580 boolean update = true; 581 582 if(this.includeInsuranceCharge != null) { 583 if(this.includeInsuranceCharge.equals(includeInsuranceCharge)) { 584 update = false; 585 } 586 } else if(includeInsuranceCharge == null) { 587 update = false; 588 } 589 590 if(update) { 591 this.includeInsuranceCharge = includeInsuranceCharge; 592 includeInsuranceChargeHasBeenModified = true; 593 clearHashAndString(); 594 } 595 } 596 597 public boolean getIncludeInsuranceChargeHasBeenModified() { 598 return includeInsuranceChargeHasBeenModified; 599 } 600 601 @Nonnull 602 public Integer getPercent() { 603 return percent; 604 } 605 606 public void setPercent(@Nonnull Integer percent) 607 throws PersistenceNotNullException { 608 checkForNull(percent); 609 610 boolean update = true; 611 612 if(this.percent != null) { 613 if(this.percent.equals(percent)) { 614 update = false; 615 } 616 } else if(percent == null) { 617 update = false; 618 } 619 620 if(update) { 621 this.percent = percent; 622 percentHasBeenModified = true; 623 clearHashAndString(); 624 } 625 } 626 627 public boolean getPercentHasBeenModified() { 628 return percentHasBeenModified; 629 } 630 631 @Nonnull 632 public Boolean getIsDefault() { 633 return isDefault; 634 } 635 636 public void setIsDefault(@Nonnull Boolean isDefault) 637 throws PersistenceNotNullException { 638 checkForNull(isDefault); 639 640 boolean update = true; 641 642 if(this.isDefault != null) { 643 if(this.isDefault.equals(isDefault)) { 644 update = false; 645 } 646 } else if(isDefault == null) { 647 update = false; 648 } 649 650 if(update) { 651 this.isDefault = isDefault; 652 isDefaultHasBeenModified = true; 653 clearHashAndString(); 654 } 655 } 656 657 public boolean getIsDefaultHasBeenModified() { 658 return isDefaultHasBeenModified; 659 } 660 661 @Nonnull 662 public Integer getSortOrder() { 663 return sortOrder; 664 } 665 666 public void setSortOrder(@Nonnull Integer sortOrder) 667 throws PersistenceNotNullException { 668 checkForNull(sortOrder); 669 670 boolean update = true; 671 672 if(this.sortOrder != null) { 673 if(this.sortOrder.equals(sortOrder)) { 674 update = false; 675 } 676 } else if(sortOrder == null) { 677 update = false; 678 } 679 680 if(update) { 681 this.sortOrder = sortOrder; 682 sortOrderHasBeenModified = true; 683 clearHashAndString(); 684 } 685 } 686 687 public boolean getSortOrderHasBeenModified() { 688 return sortOrderHasBeenModified; 689 } 690 691 @Nonnull 692 public Long getFromTime() { 693 return fromTime; 694 } 695 696 public void setFromTime(@Nonnull Long fromTime) 697 throws PersistenceNotNullException { 698 checkForNull(fromTime); 699 700 boolean update = true; 701 702 if(this.fromTime != null) { 703 if(this.fromTime.equals(fromTime)) { 704 update = false; 705 } 706 } else if(fromTime == null) { 707 update = false; 708 } 709 710 if(update) { 711 this.fromTime = fromTime; 712 fromTimeHasBeenModified = true; 713 clearHashAndString(); 714 } 715 } 716 717 public boolean getFromTimeHasBeenModified() { 718 return fromTimeHasBeenModified; 719 } 720 721 @Nonnull 722 public Long getThruTime() { 723 return thruTime; 724 } 725 726 public void setThruTime(@Nonnull Long thruTime) 727 throws PersistenceNotNullException { 728 checkForNull(thruTime); 729 730 boolean update = true; 731 732 if(this.thruTime != null) { 733 if(this.thruTime.equals(thruTime)) { 734 update = false; 735 } 736 } else if(thruTime == null) { 737 update = false; 738 } 739 740 if(update) { 741 this.thruTime = thruTime; 742 thruTimeHasBeenModified = true; 743 clearHashAndString(); 744 } 745 } 746 747 public boolean getThruTimeHasBeenModified() { 748 return thruTimeHasBeenModified; 749 } 750 751}