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