001// --------------------------------------------------------------------------------
002// Copyright 2002-2025 Echo Three, LLC
003//
004// Licensed under the Apache License, Version 2.0 (the "License");
005// you may not use this file except in compliance with the License.
006// You may obtain a copy of the License at
007//
008//     http://www.apache.org/licenses/LICENSE-2.0
009//
010// Unless required by applicable law or agreed to in writing, software
011// distributed under the License is distributed on an "AS IS" BASIS,
012// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013// See the License for the specific language governing permissions and
014// limitations under the License.
015// --------------------------------------------------------------------------------
016// Generated File -- DO NOT EDIT BY HAND
017// --------------------------------------------------------------------------------
018
019/**
020 * OrderDetailValue.java
021 */
022
023package com.echothree.model.data.order.server.value;
024
025import com.echothree.model.data.order.common.pk.OrderDetailPK;
026
027import com.echothree.model.data.order.server.factory.OrderDetailFactory;
028
029import com.echothree.model.data.order.common.pk.OrderPK;
030import com.echothree.model.data.order.common.pk.OrderTypePK;
031import com.echothree.model.data.order.common.pk.OrderPriorityPK;
032import com.echothree.model.data.accounting.common.pk.CurrencyPK;
033import com.echothree.model.data.term.common.pk.TermPK;
034import com.echothree.model.data.shipment.common.pk.FreeOnBoardPK;
035import com.echothree.model.data.cancellationpolicy.common.pk.CancellationPolicyPK;
036import com.echothree.model.data.returnpolicy.common.pk.ReturnPolicyPK;
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 OrderDetailValue
046        extends BaseValue<OrderDetailPK>
047        implements Cloneable, Serializable {
048    
049    private OrderPK orderPK;
050    private boolean orderPKHasBeenModified = false;
051    private OrderTypePK orderTypePK;
052    private boolean orderTypePKHasBeenModified = false;
053    private String orderName;
054    private boolean orderNameHasBeenModified = false;
055    private OrderPriorityPK orderPriorityPK;
056    private boolean orderPriorityPKHasBeenModified = false;
057    private CurrencyPK currencyPK;
058    private boolean currencyPKHasBeenModified = false;
059    private Boolean holdUntilComplete;
060    private boolean holdUntilCompleteHasBeenModified = false;
061    private Boolean allowBackorders;
062    private boolean allowBackordersHasBeenModified = false;
063    private Boolean allowSubstitutions;
064    private boolean allowSubstitutionsHasBeenModified = false;
065    private Boolean allowCombiningShipments;
066    private boolean allowCombiningShipmentsHasBeenModified = false;
067    private TermPK termPK;
068    private boolean termPKHasBeenModified = false;
069    private FreeOnBoardPK freeOnBoardPK;
070    private boolean freeOnBoardPKHasBeenModified = false;
071    private String reference;
072    private boolean referenceHasBeenModified = false;
073    private String description;
074    private boolean descriptionHasBeenModified = false;
075    private CancellationPolicyPK cancellationPolicyPK;
076    private boolean cancellationPolicyPKHasBeenModified = false;
077    private ReturnPolicyPK returnPolicyPK;
078    private boolean returnPolicyPKHasBeenModified = false;
079    private Boolean taxable;
080    private boolean taxableHasBeenModified = false;
081    private Long fromTime;
082    private boolean fromTimeHasBeenModified = false;
083    private Long thruTime;
084    private boolean thruTimeHasBeenModified = false;
085    
086    private transient Integer _hashCode = null;
087    private transient String _stringValue = null;
088    
089    private void constructFields(OrderPK orderPK, OrderTypePK orderTypePK, String orderName, OrderPriorityPK orderPriorityPK, CurrencyPK currencyPK, Boolean holdUntilComplete, Boolean allowBackorders, Boolean allowSubstitutions, Boolean allowCombiningShipments, TermPK termPK, FreeOnBoardPK freeOnBoardPK, String reference, String description, CancellationPolicyPK cancellationPolicyPK, ReturnPolicyPK returnPolicyPK, Boolean taxable, Long fromTime, Long thruTime)
090            throws PersistenceNotNullException {
091        checkForNull(orderPK);
092        this.orderPK = orderPK;
093        checkForNull(orderTypePK);
094        this.orderTypePK = orderTypePK;
095        checkForNull(orderName);
096        this.orderName = orderName;
097        this.orderPriorityPK = orderPriorityPK;
098        checkForNull(currencyPK);
099        this.currencyPK = currencyPK;
100        this.holdUntilComplete = holdUntilComplete;
101        this.allowBackorders = allowBackorders;
102        this.allowSubstitutions = allowSubstitutions;
103        this.allowCombiningShipments = allowCombiningShipments;
104        this.termPK = termPK;
105        this.freeOnBoardPK = freeOnBoardPK;
106        this.reference = reference;
107        this.description = description;
108        this.cancellationPolicyPK = cancellationPolicyPK;
109        this.returnPolicyPK = returnPolicyPK;
110        this.taxable = taxable;
111        checkForNull(fromTime);
112        this.fromTime = fromTime;
113        checkForNull(thruTime);
114        this.thruTime = thruTime;
115    }
116    
117    /** Creates a new instance of OrderDetailValue */
118    public OrderDetailValue(OrderDetailPK orderDetailPK, OrderPK orderPK, OrderTypePK orderTypePK, String orderName, OrderPriorityPK orderPriorityPK, CurrencyPK currencyPK, Boolean holdUntilComplete, Boolean allowBackorders, Boolean allowSubstitutions, Boolean allowCombiningShipments, TermPK termPK, FreeOnBoardPK freeOnBoardPK, String reference, String description, CancellationPolicyPK cancellationPolicyPK, ReturnPolicyPK returnPolicyPK, Boolean taxable, Long fromTime, Long thruTime)
119            throws PersistenceNotNullException {
120        super(orderDetailPK);
121        constructFields(orderPK, orderTypePK, orderName, orderPriorityPK, currencyPK, holdUntilComplete, allowBackorders, allowSubstitutions, allowCombiningShipments, termPK, freeOnBoardPK, reference, description, cancellationPolicyPK, returnPolicyPK, taxable, fromTime, thruTime);
122    }
123    
124    /** Creates a new instance of OrderDetailValue */
125    public OrderDetailValue(OrderPK orderPK, OrderTypePK orderTypePK, String orderName, OrderPriorityPK orderPriorityPK, CurrencyPK currencyPK, Boolean holdUntilComplete, Boolean allowBackorders, Boolean allowSubstitutions, Boolean allowCombiningShipments, TermPK termPK, FreeOnBoardPK freeOnBoardPK, String reference, String description, CancellationPolicyPK cancellationPolicyPK, ReturnPolicyPK returnPolicyPK, Boolean taxable, Long fromTime, Long thruTime)
126            throws PersistenceNotNullException {
127        super();
128        constructFields(orderPK, orderTypePK, orderName, orderPriorityPK, currencyPK, holdUntilComplete, allowBackorders, allowSubstitutions, allowCombiningShipments, termPK, freeOnBoardPK, reference, description, cancellationPolicyPK, returnPolicyPK, taxable, fromTime, thruTime);
129    }
130    
131   @Override
132   public OrderDetailFactory getBaseFactoryInstance() {
133        return OrderDetailFactory.getInstance();
134    }
135    
136    @Override
137    public OrderDetailValue clone() {
138        Object result;
139        
140        try {
141            result = super.clone();
142        } catch (CloneNotSupportedException cnse) {
143            // This shouldn't happen, fail when it does.
144            throw new PersistenceCloneException(cnse);
145        }
146        
147        return (OrderDetailValue)result;
148    }
149    
150   @Override
151    public OrderDetailPK getPrimaryKey() {
152        if(_primaryKey == null) {
153            _primaryKey = new OrderDetailPK(entityId);
154        }
155        
156        return _primaryKey;
157    }
158    
159    private void clearHashAndString() {
160        _hashCode = null;
161        _stringValue = null;
162    }
163    
164    @Override
165    public int hashCode() {
166        if(_hashCode == null) {
167            int hashCode = 17;
168            
169            hashCode = 37 * hashCode + ((entityId != null) ? entityId.hashCode() : 0);
170            
171            hashCode = 37 * hashCode + ((orderPK != null) ? orderPK.hashCode() : 0);
172            hashCode = 37 * hashCode + ((orderTypePK != null) ? orderTypePK.hashCode() : 0);
173            hashCode = 37 * hashCode + ((orderName != null) ? orderName.hashCode() : 0);
174            hashCode = 37 * hashCode + ((orderPriorityPK != null) ? orderPriorityPK.hashCode() : 0);
175            hashCode = 37 * hashCode + ((currencyPK != null) ? currencyPK.hashCode() : 0);
176            hashCode = 37 * hashCode + ((holdUntilComplete != null) ? holdUntilComplete.hashCode() : 0);
177            hashCode = 37 * hashCode + ((allowBackorders != null) ? allowBackorders.hashCode() : 0);
178            hashCode = 37 * hashCode + ((allowSubstitutions != null) ? allowSubstitutions.hashCode() : 0);
179            hashCode = 37 * hashCode + ((allowCombiningShipments != null) ? allowCombiningShipments.hashCode() : 0);
180            hashCode = 37 * hashCode + ((termPK != null) ? termPK.hashCode() : 0);
181            hashCode = 37 * hashCode + ((freeOnBoardPK != null) ? freeOnBoardPK.hashCode() : 0);
182            hashCode = 37 * hashCode + ((reference != null) ? reference.hashCode() : 0);
183            hashCode = 37 * hashCode + ((description != null) ? description.hashCode() : 0);
184            hashCode = 37 * hashCode + ((cancellationPolicyPK != null) ? cancellationPolicyPK.hashCode() : 0);
185            hashCode = 37 * hashCode + ((returnPolicyPK != null) ? returnPolicyPK.hashCode() : 0);
186            hashCode = 37 * hashCode + ((taxable != null) ? taxable.hashCode() : 0);
187            hashCode = 37 * hashCode + ((fromTime != null) ? fromTime.hashCode() : 0);
188            hashCode = 37 * hashCode + ((thruTime != null) ? thruTime.hashCode() : 0);
189            
190            _hashCode = hashCode;
191        }
192        
193        return _hashCode;
194    }
195    
196    @Override
197    public String toString() {
198        if(_stringValue == null) {
199            _stringValue = "{" + 
200                    "entityId=" + getEntityId() +
201                    ", orderPK=" + getOrderPK() +
202                    ", orderTypePK=" + getOrderTypePK() +
203                    ", orderName=" + getOrderName() +
204                    ", orderPriorityPK=" + getOrderPriorityPK() +
205                    ", currencyPK=" + getCurrencyPK() +
206                    ", holdUntilComplete=" + getHoldUntilComplete() +
207                    ", allowBackorders=" + getAllowBackorders() +
208                    ", allowSubstitutions=" + getAllowSubstitutions() +
209                    ", allowCombiningShipments=" + getAllowCombiningShipments() +
210                    ", termPK=" + getTermPK() +
211                    ", freeOnBoardPK=" + getFreeOnBoardPK() +
212                    ", reference=" + getReference() +
213                    ", description=" + getDescription() +
214                    ", cancellationPolicyPK=" + getCancellationPolicyPK() +
215                    ", returnPolicyPK=" + getReturnPolicyPK() +
216                    ", taxable=" + getTaxable() +
217                    ", fromTime=" + getFromTime() +
218                    ", thruTime=" + getThruTime() +
219                    "}";
220        }
221        return _stringValue;
222    }
223    
224    @Override
225    public boolean equals(Object other) {
226        if(this == other)
227            return true;
228        
229        if(!hasIdentity())
230            return false;
231        
232        if(other instanceof  OrderDetailValue that) {
233            if(!that.hasIdentity())
234                return false;
235            
236            Long thisEntityId = getEntityId();
237            Long thatEntityId = that.getEntityId();
238            
239            boolean objectsEqual = thisEntityId.equals(thatEntityId);
240            if(objectsEqual)
241                objectsEqual = isIdentical(that);
242            
243            return objectsEqual;
244        } else {
245            return false;
246        }
247    }
248    
249    public boolean isIdentical(Object other) {
250        if(other instanceof OrderDetailValue that) {
251            boolean objectsEqual = true;
252            
253            
254            if(objectsEqual) {
255                OrderPK thisOrderPK = getOrderPK();
256                OrderPK thatOrderPK = that.getOrderPK();
257                
258                if(thisOrderPK == null) {
259                    objectsEqual = objectsEqual && (thatOrderPK == null);
260                } else {
261                    objectsEqual = objectsEqual && thisOrderPK.equals(thatOrderPK);
262                }
263            }
264            
265            if(objectsEqual) {
266                OrderTypePK thisOrderTypePK = getOrderTypePK();
267                OrderTypePK thatOrderTypePK = that.getOrderTypePK();
268                
269                if(thisOrderTypePK == null) {
270                    objectsEqual = objectsEqual && (thatOrderTypePK == null);
271                } else {
272                    objectsEqual = objectsEqual && thisOrderTypePK.equals(thatOrderTypePK);
273                }
274            }
275            
276            if(objectsEqual) {
277                String thisOrderName = getOrderName();
278                String thatOrderName = that.getOrderName();
279                
280                if(thisOrderName == null) {
281                    objectsEqual = objectsEqual && (thatOrderName == null);
282                } else {
283                    objectsEqual = objectsEqual && thisOrderName.equals(thatOrderName);
284                }
285            }
286            
287            if(objectsEqual) {
288                OrderPriorityPK thisOrderPriorityPK = getOrderPriorityPK();
289                OrderPriorityPK thatOrderPriorityPK = that.getOrderPriorityPK();
290                
291                if(thisOrderPriorityPK == null) {
292                    objectsEqual = objectsEqual && (thatOrderPriorityPK == null);
293                } else {
294                    objectsEqual = objectsEqual && thisOrderPriorityPK.equals(thatOrderPriorityPK);
295                }
296            }
297            
298            if(objectsEqual) {
299                CurrencyPK thisCurrencyPK = getCurrencyPK();
300                CurrencyPK thatCurrencyPK = that.getCurrencyPK();
301                
302                if(thisCurrencyPK == null) {
303                    objectsEqual = objectsEqual && (thatCurrencyPK == null);
304                } else {
305                    objectsEqual = objectsEqual && thisCurrencyPK.equals(thatCurrencyPK);
306                }
307            }
308            
309            if(objectsEqual) {
310                Boolean thisHoldUntilComplete = getHoldUntilComplete();
311                Boolean thatHoldUntilComplete = that.getHoldUntilComplete();
312                
313                if(thisHoldUntilComplete == null) {
314                    objectsEqual = objectsEqual && (thatHoldUntilComplete == null);
315                } else {
316                    objectsEqual = objectsEqual && thisHoldUntilComplete.equals(thatHoldUntilComplete);
317                }
318            }
319            
320            if(objectsEqual) {
321                Boolean thisAllowBackorders = getAllowBackorders();
322                Boolean thatAllowBackorders = that.getAllowBackorders();
323                
324                if(thisAllowBackorders == null) {
325                    objectsEqual = objectsEqual && (thatAllowBackorders == null);
326                } else {
327                    objectsEqual = objectsEqual && thisAllowBackorders.equals(thatAllowBackorders);
328                }
329            }
330            
331            if(objectsEqual) {
332                Boolean thisAllowSubstitutions = getAllowSubstitutions();
333                Boolean thatAllowSubstitutions = that.getAllowSubstitutions();
334                
335                if(thisAllowSubstitutions == null) {
336                    objectsEqual = objectsEqual && (thatAllowSubstitutions == null);
337                } else {
338                    objectsEqual = objectsEqual && thisAllowSubstitutions.equals(thatAllowSubstitutions);
339                }
340            }
341            
342            if(objectsEqual) {
343                Boolean thisAllowCombiningShipments = getAllowCombiningShipments();
344                Boolean thatAllowCombiningShipments = that.getAllowCombiningShipments();
345                
346                if(thisAllowCombiningShipments == null) {
347                    objectsEqual = objectsEqual && (thatAllowCombiningShipments == null);
348                } else {
349                    objectsEqual = objectsEqual && thisAllowCombiningShipments.equals(thatAllowCombiningShipments);
350                }
351            }
352            
353            if(objectsEqual) {
354                TermPK thisTermPK = getTermPK();
355                TermPK thatTermPK = that.getTermPK();
356                
357                if(thisTermPK == null) {
358                    objectsEqual = objectsEqual && (thatTermPK == null);
359                } else {
360                    objectsEqual = objectsEqual && thisTermPK.equals(thatTermPK);
361                }
362            }
363            
364            if(objectsEqual) {
365                FreeOnBoardPK thisFreeOnBoardPK = getFreeOnBoardPK();
366                FreeOnBoardPK thatFreeOnBoardPK = that.getFreeOnBoardPK();
367                
368                if(thisFreeOnBoardPK == null) {
369                    objectsEqual = objectsEqual && (thatFreeOnBoardPK == null);
370                } else {
371                    objectsEqual = objectsEqual && thisFreeOnBoardPK.equals(thatFreeOnBoardPK);
372                }
373            }
374            
375            if(objectsEqual) {
376                String thisReference = getReference();
377                String thatReference = that.getReference();
378                
379                if(thisReference == null) {
380                    objectsEqual = objectsEqual && (thatReference == null);
381                } else {
382                    objectsEqual = objectsEqual && thisReference.equals(thatReference);
383                }
384            }
385            
386            if(objectsEqual) {
387                String thisDescription = getDescription();
388                String thatDescription = that.getDescription();
389                
390                if(thisDescription == null) {
391                    objectsEqual = objectsEqual && (thatDescription == null);
392                } else {
393                    objectsEqual = objectsEqual && thisDescription.equals(thatDescription);
394                }
395            }
396            
397            if(objectsEqual) {
398                CancellationPolicyPK thisCancellationPolicyPK = getCancellationPolicyPK();
399                CancellationPolicyPK thatCancellationPolicyPK = that.getCancellationPolicyPK();
400                
401                if(thisCancellationPolicyPK == null) {
402                    objectsEqual = objectsEqual && (thatCancellationPolicyPK == null);
403                } else {
404                    objectsEqual = objectsEqual && thisCancellationPolicyPK.equals(thatCancellationPolicyPK);
405                }
406            }
407            
408            if(objectsEqual) {
409                ReturnPolicyPK thisReturnPolicyPK = getReturnPolicyPK();
410                ReturnPolicyPK thatReturnPolicyPK = that.getReturnPolicyPK();
411                
412                if(thisReturnPolicyPK == null) {
413                    objectsEqual = objectsEqual && (thatReturnPolicyPK == null);
414                } else {
415                    objectsEqual = objectsEqual && thisReturnPolicyPK.equals(thatReturnPolicyPK);
416                }
417            }
418            
419            if(objectsEqual) {
420                Boolean thisTaxable = getTaxable();
421                Boolean thatTaxable = that.getTaxable();
422                
423                if(thisTaxable == null) {
424                    objectsEqual = objectsEqual && (thatTaxable == null);
425                } else {
426                    objectsEqual = objectsEqual && thisTaxable.equals(thatTaxable);
427                }
428            }
429            
430            if(objectsEqual) {
431                Long thisFromTime = getFromTime();
432                Long thatFromTime = that.getFromTime();
433                
434                if(thisFromTime == null) {
435                    objectsEqual = objectsEqual && (thatFromTime == null);
436                } else {
437                    objectsEqual = objectsEqual && thisFromTime.equals(thatFromTime);
438                }
439            }
440            
441            if(objectsEqual) {
442                Long thisThruTime = getThruTime();
443                Long thatThruTime = that.getThruTime();
444                
445                if(thisThruTime == null) {
446                    objectsEqual = objectsEqual && (thatThruTime == null);
447                } else {
448                    objectsEqual = objectsEqual && thisThruTime.equals(thatThruTime);
449                }
450            }
451            
452            return objectsEqual;
453        } else {
454            return false;
455        }
456    }
457    
458    @Override
459    public boolean hasBeenModified() {
460        return orderPKHasBeenModified || orderTypePKHasBeenModified || orderNameHasBeenModified || orderPriorityPKHasBeenModified || currencyPKHasBeenModified || holdUntilCompleteHasBeenModified || allowBackordersHasBeenModified || allowSubstitutionsHasBeenModified || allowCombiningShipmentsHasBeenModified || termPKHasBeenModified || freeOnBoardPKHasBeenModified || referenceHasBeenModified || descriptionHasBeenModified || cancellationPolicyPKHasBeenModified || returnPolicyPKHasBeenModified || taxableHasBeenModified || fromTimeHasBeenModified || thruTimeHasBeenModified;
461    }
462    
463    @Override
464    public void clearHasBeenModified() {
465        orderPKHasBeenModified = false;
466        orderTypePKHasBeenModified = false;
467        orderNameHasBeenModified = false;
468        orderPriorityPKHasBeenModified = false;
469        currencyPKHasBeenModified = false;
470        holdUntilCompleteHasBeenModified = false;
471        allowBackordersHasBeenModified = false;
472        allowSubstitutionsHasBeenModified = false;
473        allowCombiningShipmentsHasBeenModified = false;
474        termPKHasBeenModified = false;
475        freeOnBoardPKHasBeenModified = false;
476        referenceHasBeenModified = false;
477        descriptionHasBeenModified = false;
478        cancellationPolicyPKHasBeenModified = false;
479        returnPolicyPKHasBeenModified = false;
480        taxableHasBeenModified = false;
481        fromTimeHasBeenModified = false;
482        thruTimeHasBeenModified = false;
483    }
484    
485    public OrderPK getOrderPK() {
486        return orderPK;
487    }
488    
489    public void setOrderPK(OrderPK orderPK)
490            throws PersistenceNotNullException {
491        checkForNull(orderPK);
492        
493        boolean update = true;
494        
495        if(this.orderPK != null) {
496            if(this.orderPK.equals(orderPK)) {
497                update = false;
498            }
499        } else if(orderPK == null) {
500            update = false;
501        }
502        
503        if(update) {
504            this.orderPK = orderPK;
505            orderPKHasBeenModified = true;
506            clearHashAndString();
507        }
508    }
509    
510    public boolean getOrderPKHasBeenModified() {
511        return orderPKHasBeenModified;
512    }
513    
514    public OrderTypePK getOrderTypePK() {
515        return orderTypePK;
516    }
517    
518    public void setOrderTypePK(OrderTypePK orderTypePK)
519            throws PersistenceNotNullException {
520        checkForNull(orderTypePK);
521        
522        boolean update = true;
523        
524        if(this.orderTypePK != null) {
525            if(this.orderTypePK.equals(orderTypePK)) {
526                update = false;
527            }
528        } else if(orderTypePK == null) {
529            update = false;
530        }
531        
532        if(update) {
533            this.orderTypePK = orderTypePK;
534            orderTypePKHasBeenModified = true;
535            clearHashAndString();
536        }
537    }
538    
539    public boolean getOrderTypePKHasBeenModified() {
540        return orderTypePKHasBeenModified;
541    }
542    
543    public String getOrderName() {
544        return orderName;
545    }
546    
547    public void setOrderName(String orderName)
548            throws PersistenceNotNullException {
549        checkForNull(orderName);
550        
551        boolean update = true;
552        
553        if(this.orderName != null) {
554            if(this.orderName.equals(orderName)) {
555                update = false;
556            }
557        } else if(orderName == null) {
558            update = false;
559        }
560        
561        if(update) {
562            this.orderName = orderName;
563            orderNameHasBeenModified = true;
564            clearHashAndString();
565        }
566    }
567    
568    public boolean getOrderNameHasBeenModified() {
569        return orderNameHasBeenModified;
570    }
571    
572    public OrderPriorityPK getOrderPriorityPK() {
573        return orderPriorityPK;
574    }
575    
576    public void setOrderPriorityPK(OrderPriorityPK orderPriorityPK) {
577        boolean update = true;
578        
579        if(this.orderPriorityPK != null) {
580            if(this.orderPriorityPK.equals(orderPriorityPK)) {
581                update = false;
582            }
583        } else if(orderPriorityPK == null) {
584            update = false;
585        }
586        
587        if(update) {
588            this.orderPriorityPK = orderPriorityPK;
589            orderPriorityPKHasBeenModified = true;
590            clearHashAndString();
591        }
592    }
593    
594    public boolean getOrderPriorityPKHasBeenModified() {
595        return orderPriorityPKHasBeenModified;
596    }
597    
598    public CurrencyPK getCurrencyPK() {
599        return currencyPK;
600    }
601    
602    public void setCurrencyPK(CurrencyPK currencyPK)
603            throws PersistenceNotNullException {
604        checkForNull(currencyPK);
605        
606        boolean update = true;
607        
608        if(this.currencyPK != null) {
609            if(this.currencyPK.equals(currencyPK)) {
610                update = false;
611            }
612        } else if(currencyPK == null) {
613            update = false;
614        }
615        
616        if(update) {
617            this.currencyPK = currencyPK;
618            currencyPKHasBeenModified = true;
619            clearHashAndString();
620        }
621    }
622    
623    public boolean getCurrencyPKHasBeenModified() {
624        return currencyPKHasBeenModified;
625    }
626    
627    public Boolean getHoldUntilComplete() {
628        return holdUntilComplete;
629    }
630    
631    public void setHoldUntilComplete(Boolean holdUntilComplete) {
632        boolean update = true;
633        
634        if(this.holdUntilComplete != null) {
635            if(this.holdUntilComplete.equals(holdUntilComplete)) {
636                update = false;
637            }
638        } else if(holdUntilComplete == null) {
639            update = false;
640        }
641        
642        if(update) {
643            this.holdUntilComplete = holdUntilComplete;
644            holdUntilCompleteHasBeenModified = true;
645            clearHashAndString();
646        }
647    }
648    
649    public boolean getHoldUntilCompleteHasBeenModified() {
650        return holdUntilCompleteHasBeenModified;
651    }
652    
653    public Boolean getAllowBackorders() {
654        return allowBackorders;
655    }
656    
657    public void setAllowBackorders(Boolean allowBackorders) {
658        boolean update = true;
659        
660        if(this.allowBackorders != null) {
661            if(this.allowBackorders.equals(allowBackorders)) {
662                update = false;
663            }
664        } else if(allowBackorders == null) {
665            update = false;
666        }
667        
668        if(update) {
669            this.allowBackorders = allowBackorders;
670            allowBackordersHasBeenModified = true;
671            clearHashAndString();
672        }
673    }
674    
675    public boolean getAllowBackordersHasBeenModified() {
676        return allowBackordersHasBeenModified;
677    }
678    
679    public Boolean getAllowSubstitutions() {
680        return allowSubstitutions;
681    }
682    
683    public void setAllowSubstitutions(Boolean allowSubstitutions) {
684        boolean update = true;
685        
686        if(this.allowSubstitutions != null) {
687            if(this.allowSubstitutions.equals(allowSubstitutions)) {
688                update = false;
689            }
690        } else if(allowSubstitutions == null) {
691            update = false;
692        }
693        
694        if(update) {
695            this.allowSubstitutions = allowSubstitutions;
696            allowSubstitutionsHasBeenModified = true;
697            clearHashAndString();
698        }
699    }
700    
701    public boolean getAllowSubstitutionsHasBeenModified() {
702        return allowSubstitutionsHasBeenModified;
703    }
704    
705    public Boolean getAllowCombiningShipments() {
706        return allowCombiningShipments;
707    }
708    
709    public void setAllowCombiningShipments(Boolean allowCombiningShipments) {
710        boolean update = true;
711        
712        if(this.allowCombiningShipments != null) {
713            if(this.allowCombiningShipments.equals(allowCombiningShipments)) {
714                update = false;
715            }
716        } else if(allowCombiningShipments == null) {
717            update = false;
718        }
719        
720        if(update) {
721            this.allowCombiningShipments = allowCombiningShipments;
722            allowCombiningShipmentsHasBeenModified = true;
723            clearHashAndString();
724        }
725    }
726    
727    public boolean getAllowCombiningShipmentsHasBeenModified() {
728        return allowCombiningShipmentsHasBeenModified;
729    }
730    
731    public TermPK getTermPK() {
732        return termPK;
733    }
734    
735    public void setTermPK(TermPK termPK) {
736        boolean update = true;
737        
738        if(this.termPK != null) {
739            if(this.termPK.equals(termPK)) {
740                update = false;
741            }
742        } else if(termPK == null) {
743            update = false;
744        }
745        
746        if(update) {
747            this.termPK = termPK;
748            termPKHasBeenModified = true;
749            clearHashAndString();
750        }
751    }
752    
753    public boolean getTermPKHasBeenModified() {
754        return termPKHasBeenModified;
755    }
756    
757    public FreeOnBoardPK getFreeOnBoardPK() {
758        return freeOnBoardPK;
759    }
760    
761    public void setFreeOnBoardPK(FreeOnBoardPK freeOnBoardPK) {
762        boolean update = true;
763        
764        if(this.freeOnBoardPK != null) {
765            if(this.freeOnBoardPK.equals(freeOnBoardPK)) {
766                update = false;
767            }
768        } else if(freeOnBoardPK == null) {
769            update = false;
770        }
771        
772        if(update) {
773            this.freeOnBoardPK = freeOnBoardPK;
774            freeOnBoardPKHasBeenModified = true;
775            clearHashAndString();
776        }
777    }
778    
779    public boolean getFreeOnBoardPKHasBeenModified() {
780        return freeOnBoardPKHasBeenModified;
781    }
782    
783    public String getReference() {
784        return reference;
785    }
786    
787    public void setReference(String reference) {
788        boolean update = true;
789        
790        if(this.reference != null) {
791            if(this.reference.equals(reference)) {
792                update = false;
793            }
794        } else if(reference == null) {
795            update = false;
796        }
797        
798        if(update) {
799            this.reference = reference;
800            referenceHasBeenModified = true;
801            clearHashAndString();
802        }
803    }
804    
805    public boolean getReferenceHasBeenModified() {
806        return referenceHasBeenModified;
807    }
808    
809    public String getDescription() {
810        return description;
811    }
812    
813    public void setDescription(String description) {
814        boolean update = true;
815        
816        if(this.description != null) {
817            if(this.description.equals(description)) {
818                update = false;
819            }
820        } else if(description == null) {
821            update = false;
822        }
823        
824        if(update) {
825            this.description = description;
826            descriptionHasBeenModified = true;
827            clearHashAndString();
828        }
829    }
830    
831    public boolean getDescriptionHasBeenModified() {
832        return descriptionHasBeenModified;
833    }
834    
835    public CancellationPolicyPK getCancellationPolicyPK() {
836        return cancellationPolicyPK;
837    }
838    
839    public void setCancellationPolicyPK(CancellationPolicyPK cancellationPolicyPK) {
840        boolean update = true;
841        
842        if(this.cancellationPolicyPK != null) {
843            if(this.cancellationPolicyPK.equals(cancellationPolicyPK)) {
844                update = false;
845            }
846        } else if(cancellationPolicyPK == null) {
847            update = false;
848        }
849        
850        if(update) {
851            this.cancellationPolicyPK = cancellationPolicyPK;
852            cancellationPolicyPKHasBeenModified = true;
853            clearHashAndString();
854        }
855    }
856    
857    public boolean getCancellationPolicyPKHasBeenModified() {
858        return cancellationPolicyPKHasBeenModified;
859    }
860    
861    public ReturnPolicyPK getReturnPolicyPK() {
862        return returnPolicyPK;
863    }
864    
865    public void setReturnPolicyPK(ReturnPolicyPK returnPolicyPK) {
866        boolean update = true;
867        
868        if(this.returnPolicyPK != null) {
869            if(this.returnPolicyPK.equals(returnPolicyPK)) {
870                update = false;
871            }
872        } else if(returnPolicyPK == null) {
873            update = false;
874        }
875        
876        if(update) {
877            this.returnPolicyPK = returnPolicyPK;
878            returnPolicyPKHasBeenModified = true;
879            clearHashAndString();
880        }
881    }
882    
883    public boolean getReturnPolicyPKHasBeenModified() {
884        return returnPolicyPKHasBeenModified;
885    }
886    
887    public Boolean getTaxable() {
888        return taxable;
889    }
890    
891    public void setTaxable(Boolean taxable) {
892        boolean update = true;
893        
894        if(this.taxable != null) {
895            if(this.taxable.equals(taxable)) {
896                update = false;
897            }
898        } else if(taxable == null) {
899            update = false;
900        }
901        
902        if(update) {
903            this.taxable = taxable;
904            taxableHasBeenModified = true;
905            clearHashAndString();
906        }
907    }
908    
909    public boolean getTaxableHasBeenModified() {
910        return taxableHasBeenModified;
911    }
912    
913    public Long getFromTime() {
914        return fromTime;
915    }
916    
917    public void setFromTime(Long fromTime)
918            throws PersistenceNotNullException {
919        checkForNull(fromTime);
920        
921        boolean update = true;
922        
923        if(this.fromTime != null) {
924            if(this.fromTime.equals(fromTime)) {
925                update = false;
926            }
927        } else if(fromTime == null) {
928            update = false;
929        }
930        
931        if(update) {
932            this.fromTime = fromTime;
933            fromTimeHasBeenModified = true;
934            clearHashAndString();
935        }
936    }
937    
938    public boolean getFromTimeHasBeenModified() {
939        return fromTimeHasBeenModified;
940    }
941    
942    public Long getThruTime() {
943        return thruTime;
944    }
945    
946    public void setThruTime(Long thruTime)
947            throws PersistenceNotNullException {
948        checkForNull(thruTime);
949        
950        boolean update = true;
951        
952        if(this.thruTime != null) {
953            if(this.thruTime.equals(thruTime)) {
954                update = false;
955            }
956        } else if(thruTime == null) {
957            update = false;
958        }
959        
960        if(update) {
961            this.thruTime = thruTime;
962            thruTimeHasBeenModified = true;
963            clearHashAndString();
964        }
965    }
966    
967    public boolean getThruTimeHasBeenModified() {
968        return thruTimeHasBeenModified;
969    }
970    
971}