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