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