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 * VendorValue.java
021 */
022
023package com.echothree.model.data.vendor.server.value;
024
025import com.echothree.model.data.vendor.common.pk.VendorPK;
026
027import com.echothree.model.data.vendor.server.factory.VendorFactory;
028
029import com.echothree.model.data.party.common.pk.PartyPK;
030import com.echothree.model.data.vendor.common.pk.VendorTypePK;
031import com.echothree.model.data.item.common.pk.ItemAliasTypePK;
032import com.echothree.model.data.cancellationpolicy.common.pk.CancellationPolicyPK;
033import com.echothree.model.data.returnpolicy.common.pk.ReturnPolicyPK;
034import com.echothree.model.data.accounting.common.pk.GlAccountPK;
035import com.echothree.model.data.selector.common.pk.SelectorPK;
036import com.echothree.model.data.filter.common.pk.FilterPK;
037
038import com.echothree.util.common.exception.PersistenceCloneException;
039import com.echothree.util.common.exception.PersistenceNotNullException;
040
041import com.echothree.util.server.persistence.BaseValue;
042
043import java.io.Serializable;
044
045public class VendorValue
046        extends BaseValue<VendorPK>
047        implements Cloneable, Serializable {
048    
049    private PartyPK partyPK;
050    private boolean partyPKHasBeenModified = false;
051    private String vendorName;
052    private boolean vendorNameHasBeenModified = false;
053    private VendorTypePK vendorTypePK;
054    private boolean vendorTypePKHasBeenModified = false;
055    private Integer minimumPurchaseOrderLines;
056    private boolean minimumPurchaseOrderLinesHasBeenModified = false;
057    private Integer maximumPurchaseOrderLines;
058    private boolean maximumPurchaseOrderLinesHasBeenModified = false;
059    private Long minimumPurchaseOrderAmount;
060    private boolean minimumPurchaseOrderAmountHasBeenModified = false;
061    private Long maximumPurchaseOrderAmount;
062    private boolean maximumPurchaseOrderAmountHasBeenModified = false;
063    private Boolean useItemPurchasingCategories;
064    private boolean useItemPurchasingCategoriesHasBeenModified = false;
065    private ItemAliasTypePK defaultItemAliasTypePK;
066    private boolean defaultItemAliasTypePKHasBeenModified = false;
067    private CancellationPolicyPK cancellationPolicyPK;
068    private boolean cancellationPolicyPKHasBeenModified = false;
069    private ReturnPolicyPK returnPolicyPK;
070    private boolean returnPolicyPKHasBeenModified = false;
071    private GlAccountPK apGlAccountPK;
072    private boolean apGlAccountPKHasBeenModified = false;
073    private Boolean holdUntilComplete;
074    private boolean holdUntilCompleteHasBeenModified = false;
075    private Boolean allowBackorders;
076    private boolean allowBackordersHasBeenModified = false;
077    private Boolean allowSubstitutions;
078    private boolean allowSubstitutionsHasBeenModified = false;
079    private Boolean allowCombiningShipments;
080    private boolean allowCombiningShipmentsHasBeenModified = false;
081    private Boolean requireReference;
082    private boolean requireReferenceHasBeenModified = false;
083    private Boolean allowReferenceDuplicates;
084    private boolean allowReferenceDuplicatesHasBeenModified = false;
085    private String referenceValidationPattern;
086    private boolean referenceValidationPatternHasBeenModified = false;
087    private SelectorPK vendorItemSelectorPK;
088    private boolean vendorItemSelectorPKHasBeenModified = false;
089    private FilterPK vendorItemCostFilterPK;
090    private boolean vendorItemCostFilterPKHasBeenModified = false;
091    private Long fromTime;
092    private boolean fromTimeHasBeenModified = false;
093    private Long thruTime;
094    private boolean thruTimeHasBeenModified = false;
095    
096    private transient Integer _hashCode = null;
097    private transient String _stringValue = null;
098    
099    private void constructFields(PartyPK partyPK, String vendorName, VendorTypePK vendorTypePK, Integer minimumPurchaseOrderLines, Integer maximumPurchaseOrderLines, Long minimumPurchaseOrderAmount, Long maximumPurchaseOrderAmount, Boolean useItemPurchasingCategories, ItemAliasTypePK defaultItemAliasTypePK, CancellationPolicyPK cancellationPolicyPK, ReturnPolicyPK returnPolicyPK, GlAccountPK apGlAccountPK, Boolean holdUntilComplete, Boolean allowBackorders, Boolean allowSubstitutions, Boolean allowCombiningShipments, Boolean requireReference, Boolean allowReferenceDuplicates, String referenceValidationPattern, SelectorPK vendorItemSelectorPK, FilterPK vendorItemCostFilterPK, Long fromTime, Long thruTime)
100            throws PersistenceNotNullException {
101        checkForNull(partyPK);
102        this.partyPK = partyPK;
103        checkForNull(vendorName);
104        this.vendorName = vendorName;
105        checkForNull(vendorTypePK);
106        this.vendorTypePK = vendorTypePK;
107        this.minimumPurchaseOrderLines = minimumPurchaseOrderLines;
108        this.maximumPurchaseOrderLines = maximumPurchaseOrderLines;
109        this.minimumPurchaseOrderAmount = minimumPurchaseOrderAmount;
110        this.maximumPurchaseOrderAmount = maximumPurchaseOrderAmount;
111        checkForNull(useItemPurchasingCategories);
112        this.useItemPurchasingCategories = useItemPurchasingCategories;
113        this.defaultItemAliasTypePK = defaultItemAliasTypePK;
114        this.cancellationPolicyPK = cancellationPolicyPK;
115        this.returnPolicyPK = returnPolicyPK;
116        this.apGlAccountPK = apGlAccountPK;
117        checkForNull(holdUntilComplete);
118        this.holdUntilComplete = holdUntilComplete;
119        checkForNull(allowBackorders);
120        this.allowBackorders = allowBackorders;
121        checkForNull(allowSubstitutions);
122        this.allowSubstitutions = allowSubstitutions;
123        checkForNull(allowCombiningShipments);
124        this.allowCombiningShipments = allowCombiningShipments;
125        checkForNull(requireReference);
126        this.requireReference = requireReference;
127        checkForNull(allowReferenceDuplicates);
128        this.allowReferenceDuplicates = allowReferenceDuplicates;
129        this.referenceValidationPattern = referenceValidationPattern;
130        this.vendorItemSelectorPK = vendorItemSelectorPK;
131        this.vendorItemCostFilterPK = vendorItemCostFilterPK;
132        checkForNull(fromTime);
133        this.fromTime = fromTime;
134        checkForNull(thruTime);
135        this.thruTime = thruTime;
136    }
137    
138    /** Creates a new instance of VendorValue */
139    public VendorValue(VendorPK vendorPK, PartyPK partyPK, String vendorName, VendorTypePK vendorTypePK, Integer minimumPurchaseOrderLines, Integer maximumPurchaseOrderLines, Long minimumPurchaseOrderAmount, Long maximumPurchaseOrderAmount, Boolean useItemPurchasingCategories, ItemAliasTypePK defaultItemAliasTypePK, CancellationPolicyPK cancellationPolicyPK, ReturnPolicyPK returnPolicyPK, GlAccountPK apGlAccountPK, Boolean holdUntilComplete, Boolean allowBackorders, Boolean allowSubstitutions, Boolean allowCombiningShipments, Boolean requireReference, Boolean allowReferenceDuplicates, String referenceValidationPattern, SelectorPK vendorItemSelectorPK, FilterPK vendorItemCostFilterPK, Long fromTime, Long thruTime)
140            throws PersistenceNotNullException {
141        super(vendorPK);
142        constructFields(partyPK, vendorName, vendorTypePK, minimumPurchaseOrderLines, maximumPurchaseOrderLines, minimumPurchaseOrderAmount, maximumPurchaseOrderAmount, useItemPurchasingCategories, defaultItemAliasTypePK, cancellationPolicyPK, returnPolicyPK, apGlAccountPK, holdUntilComplete, allowBackorders, allowSubstitutions, allowCombiningShipments, requireReference, allowReferenceDuplicates, referenceValidationPattern, vendorItemSelectorPK, vendorItemCostFilterPK, fromTime, thruTime);
143    }
144    
145    /** Creates a new instance of VendorValue */
146    public VendorValue(PartyPK partyPK, String vendorName, VendorTypePK vendorTypePK, Integer minimumPurchaseOrderLines, Integer maximumPurchaseOrderLines, Long minimumPurchaseOrderAmount, Long maximumPurchaseOrderAmount, Boolean useItemPurchasingCategories, ItemAliasTypePK defaultItemAliasTypePK, CancellationPolicyPK cancellationPolicyPK, ReturnPolicyPK returnPolicyPK, GlAccountPK apGlAccountPK, Boolean holdUntilComplete, Boolean allowBackorders, Boolean allowSubstitutions, Boolean allowCombiningShipments, Boolean requireReference, Boolean allowReferenceDuplicates, String referenceValidationPattern, SelectorPK vendorItemSelectorPK, FilterPK vendorItemCostFilterPK, Long fromTime, Long thruTime)
147            throws PersistenceNotNullException {
148        super();
149        constructFields(partyPK, vendorName, vendorTypePK, minimumPurchaseOrderLines, maximumPurchaseOrderLines, minimumPurchaseOrderAmount, maximumPurchaseOrderAmount, useItemPurchasingCategories, defaultItemAliasTypePK, cancellationPolicyPK, returnPolicyPK, apGlAccountPK, holdUntilComplete, allowBackorders, allowSubstitutions, allowCombiningShipments, requireReference, allowReferenceDuplicates, referenceValidationPattern, vendorItemSelectorPK, vendorItemCostFilterPK, fromTime, thruTime);
150    }
151    
152   @Override
153   public VendorFactory getBaseFactoryInstance() {
154        return VendorFactory.getInstance();
155    }
156    
157    @Override
158    public VendorValue clone() {
159        Object result;
160        
161        try {
162            result = super.clone();
163        } catch (CloneNotSupportedException cnse) {
164            // This shouldn't happen, fail when it does.
165            throw new PersistenceCloneException(cnse);
166        }
167        
168        return (VendorValue)result;
169    }
170    
171   @Override
172    public VendorPK getPrimaryKey() {
173        if(_primaryKey == null) {
174            _primaryKey = new VendorPK(entityId);
175        }
176        
177        return _primaryKey;
178    }
179    
180    private void clearHashAndString() {
181        _hashCode = null;
182        _stringValue = null;
183    }
184    
185    @Override
186    public int hashCode() {
187        if(_hashCode == null) {
188            int hashCode = 17;
189            
190            hashCode = 37 * hashCode + ((entityId != null) ? entityId.hashCode() : 0);
191            
192            hashCode = 37 * hashCode + ((partyPK != null) ? partyPK.hashCode() : 0);
193            hashCode = 37 * hashCode + ((vendorName != null) ? vendorName.hashCode() : 0);
194            hashCode = 37 * hashCode + ((vendorTypePK != null) ? vendorTypePK.hashCode() : 0);
195            hashCode = 37 * hashCode + ((minimumPurchaseOrderLines != null) ? minimumPurchaseOrderLines.hashCode() : 0);
196            hashCode = 37 * hashCode + ((maximumPurchaseOrderLines != null) ? maximumPurchaseOrderLines.hashCode() : 0);
197            hashCode = 37 * hashCode + ((minimumPurchaseOrderAmount != null) ? minimumPurchaseOrderAmount.hashCode() : 0);
198            hashCode = 37 * hashCode + ((maximumPurchaseOrderAmount != null) ? maximumPurchaseOrderAmount.hashCode() : 0);
199            hashCode = 37 * hashCode + ((useItemPurchasingCategories != null) ? useItemPurchasingCategories.hashCode() : 0);
200            hashCode = 37 * hashCode + ((defaultItemAliasTypePK != null) ? defaultItemAliasTypePK.hashCode() : 0);
201            hashCode = 37 * hashCode + ((cancellationPolicyPK != null) ? cancellationPolicyPK.hashCode() : 0);
202            hashCode = 37 * hashCode + ((returnPolicyPK != null) ? returnPolicyPK.hashCode() : 0);
203            hashCode = 37 * hashCode + ((apGlAccountPK != null) ? apGlAccountPK.hashCode() : 0);
204            hashCode = 37 * hashCode + ((holdUntilComplete != null) ? holdUntilComplete.hashCode() : 0);
205            hashCode = 37 * hashCode + ((allowBackorders != null) ? allowBackorders.hashCode() : 0);
206            hashCode = 37 * hashCode + ((allowSubstitutions != null) ? allowSubstitutions.hashCode() : 0);
207            hashCode = 37 * hashCode + ((allowCombiningShipments != null) ? allowCombiningShipments.hashCode() : 0);
208            hashCode = 37 * hashCode + ((requireReference != null) ? requireReference.hashCode() : 0);
209            hashCode = 37 * hashCode + ((allowReferenceDuplicates != null) ? allowReferenceDuplicates.hashCode() : 0);
210            hashCode = 37 * hashCode + ((referenceValidationPattern != null) ? referenceValidationPattern.hashCode() : 0);
211            hashCode = 37 * hashCode + ((vendorItemSelectorPK != null) ? vendorItemSelectorPK.hashCode() : 0);
212            hashCode = 37 * hashCode + ((vendorItemCostFilterPK != null) ? vendorItemCostFilterPK.hashCode() : 0);
213            hashCode = 37 * hashCode + ((fromTime != null) ? fromTime.hashCode() : 0);
214            hashCode = 37 * hashCode + ((thruTime != null) ? thruTime.hashCode() : 0);
215            
216            _hashCode = hashCode;
217        }
218        
219        return _hashCode;
220    }
221    
222    @Override
223    public String toString() {
224        if(_stringValue == null) {
225            StringBuilder stringValue = new StringBuilder("{");
226            
227            stringValue.append("entityId=").append(getEntityId());
228            
229            stringValue.append(", partyPK=").append(getPartyPK());
230            stringValue.append(", vendorName=").append(getVendorName());
231            stringValue.append(", vendorTypePK=").append(getVendorTypePK());
232            stringValue.append(", minimumPurchaseOrderLines=").append(getMinimumPurchaseOrderLines());
233            stringValue.append(", maximumPurchaseOrderLines=").append(getMaximumPurchaseOrderLines());
234            stringValue.append(", minimumPurchaseOrderAmount=").append(getMinimumPurchaseOrderAmount());
235            stringValue.append(", maximumPurchaseOrderAmount=").append(getMaximumPurchaseOrderAmount());
236            stringValue.append(", useItemPurchasingCategories=").append(getUseItemPurchasingCategories());
237            stringValue.append(", defaultItemAliasTypePK=").append(getDefaultItemAliasTypePK());
238            stringValue.append(", cancellationPolicyPK=").append(getCancellationPolicyPK());
239            stringValue.append(", returnPolicyPK=").append(getReturnPolicyPK());
240            stringValue.append(", apGlAccountPK=").append(getApGlAccountPK());
241            stringValue.append(", holdUntilComplete=").append(getHoldUntilComplete());
242            stringValue.append(", allowBackorders=").append(getAllowBackorders());
243            stringValue.append(", allowSubstitutions=").append(getAllowSubstitutions());
244            stringValue.append(", allowCombiningShipments=").append(getAllowCombiningShipments());
245            stringValue.append(", requireReference=").append(getRequireReference());
246            stringValue.append(", allowReferenceDuplicates=").append(getAllowReferenceDuplicates());
247            stringValue.append(", referenceValidationPattern=").append(getReferenceValidationPattern());
248            stringValue.append(", vendorItemSelectorPK=").append(getVendorItemSelectorPK());
249            stringValue.append(", vendorItemCostFilterPK=").append(getVendorItemCostFilterPK());
250            stringValue.append(", fromTime=").append(getFromTime());
251            stringValue.append(", thruTime=").append(getThruTime());
252            
253            stringValue.append('}');
254            
255            _stringValue = stringValue.toString();
256        }
257        return _stringValue;
258    }
259    
260    @Override
261    public boolean equals(Object other) {
262        if(this == other)
263            return true;
264        
265        if(!hasIdentity())
266            return false;
267        
268        if(other instanceof  VendorValue) {
269            VendorValue that = (VendorValue)other;
270            
271            if(!that.hasIdentity())
272                return false;
273            
274            Long thisEntityId = getEntityId();
275            Long thatEntityId = that.getEntityId();
276            
277            boolean objectsEqual = thisEntityId.equals(thatEntityId);
278            if(objectsEqual)
279                objectsEqual = objectsEqual && isIdentical(that);
280            
281            return objectsEqual;
282        } else {
283            return false;
284        }
285    }
286    
287    public boolean isIdentical(Object other) {
288        if(other instanceof VendorValue) {
289            VendorValue that = (VendorValue)other;
290            boolean objectsEqual = true;
291            
292            
293            if(objectsEqual) {
294                PartyPK thisPartyPK = getPartyPK();
295                PartyPK thatPartyPK = that.getPartyPK();
296                
297                if(thisPartyPK == null) {
298                    objectsEqual = objectsEqual && (thatPartyPK == null);
299                } else {
300                    objectsEqual = objectsEqual && thisPartyPK.equals(thatPartyPK);
301                }
302            }
303            
304            if(objectsEqual) {
305                String thisVendorName = getVendorName();
306                String thatVendorName = that.getVendorName();
307                
308                if(thisVendorName == null) {
309                    objectsEqual = objectsEqual && (thatVendorName == null);
310                } else {
311                    objectsEqual = objectsEqual && thisVendorName.equals(thatVendorName);
312                }
313            }
314            
315            if(objectsEqual) {
316                VendorTypePK thisVendorTypePK = getVendorTypePK();
317                VendorTypePK thatVendorTypePK = that.getVendorTypePK();
318                
319                if(thisVendorTypePK == null) {
320                    objectsEqual = objectsEqual && (thatVendorTypePK == null);
321                } else {
322                    objectsEqual = objectsEqual && thisVendorTypePK.equals(thatVendorTypePK);
323                }
324            }
325            
326            if(objectsEqual) {
327                Integer thisMinimumPurchaseOrderLines = getMinimumPurchaseOrderLines();
328                Integer thatMinimumPurchaseOrderLines = that.getMinimumPurchaseOrderLines();
329                
330                if(thisMinimumPurchaseOrderLines == null) {
331                    objectsEqual = objectsEqual && (thatMinimumPurchaseOrderLines == null);
332                } else {
333                    objectsEqual = objectsEqual && thisMinimumPurchaseOrderLines.equals(thatMinimumPurchaseOrderLines);
334                }
335            }
336            
337            if(objectsEqual) {
338                Integer thisMaximumPurchaseOrderLines = getMaximumPurchaseOrderLines();
339                Integer thatMaximumPurchaseOrderLines = that.getMaximumPurchaseOrderLines();
340                
341                if(thisMaximumPurchaseOrderLines == null) {
342                    objectsEqual = objectsEqual && (thatMaximumPurchaseOrderLines == null);
343                } else {
344                    objectsEqual = objectsEqual && thisMaximumPurchaseOrderLines.equals(thatMaximumPurchaseOrderLines);
345                }
346            }
347            
348            if(objectsEqual) {
349                Long thisMinimumPurchaseOrderAmount = getMinimumPurchaseOrderAmount();
350                Long thatMinimumPurchaseOrderAmount = that.getMinimumPurchaseOrderAmount();
351                
352                if(thisMinimumPurchaseOrderAmount == null) {
353                    objectsEqual = objectsEqual && (thatMinimumPurchaseOrderAmount == null);
354                } else {
355                    objectsEqual = objectsEqual && thisMinimumPurchaseOrderAmount.equals(thatMinimumPurchaseOrderAmount);
356                }
357            }
358            
359            if(objectsEqual) {
360                Long thisMaximumPurchaseOrderAmount = getMaximumPurchaseOrderAmount();
361                Long thatMaximumPurchaseOrderAmount = that.getMaximumPurchaseOrderAmount();
362                
363                if(thisMaximumPurchaseOrderAmount == null) {
364                    objectsEqual = objectsEqual && (thatMaximumPurchaseOrderAmount == null);
365                } else {
366                    objectsEqual = objectsEqual && thisMaximumPurchaseOrderAmount.equals(thatMaximumPurchaseOrderAmount);
367                }
368            }
369            
370            if(objectsEqual) {
371                Boolean thisUseItemPurchasingCategories = getUseItemPurchasingCategories();
372                Boolean thatUseItemPurchasingCategories = that.getUseItemPurchasingCategories();
373                
374                if(thisUseItemPurchasingCategories == null) {
375                    objectsEqual = objectsEqual && (thatUseItemPurchasingCategories == null);
376                } else {
377                    objectsEqual = objectsEqual && thisUseItemPurchasingCategories.equals(thatUseItemPurchasingCategories);
378                }
379            }
380            
381            if(objectsEqual) {
382                ItemAliasTypePK thisDefaultItemAliasTypePK = getDefaultItemAliasTypePK();
383                ItemAliasTypePK thatDefaultItemAliasTypePK = that.getDefaultItemAliasTypePK();
384                
385                if(thisDefaultItemAliasTypePK == null) {
386                    objectsEqual = objectsEqual && (thatDefaultItemAliasTypePK == null);
387                } else {
388                    objectsEqual = objectsEqual && thisDefaultItemAliasTypePK.equals(thatDefaultItemAliasTypePK);
389                }
390            }
391            
392            if(objectsEqual) {
393                CancellationPolicyPK thisCancellationPolicyPK = getCancellationPolicyPK();
394                CancellationPolicyPK thatCancellationPolicyPK = that.getCancellationPolicyPK();
395                
396                if(thisCancellationPolicyPK == null) {
397                    objectsEqual = objectsEqual && (thatCancellationPolicyPK == null);
398                } else {
399                    objectsEqual = objectsEqual && thisCancellationPolicyPK.equals(thatCancellationPolicyPK);
400                }
401            }
402            
403            if(objectsEqual) {
404                ReturnPolicyPK thisReturnPolicyPK = getReturnPolicyPK();
405                ReturnPolicyPK thatReturnPolicyPK = that.getReturnPolicyPK();
406                
407                if(thisReturnPolicyPK == null) {
408                    objectsEqual = objectsEqual && (thatReturnPolicyPK == null);
409                } else {
410                    objectsEqual = objectsEqual && thisReturnPolicyPK.equals(thatReturnPolicyPK);
411                }
412            }
413            
414            if(objectsEqual) {
415                GlAccountPK thisApGlAccountPK = getApGlAccountPK();
416                GlAccountPK thatApGlAccountPK = that.getApGlAccountPK();
417                
418                if(thisApGlAccountPK == null) {
419                    objectsEqual = objectsEqual && (thatApGlAccountPK == null);
420                } else {
421                    objectsEqual = objectsEqual && thisApGlAccountPK.equals(thatApGlAccountPK);
422                }
423            }
424            
425            if(objectsEqual) {
426                Boolean thisHoldUntilComplete = getHoldUntilComplete();
427                Boolean thatHoldUntilComplete = that.getHoldUntilComplete();
428                
429                if(thisHoldUntilComplete == null) {
430                    objectsEqual = objectsEqual && (thatHoldUntilComplete == null);
431                } else {
432                    objectsEqual = objectsEqual && thisHoldUntilComplete.equals(thatHoldUntilComplete);
433                }
434            }
435            
436            if(objectsEqual) {
437                Boolean thisAllowBackorders = getAllowBackorders();
438                Boolean thatAllowBackorders = that.getAllowBackorders();
439                
440                if(thisAllowBackorders == null) {
441                    objectsEqual = objectsEqual && (thatAllowBackorders == null);
442                } else {
443                    objectsEqual = objectsEqual && thisAllowBackorders.equals(thatAllowBackorders);
444                }
445            }
446            
447            if(objectsEqual) {
448                Boolean thisAllowSubstitutions = getAllowSubstitutions();
449                Boolean thatAllowSubstitutions = that.getAllowSubstitutions();
450                
451                if(thisAllowSubstitutions == null) {
452                    objectsEqual = objectsEqual && (thatAllowSubstitutions == null);
453                } else {
454                    objectsEqual = objectsEqual && thisAllowSubstitutions.equals(thatAllowSubstitutions);
455                }
456            }
457            
458            if(objectsEqual) {
459                Boolean thisAllowCombiningShipments = getAllowCombiningShipments();
460                Boolean thatAllowCombiningShipments = that.getAllowCombiningShipments();
461                
462                if(thisAllowCombiningShipments == null) {
463                    objectsEqual = objectsEqual && (thatAllowCombiningShipments == null);
464                } else {
465                    objectsEqual = objectsEqual && thisAllowCombiningShipments.equals(thatAllowCombiningShipments);
466                }
467            }
468            
469            if(objectsEqual) {
470                Boolean thisRequireReference = getRequireReference();
471                Boolean thatRequireReference = that.getRequireReference();
472                
473                if(thisRequireReference == null) {
474                    objectsEqual = objectsEqual && (thatRequireReference == null);
475                } else {
476                    objectsEqual = objectsEqual && thisRequireReference.equals(thatRequireReference);
477                }
478            }
479            
480            if(objectsEqual) {
481                Boolean thisAllowReferenceDuplicates = getAllowReferenceDuplicates();
482                Boolean thatAllowReferenceDuplicates = that.getAllowReferenceDuplicates();
483                
484                if(thisAllowReferenceDuplicates == null) {
485                    objectsEqual = objectsEqual && (thatAllowReferenceDuplicates == null);
486                } else {
487                    objectsEqual = objectsEqual && thisAllowReferenceDuplicates.equals(thatAllowReferenceDuplicates);
488                }
489            }
490            
491            if(objectsEqual) {
492                String thisReferenceValidationPattern = getReferenceValidationPattern();
493                String thatReferenceValidationPattern = that.getReferenceValidationPattern();
494                
495                if(thisReferenceValidationPattern == null) {
496                    objectsEqual = objectsEqual && (thatReferenceValidationPattern == null);
497                } else {
498                    objectsEqual = objectsEqual && thisReferenceValidationPattern.equals(thatReferenceValidationPattern);
499                }
500            }
501            
502            if(objectsEqual) {
503                SelectorPK thisVendorItemSelectorPK = getVendorItemSelectorPK();
504                SelectorPK thatVendorItemSelectorPK = that.getVendorItemSelectorPK();
505                
506                if(thisVendorItemSelectorPK == null) {
507                    objectsEqual = objectsEqual && (thatVendorItemSelectorPK == null);
508                } else {
509                    objectsEqual = objectsEqual && thisVendorItemSelectorPK.equals(thatVendorItemSelectorPK);
510                }
511            }
512            
513            if(objectsEqual) {
514                FilterPK thisVendorItemCostFilterPK = getVendorItemCostFilterPK();
515                FilterPK thatVendorItemCostFilterPK = that.getVendorItemCostFilterPK();
516                
517                if(thisVendorItemCostFilterPK == null) {
518                    objectsEqual = objectsEqual && (thatVendorItemCostFilterPK == null);
519                } else {
520                    objectsEqual = objectsEqual && thisVendorItemCostFilterPK.equals(thatVendorItemCostFilterPK);
521                }
522            }
523            
524            if(objectsEqual) {
525                Long thisFromTime = getFromTime();
526                Long thatFromTime = that.getFromTime();
527                
528                if(thisFromTime == null) {
529                    objectsEqual = objectsEqual && (thatFromTime == null);
530                } else {
531                    objectsEqual = objectsEqual && thisFromTime.equals(thatFromTime);
532                }
533            }
534            
535            if(objectsEqual) {
536                Long thisThruTime = getThruTime();
537                Long thatThruTime = that.getThruTime();
538                
539                if(thisThruTime == null) {
540                    objectsEqual = objectsEqual && (thatThruTime == null);
541                } else {
542                    objectsEqual = objectsEqual && thisThruTime.equals(thatThruTime);
543                }
544            }
545            
546            return objectsEqual;
547        } else {
548            return false;
549        }
550    }
551    
552    @Override
553    public boolean hasBeenModified() {
554        return partyPKHasBeenModified || vendorNameHasBeenModified || vendorTypePKHasBeenModified || minimumPurchaseOrderLinesHasBeenModified || maximumPurchaseOrderLinesHasBeenModified || minimumPurchaseOrderAmountHasBeenModified || maximumPurchaseOrderAmountHasBeenModified || useItemPurchasingCategoriesHasBeenModified || defaultItemAliasTypePKHasBeenModified || cancellationPolicyPKHasBeenModified || returnPolicyPKHasBeenModified || apGlAccountPKHasBeenModified || holdUntilCompleteHasBeenModified || allowBackordersHasBeenModified || allowSubstitutionsHasBeenModified || allowCombiningShipmentsHasBeenModified || requireReferenceHasBeenModified || allowReferenceDuplicatesHasBeenModified || referenceValidationPatternHasBeenModified || vendorItemSelectorPKHasBeenModified || vendorItemCostFilterPKHasBeenModified || fromTimeHasBeenModified || thruTimeHasBeenModified;
555    }
556    
557    @Override
558    public void clearHasBeenModified() {
559        partyPKHasBeenModified = false;
560        vendorNameHasBeenModified = false;
561        vendorTypePKHasBeenModified = false;
562        minimumPurchaseOrderLinesHasBeenModified = false;
563        maximumPurchaseOrderLinesHasBeenModified = false;
564        minimumPurchaseOrderAmountHasBeenModified = false;
565        maximumPurchaseOrderAmountHasBeenModified = false;
566        useItemPurchasingCategoriesHasBeenModified = false;
567        defaultItemAliasTypePKHasBeenModified = false;
568        cancellationPolicyPKHasBeenModified = false;
569        returnPolicyPKHasBeenModified = false;
570        apGlAccountPKHasBeenModified = false;
571        holdUntilCompleteHasBeenModified = false;
572        allowBackordersHasBeenModified = false;
573        allowSubstitutionsHasBeenModified = false;
574        allowCombiningShipmentsHasBeenModified = false;
575        requireReferenceHasBeenModified = false;
576        allowReferenceDuplicatesHasBeenModified = false;
577        referenceValidationPatternHasBeenModified = false;
578        vendorItemSelectorPKHasBeenModified = false;
579        vendorItemCostFilterPKHasBeenModified = false;
580        fromTimeHasBeenModified = false;
581        thruTimeHasBeenModified = false;
582    }
583    
584    public PartyPK getPartyPK() {
585        return partyPK;
586    }
587    
588    public void setPartyPK(PartyPK partyPK)
589            throws PersistenceNotNullException {
590        checkForNull(partyPK);
591        
592        boolean update = true;
593        
594        if(this.partyPK != null) {
595            if(this.partyPK.equals(partyPK)) {
596                update = false;
597            }
598        } else if(partyPK == null) {
599            update = false;
600        }
601        
602        if(update) {
603            this.partyPK = partyPK;
604            partyPKHasBeenModified = true;
605            clearHashAndString();
606        }
607    }
608    
609    public boolean getPartyPKHasBeenModified() {
610        return partyPKHasBeenModified;
611    }
612    
613    public String getVendorName() {
614        return vendorName;
615    }
616    
617    public void setVendorName(String vendorName)
618            throws PersistenceNotNullException {
619        checkForNull(vendorName);
620        
621        boolean update = true;
622        
623        if(this.vendorName != null) {
624            if(this.vendorName.equals(vendorName)) {
625                update = false;
626            }
627        } else if(vendorName == null) {
628            update = false;
629        }
630        
631        if(update) {
632            this.vendorName = vendorName;
633            vendorNameHasBeenModified = true;
634            clearHashAndString();
635        }
636    }
637    
638    public boolean getVendorNameHasBeenModified() {
639        return vendorNameHasBeenModified;
640    }
641    
642    public VendorTypePK getVendorTypePK() {
643        return vendorTypePK;
644    }
645    
646    public void setVendorTypePK(VendorTypePK vendorTypePK)
647            throws PersistenceNotNullException {
648        checkForNull(vendorTypePK);
649        
650        boolean update = true;
651        
652        if(this.vendorTypePK != null) {
653            if(this.vendorTypePK.equals(vendorTypePK)) {
654                update = false;
655            }
656        } else if(vendorTypePK == null) {
657            update = false;
658        }
659        
660        if(update) {
661            this.vendorTypePK = vendorTypePK;
662            vendorTypePKHasBeenModified = true;
663            clearHashAndString();
664        }
665    }
666    
667    public boolean getVendorTypePKHasBeenModified() {
668        return vendorTypePKHasBeenModified;
669    }
670    
671    public Integer getMinimumPurchaseOrderLines() {
672        return minimumPurchaseOrderLines;
673    }
674    
675    public void setMinimumPurchaseOrderLines(Integer minimumPurchaseOrderLines) {
676        boolean update = true;
677        
678        if(this.minimumPurchaseOrderLines != null) {
679            if(this.minimumPurchaseOrderLines.equals(minimumPurchaseOrderLines)) {
680                update = false;
681            }
682        } else if(minimumPurchaseOrderLines == null) {
683            update = false;
684        }
685        
686        if(update) {
687            this.minimumPurchaseOrderLines = minimumPurchaseOrderLines;
688            minimumPurchaseOrderLinesHasBeenModified = true;
689            clearHashAndString();
690        }
691    }
692    
693    public boolean getMinimumPurchaseOrderLinesHasBeenModified() {
694        return minimumPurchaseOrderLinesHasBeenModified;
695    }
696    
697    public Integer getMaximumPurchaseOrderLines() {
698        return maximumPurchaseOrderLines;
699    }
700    
701    public void setMaximumPurchaseOrderLines(Integer maximumPurchaseOrderLines) {
702        boolean update = true;
703        
704        if(this.maximumPurchaseOrderLines != null) {
705            if(this.maximumPurchaseOrderLines.equals(maximumPurchaseOrderLines)) {
706                update = false;
707            }
708        } else if(maximumPurchaseOrderLines == null) {
709            update = false;
710        }
711        
712        if(update) {
713            this.maximumPurchaseOrderLines = maximumPurchaseOrderLines;
714            maximumPurchaseOrderLinesHasBeenModified = true;
715            clearHashAndString();
716        }
717    }
718    
719    public boolean getMaximumPurchaseOrderLinesHasBeenModified() {
720        return maximumPurchaseOrderLinesHasBeenModified;
721    }
722    
723    public Long getMinimumPurchaseOrderAmount() {
724        return minimumPurchaseOrderAmount;
725    }
726    
727    public void setMinimumPurchaseOrderAmount(Long minimumPurchaseOrderAmount) {
728        boolean update = true;
729        
730        if(this.minimumPurchaseOrderAmount != null) {
731            if(this.minimumPurchaseOrderAmount.equals(minimumPurchaseOrderAmount)) {
732                update = false;
733            }
734        } else if(minimumPurchaseOrderAmount == null) {
735            update = false;
736        }
737        
738        if(update) {
739            this.minimumPurchaseOrderAmount = minimumPurchaseOrderAmount;
740            minimumPurchaseOrderAmountHasBeenModified = true;
741            clearHashAndString();
742        }
743    }
744    
745    public boolean getMinimumPurchaseOrderAmountHasBeenModified() {
746        return minimumPurchaseOrderAmountHasBeenModified;
747    }
748    
749    public Long getMaximumPurchaseOrderAmount() {
750        return maximumPurchaseOrderAmount;
751    }
752    
753    public void setMaximumPurchaseOrderAmount(Long maximumPurchaseOrderAmount) {
754        boolean update = true;
755        
756        if(this.maximumPurchaseOrderAmount != null) {
757            if(this.maximumPurchaseOrderAmount.equals(maximumPurchaseOrderAmount)) {
758                update = false;
759            }
760        } else if(maximumPurchaseOrderAmount == null) {
761            update = false;
762        }
763        
764        if(update) {
765            this.maximumPurchaseOrderAmount = maximumPurchaseOrderAmount;
766            maximumPurchaseOrderAmountHasBeenModified = true;
767            clearHashAndString();
768        }
769    }
770    
771    public boolean getMaximumPurchaseOrderAmountHasBeenModified() {
772        return maximumPurchaseOrderAmountHasBeenModified;
773    }
774    
775    public Boolean getUseItemPurchasingCategories() {
776        return useItemPurchasingCategories;
777    }
778    
779    public void setUseItemPurchasingCategories(Boolean useItemPurchasingCategories)
780            throws PersistenceNotNullException {
781        checkForNull(useItemPurchasingCategories);
782        
783        boolean update = true;
784        
785        if(this.useItemPurchasingCategories != null) {
786            if(this.useItemPurchasingCategories.equals(useItemPurchasingCategories)) {
787                update = false;
788            }
789        } else if(useItemPurchasingCategories == null) {
790            update = false;
791        }
792        
793        if(update) {
794            this.useItemPurchasingCategories = useItemPurchasingCategories;
795            useItemPurchasingCategoriesHasBeenModified = true;
796            clearHashAndString();
797        }
798    }
799    
800    public boolean getUseItemPurchasingCategoriesHasBeenModified() {
801        return useItemPurchasingCategoriesHasBeenModified;
802    }
803    
804    public ItemAliasTypePK getDefaultItemAliasTypePK() {
805        return defaultItemAliasTypePK;
806    }
807    
808    public void setDefaultItemAliasTypePK(ItemAliasTypePK defaultItemAliasTypePK) {
809        boolean update = true;
810        
811        if(this.defaultItemAliasTypePK != null) {
812            if(this.defaultItemAliasTypePK.equals(defaultItemAliasTypePK)) {
813                update = false;
814            }
815        } else if(defaultItemAliasTypePK == null) {
816            update = false;
817        }
818        
819        if(update) {
820            this.defaultItemAliasTypePK = defaultItemAliasTypePK;
821            defaultItemAliasTypePKHasBeenModified = true;
822            clearHashAndString();
823        }
824    }
825    
826    public boolean getDefaultItemAliasTypePKHasBeenModified() {
827        return defaultItemAliasTypePKHasBeenModified;
828    }
829    
830    public CancellationPolicyPK getCancellationPolicyPK() {
831        return cancellationPolicyPK;
832    }
833    
834    public void setCancellationPolicyPK(CancellationPolicyPK cancellationPolicyPK) {
835        boolean update = true;
836        
837        if(this.cancellationPolicyPK != null) {
838            if(this.cancellationPolicyPK.equals(cancellationPolicyPK)) {
839                update = false;
840            }
841        } else if(cancellationPolicyPK == null) {
842            update = false;
843        }
844        
845        if(update) {
846            this.cancellationPolicyPK = cancellationPolicyPK;
847            cancellationPolicyPKHasBeenModified = true;
848            clearHashAndString();
849        }
850    }
851    
852    public boolean getCancellationPolicyPKHasBeenModified() {
853        return cancellationPolicyPKHasBeenModified;
854    }
855    
856    public ReturnPolicyPK getReturnPolicyPK() {
857        return returnPolicyPK;
858    }
859    
860    public void setReturnPolicyPK(ReturnPolicyPK returnPolicyPK) {
861        boolean update = true;
862        
863        if(this.returnPolicyPK != null) {
864            if(this.returnPolicyPK.equals(returnPolicyPK)) {
865                update = false;
866            }
867        } else if(returnPolicyPK == null) {
868            update = false;
869        }
870        
871        if(update) {
872            this.returnPolicyPK = returnPolicyPK;
873            returnPolicyPKHasBeenModified = true;
874            clearHashAndString();
875        }
876    }
877    
878    public boolean getReturnPolicyPKHasBeenModified() {
879        return returnPolicyPKHasBeenModified;
880    }
881    
882    public GlAccountPK getApGlAccountPK() {
883        return apGlAccountPK;
884    }
885    
886    public void setApGlAccountPK(GlAccountPK apGlAccountPK) {
887        boolean update = true;
888        
889        if(this.apGlAccountPK != null) {
890            if(this.apGlAccountPK.equals(apGlAccountPK)) {
891                update = false;
892            }
893        } else if(apGlAccountPK == null) {
894            update = false;
895        }
896        
897        if(update) {
898            this.apGlAccountPK = apGlAccountPK;
899            apGlAccountPKHasBeenModified = true;
900            clearHashAndString();
901        }
902    }
903    
904    public boolean getApGlAccountPKHasBeenModified() {
905        return apGlAccountPKHasBeenModified;
906    }
907    
908    public Boolean getHoldUntilComplete() {
909        return holdUntilComplete;
910    }
911    
912    public void setHoldUntilComplete(Boolean holdUntilComplete)
913            throws PersistenceNotNullException {
914        checkForNull(holdUntilComplete);
915        
916        boolean update = true;
917        
918        if(this.holdUntilComplete != null) {
919            if(this.holdUntilComplete.equals(holdUntilComplete)) {
920                update = false;
921            }
922        } else if(holdUntilComplete == null) {
923            update = false;
924        }
925        
926        if(update) {
927            this.holdUntilComplete = holdUntilComplete;
928            holdUntilCompleteHasBeenModified = true;
929            clearHashAndString();
930        }
931    }
932    
933    public boolean getHoldUntilCompleteHasBeenModified() {
934        return holdUntilCompleteHasBeenModified;
935    }
936    
937    public Boolean getAllowBackorders() {
938        return allowBackorders;
939    }
940    
941    public void setAllowBackorders(Boolean allowBackorders)
942            throws PersistenceNotNullException {
943        checkForNull(allowBackorders);
944        
945        boolean update = true;
946        
947        if(this.allowBackorders != null) {
948            if(this.allowBackorders.equals(allowBackorders)) {
949                update = false;
950            }
951        } else if(allowBackorders == null) {
952            update = false;
953        }
954        
955        if(update) {
956            this.allowBackorders = allowBackorders;
957            allowBackordersHasBeenModified = true;
958            clearHashAndString();
959        }
960    }
961    
962    public boolean getAllowBackordersHasBeenModified() {
963        return allowBackordersHasBeenModified;
964    }
965    
966    public Boolean getAllowSubstitutions() {
967        return allowSubstitutions;
968    }
969    
970    public void setAllowSubstitutions(Boolean allowSubstitutions)
971            throws PersistenceNotNullException {
972        checkForNull(allowSubstitutions);
973        
974        boolean update = true;
975        
976        if(this.allowSubstitutions != null) {
977            if(this.allowSubstitutions.equals(allowSubstitutions)) {
978                update = false;
979            }
980        } else if(allowSubstitutions == null) {
981            update = false;
982        }
983        
984        if(update) {
985            this.allowSubstitutions = allowSubstitutions;
986            allowSubstitutionsHasBeenModified = true;
987            clearHashAndString();
988        }
989    }
990    
991    public boolean getAllowSubstitutionsHasBeenModified() {
992        return allowSubstitutionsHasBeenModified;
993    }
994    
995    public Boolean getAllowCombiningShipments() {
996        return allowCombiningShipments;
997    }
998    
999    public void setAllowCombiningShipments(Boolean allowCombiningShipments)
1000            throws PersistenceNotNullException {
1001        checkForNull(allowCombiningShipments);
1002        
1003        boolean update = true;
1004        
1005        if(this.allowCombiningShipments != null) {
1006            if(this.allowCombiningShipments.equals(allowCombiningShipments)) {
1007                update = false;
1008            }
1009        } else if(allowCombiningShipments == null) {
1010            update = false;
1011        }
1012        
1013        if(update) {
1014            this.allowCombiningShipments = allowCombiningShipments;
1015            allowCombiningShipmentsHasBeenModified = true;
1016            clearHashAndString();
1017        }
1018    }
1019    
1020    public boolean getAllowCombiningShipmentsHasBeenModified() {
1021        return allowCombiningShipmentsHasBeenModified;
1022    }
1023    
1024    public Boolean getRequireReference() {
1025        return requireReference;
1026    }
1027    
1028    public void setRequireReference(Boolean requireReference)
1029            throws PersistenceNotNullException {
1030        checkForNull(requireReference);
1031        
1032        boolean update = true;
1033        
1034        if(this.requireReference != null) {
1035            if(this.requireReference.equals(requireReference)) {
1036                update = false;
1037            }
1038        } else if(requireReference == null) {
1039            update = false;
1040        }
1041        
1042        if(update) {
1043            this.requireReference = requireReference;
1044            requireReferenceHasBeenModified = true;
1045            clearHashAndString();
1046        }
1047    }
1048    
1049    public boolean getRequireReferenceHasBeenModified() {
1050        return requireReferenceHasBeenModified;
1051    }
1052    
1053    public Boolean getAllowReferenceDuplicates() {
1054        return allowReferenceDuplicates;
1055    }
1056    
1057    public void setAllowReferenceDuplicates(Boolean allowReferenceDuplicates)
1058            throws PersistenceNotNullException {
1059        checkForNull(allowReferenceDuplicates);
1060        
1061        boolean update = true;
1062        
1063        if(this.allowReferenceDuplicates != null) {
1064            if(this.allowReferenceDuplicates.equals(allowReferenceDuplicates)) {
1065                update = false;
1066            }
1067        } else if(allowReferenceDuplicates == null) {
1068            update = false;
1069        }
1070        
1071        if(update) {
1072            this.allowReferenceDuplicates = allowReferenceDuplicates;
1073            allowReferenceDuplicatesHasBeenModified = true;
1074            clearHashAndString();
1075        }
1076    }
1077    
1078    public boolean getAllowReferenceDuplicatesHasBeenModified() {
1079        return allowReferenceDuplicatesHasBeenModified;
1080    }
1081    
1082    public String getReferenceValidationPattern() {
1083        return referenceValidationPattern;
1084    }
1085    
1086    public void setReferenceValidationPattern(String referenceValidationPattern) {
1087        boolean update = true;
1088        
1089        if(this.referenceValidationPattern != null) {
1090            if(this.referenceValidationPattern.equals(referenceValidationPattern)) {
1091                update = false;
1092            }
1093        } else if(referenceValidationPattern == null) {
1094            update = false;
1095        }
1096        
1097        if(update) {
1098            this.referenceValidationPattern = referenceValidationPattern;
1099            referenceValidationPatternHasBeenModified = true;
1100            clearHashAndString();
1101        }
1102    }
1103    
1104    public boolean getReferenceValidationPatternHasBeenModified() {
1105        return referenceValidationPatternHasBeenModified;
1106    }
1107    
1108    public SelectorPK getVendorItemSelectorPK() {
1109        return vendorItemSelectorPK;
1110    }
1111    
1112    public void setVendorItemSelectorPK(SelectorPK vendorItemSelectorPK) {
1113        boolean update = true;
1114        
1115        if(this.vendorItemSelectorPK != null) {
1116            if(this.vendorItemSelectorPK.equals(vendorItemSelectorPK)) {
1117                update = false;
1118            }
1119        } else if(vendorItemSelectorPK == null) {
1120            update = false;
1121        }
1122        
1123        if(update) {
1124            this.vendorItemSelectorPK = vendorItemSelectorPK;
1125            vendorItemSelectorPKHasBeenModified = true;
1126            clearHashAndString();
1127        }
1128    }
1129    
1130    public boolean getVendorItemSelectorPKHasBeenModified() {
1131        return vendorItemSelectorPKHasBeenModified;
1132    }
1133    
1134    public FilterPK getVendorItemCostFilterPK() {
1135        return vendorItemCostFilterPK;
1136    }
1137    
1138    public void setVendorItemCostFilterPK(FilterPK vendorItemCostFilterPK) {
1139        boolean update = true;
1140        
1141        if(this.vendorItemCostFilterPK != null) {
1142            if(this.vendorItemCostFilterPK.equals(vendorItemCostFilterPK)) {
1143                update = false;
1144            }
1145        } else if(vendorItemCostFilterPK == null) {
1146            update = false;
1147        }
1148        
1149        if(update) {
1150            this.vendorItemCostFilterPK = vendorItemCostFilterPK;
1151            vendorItemCostFilterPKHasBeenModified = true;
1152            clearHashAndString();
1153        }
1154    }
1155    
1156    public boolean getVendorItemCostFilterPKHasBeenModified() {
1157        return vendorItemCostFilterPKHasBeenModified;
1158    }
1159    
1160    public Long getFromTime() {
1161        return fromTime;
1162    }
1163    
1164    public void setFromTime(Long fromTime)
1165            throws PersistenceNotNullException {
1166        checkForNull(fromTime);
1167        
1168        boolean update = true;
1169        
1170        if(this.fromTime != null) {
1171            if(this.fromTime.equals(fromTime)) {
1172                update = false;
1173            }
1174        } else if(fromTime == null) {
1175            update = false;
1176        }
1177        
1178        if(update) {
1179            this.fromTime = fromTime;
1180            fromTimeHasBeenModified = true;
1181            clearHashAndString();
1182        }
1183    }
1184    
1185    public boolean getFromTimeHasBeenModified() {
1186        return fromTimeHasBeenModified;
1187    }
1188    
1189    public Long getThruTime() {
1190        return thruTime;
1191    }
1192    
1193    public void setThruTime(Long thruTime)
1194            throws PersistenceNotNullException {
1195        checkForNull(thruTime);
1196        
1197        boolean update = true;
1198        
1199        if(this.thruTime != null) {
1200            if(this.thruTime.equals(thruTime)) {
1201                update = false;
1202            }
1203        } else if(thruTime == null) {
1204            update = false;
1205        }
1206        
1207        if(update) {
1208            this.thruTime = thruTime;
1209            thruTimeHasBeenModified = true;
1210            clearHashAndString();
1211        }
1212    }
1213    
1214    public boolean getThruTimeHasBeenModified() {
1215        return thruTimeHasBeenModified;
1216    }
1217    
1218}