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