001// -------------------------------------------------------------------------------- 002// Copyright 2002-2024 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 * TransactionGlEntryValue.java 021 */ 022 023package com.echothree.model.data.accounting.server.value; 024 025import com.echothree.model.data.accounting.common.pk.TransactionGlEntryPK; 026 027import com.echothree.model.data.accounting.server.factory.TransactionGlEntryFactory; 028 029import com.echothree.model.data.accounting.common.pk.TransactionPK; 030import com.echothree.model.data.party.common.pk.PartyPK; 031import com.echothree.model.data.accounting.common.pk.TransactionGlAccountCategoryPK; 032import com.echothree.model.data.accounting.common.pk.GlAccountPK; 033import com.echothree.model.data.accounting.common.pk.CurrencyPK; 034 035import com.echothree.util.common.exception.PersistenceCloneException; 036import com.echothree.util.common.exception.PersistenceNotNullException; 037 038import com.echothree.util.server.persistence.BaseValue; 039 040import java.io.Serializable; 041 042public class TransactionGlEntryValue 043 extends BaseValue<TransactionGlEntryPK> 044 implements Cloneable, Serializable { 045 046 private TransactionPK transactionPK; 047 private boolean transactionPKHasBeenModified = false; 048 private Integer transactionGlEntrySequence; 049 private boolean transactionGlEntrySequenceHasBeenModified = false; 050 private TransactionGlEntryPK parentTransactionGlEntryPK; 051 private boolean parentTransactionGlEntryPKHasBeenModified = false; 052 private PartyPK groupPartyPK; 053 private boolean groupPartyPKHasBeenModified = false; 054 private TransactionGlAccountCategoryPK transactionGlAccountCategoryPK; 055 private boolean transactionGlAccountCategoryPKHasBeenModified = false; 056 private GlAccountPK glAccountPK; 057 private boolean glAccountPKHasBeenModified = false; 058 private CurrencyPK originalCurrencyPK; 059 private boolean originalCurrencyPKHasBeenModified = false; 060 private Long originalAmount; 061 private boolean originalAmountHasBeenModified = false; 062 private Long amount; 063 private boolean amountHasBeenModified = false; 064 private Long fromTime; 065 private boolean fromTimeHasBeenModified = false; 066 private Long thruTime; 067 private boolean thruTimeHasBeenModified = false; 068 069 private transient Integer _hashCode = null; 070 private transient String _stringValue = null; 071 072 private void constructFields(TransactionPK transactionPK, Integer transactionGlEntrySequence, TransactionGlEntryPK parentTransactionGlEntryPK, PartyPK groupPartyPK, TransactionGlAccountCategoryPK transactionGlAccountCategoryPK, GlAccountPK glAccountPK, CurrencyPK originalCurrencyPK, Long originalAmount, Long amount, Long fromTime, Long thruTime) 073 throws PersistenceNotNullException { 074 checkForNull(transactionPK); 075 this.transactionPK = transactionPK; 076 checkForNull(transactionGlEntrySequence); 077 this.transactionGlEntrySequence = transactionGlEntrySequence; 078 this.parentTransactionGlEntryPK = parentTransactionGlEntryPK; 079 checkForNull(groupPartyPK); 080 this.groupPartyPK = groupPartyPK; 081 this.transactionGlAccountCategoryPK = transactionGlAccountCategoryPK; 082 checkForNull(glAccountPK); 083 this.glAccountPK = glAccountPK; 084 this.originalCurrencyPK = originalCurrencyPK; 085 this.originalAmount = originalAmount; 086 checkForNull(amount); 087 this.amount = amount; 088 checkForNull(fromTime); 089 this.fromTime = fromTime; 090 checkForNull(thruTime); 091 this.thruTime = thruTime; 092 } 093 094 /** Creates a new instance of TransactionGlEntryValue */ 095 public TransactionGlEntryValue(TransactionGlEntryPK transactionGlEntryPK, TransactionPK transactionPK, Integer transactionGlEntrySequence, TransactionGlEntryPK parentTransactionGlEntryPK, PartyPK groupPartyPK, TransactionGlAccountCategoryPK transactionGlAccountCategoryPK, GlAccountPK glAccountPK, CurrencyPK originalCurrencyPK, Long originalAmount, Long amount, Long fromTime, Long thruTime) 096 throws PersistenceNotNullException { 097 super(transactionGlEntryPK); 098 constructFields(transactionPK, transactionGlEntrySequence, parentTransactionGlEntryPK, groupPartyPK, transactionGlAccountCategoryPK, glAccountPK, originalCurrencyPK, originalAmount, amount, fromTime, thruTime); 099 } 100 101 /** Creates a new instance of TransactionGlEntryValue */ 102 public TransactionGlEntryValue(TransactionPK transactionPK, Integer transactionGlEntrySequence, TransactionGlEntryPK parentTransactionGlEntryPK, PartyPK groupPartyPK, TransactionGlAccountCategoryPK transactionGlAccountCategoryPK, GlAccountPK glAccountPK, CurrencyPK originalCurrencyPK, Long originalAmount, Long amount, Long fromTime, Long thruTime) 103 throws PersistenceNotNullException { 104 super(); 105 constructFields(transactionPK, transactionGlEntrySequence, parentTransactionGlEntryPK, groupPartyPK, transactionGlAccountCategoryPK, glAccountPK, originalCurrencyPK, originalAmount, amount, fromTime, thruTime); 106 } 107 108 @Override 109 public TransactionGlEntryFactory getBaseFactoryInstance() { 110 return TransactionGlEntryFactory.getInstance(); 111 } 112 113 @Override 114 public TransactionGlEntryValue clone() { 115 Object result; 116 117 try { 118 result = super.clone(); 119 } catch (CloneNotSupportedException cnse) { 120 // This shouldn't happen, fail when it does. 121 throw new PersistenceCloneException(cnse); 122 } 123 124 return (TransactionGlEntryValue)result; 125 } 126 127 @Override 128 public TransactionGlEntryPK getPrimaryKey() { 129 if(_primaryKey == null) { 130 _primaryKey = new TransactionGlEntryPK(entityId); 131 } 132 133 return _primaryKey; 134 } 135 136 private void clearHashAndString() { 137 _hashCode = null; 138 _stringValue = null; 139 } 140 141 @Override 142 public int hashCode() { 143 if(_hashCode == null) { 144 int hashCode = 17; 145 146 hashCode = 37 * hashCode + ((entityId != null) ? entityId.hashCode() : 0); 147 148 hashCode = 37 * hashCode + ((transactionPK != null) ? transactionPK.hashCode() : 0); 149 hashCode = 37 * hashCode + ((transactionGlEntrySequence != null) ? transactionGlEntrySequence.hashCode() : 0); 150 hashCode = 37 * hashCode + ((parentTransactionGlEntryPK != null) ? parentTransactionGlEntryPK.hashCode() : 0); 151 hashCode = 37 * hashCode + ((groupPartyPK != null) ? groupPartyPK.hashCode() : 0); 152 hashCode = 37 * hashCode + ((transactionGlAccountCategoryPK != null) ? transactionGlAccountCategoryPK.hashCode() : 0); 153 hashCode = 37 * hashCode + ((glAccountPK != null) ? glAccountPK.hashCode() : 0); 154 hashCode = 37 * hashCode + ((originalCurrencyPK != null) ? originalCurrencyPK.hashCode() : 0); 155 hashCode = 37 * hashCode + ((originalAmount != null) ? originalAmount.hashCode() : 0); 156 hashCode = 37 * hashCode + ((amount != null) ? amount.hashCode() : 0); 157 hashCode = 37 * hashCode + ((fromTime != null) ? fromTime.hashCode() : 0); 158 hashCode = 37 * hashCode + ((thruTime != null) ? thruTime.hashCode() : 0); 159 160 _hashCode = hashCode; 161 } 162 163 return _hashCode; 164 } 165 166 @Override 167 public String toString() { 168 if(_stringValue == null) { 169 StringBuilder stringValue = new StringBuilder("{"); 170 171 stringValue.append("entityId=").append(getEntityId()); 172 173 stringValue.append(", transactionPK=").append(getTransactionPK()); 174 stringValue.append(", transactionGlEntrySequence=").append(getTransactionGlEntrySequence()); 175 stringValue.append(", parentTransactionGlEntryPK=").append(getParentTransactionGlEntryPK()); 176 stringValue.append(", groupPartyPK=").append(getGroupPartyPK()); 177 stringValue.append(", transactionGlAccountCategoryPK=").append(getTransactionGlAccountCategoryPK()); 178 stringValue.append(", glAccountPK=").append(getGlAccountPK()); 179 stringValue.append(", originalCurrencyPK=").append(getOriginalCurrencyPK()); 180 stringValue.append(", originalAmount=").append(getOriginalAmount()); 181 stringValue.append(", amount=").append(getAmount()); 182 stringValue.append(", fromTime=").append(getFromTime()); 183 stringValue.append(", thruTime=").append(getThruTime()); 184 185 stringValue.append('}'); 186 187 _stringValue = stringValue.toString(); 188 } 189 return _stringValue; 190 } 191 192 @Override 193 public boolean equals(Object other) { 194 if(this == other) 195 return true; 196 197 if(!hasIdentity()) 198 return false; 199 200 if(other instanceof TransactionGlEntryValue) { 201 TransactionGlEntryValue that = (TransactionGlEntryValue)other; 202 203 if(!that.hasIdentity()) 204 return false; 205 206 Long thisEntityId = getEntityId(); 207 Long thatEntityId = that.getEntityId(); 208 209 boolean objectsEqual = thisEntityId.equals(thatEntityId); 210 if(objectsEqual) 211 objectsEqual = objectsEqual && isIdentical(that); 212 213 return objectsEqual; 214 } else { 215 return false; 216 } 217 } 218 219 public boolean isIdentical(Object other) { 220 if(other instanceof TransactionGlEntryValue) { 221 TransactionGlEntryValue that = (TransactionGlEntryValue)other; 222 boolean objectsEqual = true; 223 224 225 if(objectsEqual) { 226 TransactionPK thisTransactionPK = getTransactionPK(); 227 TransactionPK thatTransactionPK = that.getTransactionPK(); 228 229 if(thisTransactionPK == null) { 230 objectsEqual = objectsEqual && (thatTransactionPK == null); 231 } else { 232 objectsEqual = objectsEqual && thisTransactionPK.equals(thatTransactionPK); 233 } 234 } 235 236 if(objectsEqual) { 237 Integer thisTransactionGlEntrySequence = getTransactionGlEntrySequence(); 238 Integer thatTransactionGlEntrySequence = that.getTransactionGlEntrySequence(); 239 240 if(thisTransactionGlEntrySequence == null) { 241 objectsEqual = objectsEqual && (thatTransactionGlEntrySequence == null); 242 } else { 243 objectsEqual = objectsEqual && thisTransactionGlEntrySequence.equals(thatTransactionGlEntrySequence); 244 } 245 } 246 247 if(objectsEqual) { 248 TransactionGlEntryPK thisParentTransactionGlEntryPK = getParentTransactionGlEntryPK(); 249 TransactionGlEntryPK thatParentTransactionGlEntryPK = that.getParentTransactionGlEntryPK(); 250 251 if(thisParentTransactionGlEntryPK == null) { 252 objectsEqual = objectsEqual && (thatParentTransactionGlEntryPK == null); 253 } else { 254 objectsEqual = objectsEqual && thisParentTransactionGlEntryPK.equals(thatParentTransactionGlEntryPK); 255 } 256 } 257 258 if(objectsEqual) { 259 PartyPK thisGroupPartyPK = getGroupPartyPK(); 260 PartyPK thatGroupPartyPK = that.getGroupPartyPK(); 261 262 if(thisGroupPartyPK == null) { 263 objectsEqual = objectsEqual && (thatGroupPartyPK == null); 264 } else { 265 objectsEqual = objectsEqual && thisGroupPartyPK.equals(thatGroupPartyPK); 266 } 267 } 268 269 if(objectsEqual) { 270 TransactionGlAccountCategoryPK thisTransactionGlAccountCategoryPK = getTransactionGlAccountCategoryPK(); 271 TransactionGlAccountCategoryPK thatTransactionGlAccountCategoryPK = that.getTransactionGlAccountCategoryPK(); 272 273 if(thisTransactionGlAccountCategoryPK == null) { 274 objectsEqual = objectsEqual && (thatTransactionGlAccountCategoryPK == null); 275 } else { 276 objectsEqual = objectsEqual && thisTransactionGlAccountCategoryPK.equals(thatTransactionGlAccountCategoryPK); 277 } 278 } 279 280 if(objectsEqual) { 281 GlAccountPK thisGlAccountPK = getGlAccountPK(); 282 GlAccountPK thatGlAccountPK = that.getGlAccountPK(); 283 284 if(thisGlAccountPK == null) { 285 objectsEqual = objectsEqual && (thatGlAccountPK == null); 286 } else { 287 objectsEqual = objectsEqual && thisGlAccountPK.equals(thatGlAccountPK); 288 } 289 } 290 291 if(objectsEqual) { 292 CurrencyPK thisOriginalCurrencyPK = getOriginalCurrencyPK(); 293 CurrencyPK thatOriginalCurrencyPK = that.getOriginalCurrencyPK(); 294 295 if(thisOriginalCurrencyPK == null) { 296 objectsEqual = objectsEqual && (thatOriginalCurrencyPK == null); 297 } else { 298 objectsEqual = objectsEqual && thisOriginalCurrencyPK.equals(thatOriginalCurrencyPK); 299 } 300 } 301 302 if(objectsEqual) { 303 Long thisOriginalAmount = getOriginalAmount(); 304 Long thatOriginalAmount = that.getOriginalAmount(); 305 306 if(thisOriginalAmount == null) { 307 objectsEqual = objectsEqual && (thatOriginalAmount == null); 308 } else { 309 objectsEqual = objectsEqual && thisOriginalAmount.equals(thatOriginalAmount); 310 } 311 } 312 313 if(objectsEqual) { 314 Long thisAmount = getAmount(); 315 Long thatAmount = that.getAmount(); 316 317 if(thisAmount == null) { 318 objectsEqual = objectsEqual && (thatAmount == null); 319 } else { 320 objectsEqual = objectsEqual && thisAmount.equals(thatAmount); 321 } 322 } 323 324 if(objectsEqual) { 325 Long thisFromTime = getFromTime(); 326 Long thatFromTime = that.getFromTime(); 327 328 if(thisFromTime == null) { 329 objectsEqual = objectsEqual && (thatFromTime == null); 330 } else { 331 objectsEqual = objectsEqual && thisFromTime.equals(thatFromTime); 332 } 333 } 334 335 if(objectsEqual) { 336 Long thisThruTime = getThruTime(); 337 Long thatThruTime = that.getThruTime(); 338 339 if(thisThruTime == null) { 340 objectsEqual = objectsEqual && (thatThruTime == null); 341 } else { 342 objectsEqual = objectsEqual && thisThruTime.equals(thatThruTime); 343 } 344 } 345 346 return objectsEqual; 347 } else { 348 return false; 349 } 350 } 351 352 @Override 353 public boolean hasBeenModified() { 354 return transactionPKHasBeenModified || transactionGlEntrySequenceHasBeenModified || parentTransactionGlEntryPKHasBeenModified || groupPartyPKHasBeenModified || transactionGlAccountCategoryPKHasBeenModified || glAccountPKHasBeenModified || originalCurrencyPKHasBeenModified || originalAmountHasBeenModified || amountHasBeenModified || fromTimeHasBeenModified || thruTimeHasBeenModified; 355 } 356 357 @Override 358 public void clearHasBeenModified() { 359 transactionPKHasBeenModified = false; 360 transactionGlEntrySequenceHasBeenModified = false; 361 parentTransactionGlEntryPKHasBeenModified = false; 362 groupPartyPKHasBeenModified = false; 363 transactionGlAccountCategoryPKHasBeenModified = false; 364 glAccountPKHasBeenModified = false; 365 originalCurrencyPKHasBeenModified = false; 366 originalAmountHasBeenModified = false; 367 amountHasBeenModified = false; 368 fromTimeHasBeenModified = false; 369 thruTimeHasBeenModified = false; 370 } 371 372 public TransactionPK getTransactionPK() { 373 return transactionPK; 374 } 375 376 public void setTransactionPK(TransactionPK transactionPK) 377 throws PersistenceNotNullException { 378 checkForNull(transactionPK); 379 380 boolean update = true; 381 382 if(this.transactionPK != null) { 383 if(this.transactionPK.equals(transactionPK)) { 384 update = false; 385 } 386 } else if(transactionPK == null) { 387 update = false; 388 } 389 390 if(update) { 391 this.transactionPK = transactionPK; 392 transactionPKHasBeenModified = true; 393 clearHashAndString(); 394 } 395 } 396 397 public boolean getTransactionPKHasBeenModified() { 398 return transactionPKHasBeenModified; 399 } 400 401 public Integer getTransactionGlEntrySequence() { 402 return transactionGlEntrySequence; 403 } 404 405 public void setTransactionGlEntrySequence(Integer transactionGlEntrySequence) 406 throws PersistenceNotNullException { 407 checkForNull(transactionGlEntrySequence); 408 409 boolean update = true; 410 411 if(this.transactionGlEntrySequence != null) { 412 if(this.transactionGlEntrySequence.equals(transactionGlEntrySequence)) { 413 update = false; 414 } 415 } else if(transactionGlEntrySequence == null) { 416 update = false; 417 } 418 419 if(update) { 420 this.transactionGlEntrySequence = transactionGlEntrySequence; 421 transactionGlEntrySequenceHasBeenModified = true; 422 clearHashAndString(); 423 } 424 } 425 426 public boolean getTransactionGlEntrySequenceHasBeenModified() { 427 return transactionGlEntrySequenceHasBeenModified; 428 } 429 430 public TransactionGlEntryPK getParentTransactionGlEntryPK() { 431 return parentTransactionGlEntryPK; 432 } 433 434 public void setParentTransactionGlEntryPK(TransactionGlEntryPK parentTransactionGlEntryPK) { 435 boolean update = true; 436 437 if(this.parentTransactionGlEntryPK != null) { 438 if(this.parentTransactionGlEntryPK.equals(parentTransactionGlEntryPK)) { 439 update = false; 440 } 441 } else if(parentTransactionGlEntryPK == null) { 442 update = false; 443 } 444 445 if(update) { 446 this.parentTransactionGlEntryPK = parentTransactionGlEntryPK; 447 parentTransactionGlEntryPKHasBeenModified = true; 448 clearHashAndString(); 449 } 450 } 451 452 public boolean getParentTransactionGlEntryPKHasBeenModified() { 453 return parentTransactionGlEntryPKHasBeenModified; 454 } 455 456 public PartyPK getGroupPartyPK() { 457 return groupPartyPK; 458 } 459 460 public void setGroupPartyPK(PartyPK groupPartyPK) 461 throws PersistenceNotNullException { 462 checkForNull(groupPartyPK); 463 464 boolean update = true; 465 466 if(this.groupPartyPK != null) { 467 if(this.groupPartyPK.equals(groupPartyPK)) { 468 update = false; 469 } 470 } else if(groupPartyPK == null) { 471 update = false; 472 } 473 474 if(update) { 475 this.groupPartyPK = groupPartyPK; 476 groupPartyPKHasBeenModified = true; 477 clearHashAndString(); 478 } 479 } 480 481 public boolean getGroupPartyPKHasBeenModified() { 482 return groupPartyPKHasBeenModified; 483 } 484 485 public TransactionGlAccountCategoryPK getTransactionGlAccountCategoryPK() { 486 return transactionGlAccountCategoryPK; 487 } 488 489 public void setTransactionGlAccountCategoryPK(TransactionGlAccountCategoryPK transactionGlAccountCategoryPK) { 490 boolean update = true; 491 492 if(this.transactionGlAccountCategoryPK != null) { 493 if(this.transactionGlAccountCategoryPK.equals(transactionGlAccountCategoryPK)) { 494 update = false; 495 } 496 } else if(transactionGlAccountCategoryPK == null) { 497 update = false; 498 } 499 500 if(update) { 501 this.transactionGlAccountCategoryPK = transactionGlAccountCategoryPK; 502 transactionGlAccountCategoryPKHasBeenModified = true; 503 clearHashAndString(); 504 } 505 } 506 507 public boolean getTransactionGlAccountCategoryPKHasBeenModified() { 508 return transactionGlAccountCategoryPKHasBeenModified; 509 } 510 511 public GlAccountPK getGlAccountPK() { 512 return glAccountPK; 513 } 514 515 public void setGlAccountPK(GlAccountPK glAccountPK) 516 throws PersistenceNotNullException { 517 checkForNull(glAccountPK); 518 519 boolean update = true; 520 521 if(this.glAccountPK != null) { 522 if(this.glAccountPK.equals(glAccountPK)) { 523 update = false; 524 } 525 } else if(glAccountPK == null) { 526 update = false; 527 } 528 529 if(update) { 530 this.glAccountPK = glAccountPK; 531 glAccountPKHasBeenModified = true; 532 clearHashAndString(); 533 } 534 } 535 536 public boolean getGlAccountPKHasBeenModified() { 537 return glAccountPKHasBeenModified; 538 } 539 540 public CurrencyPK getOriginalCurrencyPK() { 541 return originalCurrencyPK; 542 } 543 544 public void setOriginalCurrencyPK(CurrencyPK originalCurrencyPK) { 545 boolean update = true; 546 547 if(this.originalCurrencyPK != null) { 548 if(this.originalCurrencyPK.equals(originalCurrencyPK)) { 549 update = false; 550 } 551 } else if(originalCurrencyPK == null) { 552 update = false; 553 } 554 555 if(update) { 556 this.originalCurrencyPK = originalCurrencyPK; 557 originalCurrencyPKHasBeenModified = true; 558 clearHashAndString(); 559 } 560 } 561 562 public boolean getOriginalCurrencyPKHasBeenModified() { 563 return originalCurrencyPKHasBeenModified; 564 } 565 566 public Long getOriginalAmount() { 567 return originalAmount; 568 } 569 570 public void setOriginalAmount(Long originalAmount) { 571 boolean update = true; 572 573 if(this.originalAmount != null) { 574 if(this.originalAmount.equals(originalAmount)) { 575 update = false; 576 } 577 } else if(originalAmount == null) { 578 update = false; 579 } 580 581 if(update) { 582 this.originalAmount = originalAmount; 583 originalAmountHasBeenModified = true; 584 clearHashAndString(); 585 } 586 } 587 588 public boolean getOriginalAmountHasBeenModified() { 589 return originalAmountHasBeenModified; 590 } 591 592 public Long getAmount() { 593 return amount; 594 } 595 596 public void setAmount(Long amount) 597 throws PersistenceNotNullException { 598 checkForNull(amount); 599 600 boolean update = true; 601 602 if(this.amount != null) { 603 if(this.amount.equals(amount)) { 604 update = false; 605 } 606 } else if(amount == null) { 607 update = false; 608 } 609 610 if(update) { 611 this.amount = amount; 612 amountHasBeenModified = true; 613 clearHashAndString(); 614 } 615 } 616 617 public boolean getAmountHasBeenModified() { 618 return amountHasBeenModified; 619 } 620 621 public Long getFromTime() { 622 return fromTime; 623 } 624 625 public void setFromTime(Long fromTime) 626 throws PersistenceNotNullException { 627 checkForNull(fromTime); 628 629 boolean update = true; 630 631 if(this.fromTime != null) { 632 if(this.fromTime.equals(fromTime)) { 633 update = false; 634 } 635 } else if(fromTime == null) { 636 update = false; 637 } 638 639 if(update) { 640 this.fromTime = fromTime; 641 fromTimeHasBeenModified = true; 642 clearHashAndString(); 643 } 644 } 645 646 public boolean getFromTimeHasBeenModified() { 647 return fromTimeHasBeenModified; 648 } 649 650 public Long getThruTime() { 651 return thruTime; 652 } 653 654 public void setThruTime(Long thruTime) 655 throws PersistenceNotNullException { 656 checkForNull(thruTime); 657 658 boolean update = true; 659 660 if(this.thruTime != null) { 661 if(this.thruTime.equals(thruTime)) { 662 update = false; 663 } 664 } else if(thruTime == null) { 665 update = false; 666 } 667 668 if(update) { 669 this.thruTime = thruTime; 670 thruTimeHasBeenModified = true; 671 clearHashAndString(); 672 } 673 } 674 675 public boolean getThruTimeHasBeenModified() { 676 return thruTimeHasBeenModified; 677 } 678 679}