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 * OrderPaymentPreferenceDetailValue.java
021 */
022
023package com.echothree.model.data.order.server.value;
024
025import com.echothree.model.data.order.common.pk.OrderPaymentPreferenceDetailPK;
026
027import com.echothree.model.data.order.server.factory.OrderPaymentPreferenceDetailFactory;
028
029import com.echothree.model.data.order.common.pk.OrderPaymentPreferencePK;
030import com.echothree.model.data.order.common.pk.OrderPK;
031import com.echothree.model.data.payment.common.pk.PaymentMethodPK;
032import com.echothree.model.data.payment.common.pk.PartyPaymentMethodPK;
033
034import com.echothree.util.common.exception.PersistenceCloneException;
035import com.echothree.util.common.exception.PersistenceNotNullException;
036
037import com.echothree.util.server.persistence.BaseValue;
038
039import java.io.Serializable;
040
041public class OrderPaymentPreferenceDetailValue
042        extends BaseValue<OrderPaymentPreferenceDetailPK>
043        implements Cloneable, Serializable {
044    
045    private OrderPaymentPreferencePK orderPaymentPreferencePK;
046    private boolean orderPaymentPreferencePKHasBeenModified = false;
047    private OrderPK orderPK;
048    private boolean orderPKHasBeenModified = false;
049    private Integer orderPaymentPreferenceSequence;
050    private boolean orderPaymentPreferenceSequenceHasBeenModified = false;
051    private PaymentMethodPK paymentMethodPK;
052    private boolean paymentMethodPKHasBeenModified = false;
053    private PartyPaymentMethodPK partyPaymentMethodPK;
054    private boolean partyPaymentMethodPKHasBeenModified = false;
055    private Boolean wasPresent;
056    private boolean wasPresentHasBeenModified = false;
057    private Long maximumAmount;
058    private boolean maximumAmountHasBeenModified = false;
059    private Integer sortOrder;
060    private boolean sortOrderHasBeenModified = false;
061    private Long fromTime;
062    private boolean fromTimeHasBeenModified = false;
063    private Long thruTime;
064    private boolean thruTimeHasBeenModified = false;
065    
066    private transient Integer _hashCode = null;
067    private transient String _stringValue = null;
068    
069    private void constructFields(OrderPaymentPreferencePK orderPaymentPreferencePK, OrderPK orderPK, Integer orderPaymentPreferenceSequence, PaymentMethodPK paymentMethodPK, PartyPaymentMethodPK partyPaymentMethodPK, Boolean wasPresent, Long maximumAmount, Integer sortOrder, Long fromTime, Long thruTime)
070            throws PersistenceNotNullException {
071        checkForNull(orderPaymentPreferencePK);
072        this.orderPaymentPreferencePK = orderPaymentPreferencePK;
073        checkForNull(orderPK);
074        this.orderPK = orderPK;
075        checkForNull(orderPaymentPreferenceSequence);
076        this.orderPaymentPreferenceSequence = orderPaymentPreferenceSequence;
077        checkForNull(paymentMethodPK);
078        this.paymentMethodPK = paymentMethodPK;
079        this.partyPaymentMethodPK = partyPaymentMethodPK;
080        this.wasPresent = wasPresent;
081        this.maximumAmount = maximumAmount;
082        checkForNull(sortOrder);
083        this.sortOrder = sortOrder;
084        checkForNull(fromTime);
085        this.fromTime = fromTime;
086        checkForNull(thruTime);
087        this.thruTime = thruTime;
088    }
089    
090    /** Creates a new instance of OrderPaymentPreferenceDetailValue */
091    public OrderPaymentPreferenceDetailValue(OrderPaymentPreferenceDetailPK orderPaymentPreferenceDetailPK, OrderPaymentPreferencePK orderPaymentPreferencePK, OrderPK orderPK, Integer orderPaymentPreferenceSequence, PaymentMethodPK paymentMethodPK, PartyPaymentMethodPK partyPaymentMethodPK, Boolean wasPresent, Long maximumAmount, Integer sortOrder, Long fromTime, Long thruTime)
092            throws PersistenceNotNullException {
093        super(orderPaymentPreferenceDetailPK);
094        constructFields(orderPaymentPreferencePK, orderPK, orderPaymentPreferenceSequence, paymentMethodPK, partyPaymentMethodPK, wasPresent, maximumAmount, sortOrder, fromTime, thruTime);
095    }
096    
097    /** Creates a new instance of OrderPaymentPreferenceDetailValue */
098    public OrderPaymentPreferenceDetailValue(OrderPaymentPreferencePK orderPaymentPreferencePK, OrderPK orderPK, Integer orderPaymentPreferenceSequence, PaymentMethodPK paymentMethodPK, PartyPaymentMethodPK partyPaymentMethodPK, Boolean wasPresent, Long maximumAmount, Integer sortOrder, Long fromTime, Long thruTime)
099            throws PersistenceNotNullException {
100        super();
101        constructFields(orderPaymentPreferencePK, orderPK, orderPaymentPreferenceSequence, paymentMethodPK, partyPaymentMethodPK, wasPresent, maximumAmount, sortOrder, fromTime, thruTime);
102    }
103    
104   @Override
105   public OrderPaymentPreferenceDetailFactory getBaseFactoryInstance() {
106        return OrderPaymentPreferenceDetailFactory.getInstance();
107    }
108    
109    @Override
110    public OrderPaymentPreferenceDetailValue clone() {
111        Object result;
112        
113        try {
114            result = super.clone();
115        } catch (CloneNotSupportedException cnse) {
116            // This shouldn't happen, fail when it does.
117            throw new PersistenceCloneException(cnse);
118        }
119        
120        return (OrderPaymentPreferenceDetailValue)result;
121    }
122    
123   @Override
124    public OrderPaymentPreferenceDetailPK getPrimaryKey() {
125        if(_primaryKey == null) {
126            _primaryKey = new OrderPaymentPreferenceDetailPK(entityId);
127        }
128        
129        return _primaryKey;
130    }
131    
132    private void clearHashAndString() {
133        _hashCode = null;
134        _stringValue = null;
135    }
136    
137    @Override
138    public int hashCode() {
139        if(_hashCode == null) {
140            int hashCode = 17;
141            
142            hashCode = 37 * hashCode + ((entityId != null) ? entityId.hashCode() : 0);
143            
144            hashCode = 37 * hashCode + ((orderPaymentPreferencePK != null) ? orderPaymentPreferencePK.hashCode() : 0);
145            hashCode = 37 * hashCode + ((orderPK != null) ? orderPK.hashCode() : 0);
146            hashCode = 37 * hashCode + ((orderPaymentPreferenceSequence != null) ? orderPaymentPreferenceSequence.hashCode() : 0);
147            hashCode = 37 * hashCode + ((paymentMethodPK != null) ? paymentMethodPK.hashCode() : 0);
148            hashCode = 37 * hashCode + ((partyPaymentMethodPK != null) ? partyPaymentMethodPK.hashCode() : 0);
149            hashCode = 37 * hashCode + ((wasPresent != null) ? wasPresent.hashCode() : 0);
150            hashCode = 37 * hashCode + ((maximumAmount != null) ? maximumAmount.hashCode() : 0);
151            hashCode = 37 * hashCode + ((sortOrder != null) ? sortOrder.hashCode() : 0);
152            hashCode = 37 * hashCode + ((fromTime != null) ? fromTime.hashCode() : 0);
153            hashCode = 37 * hashCode + ((thruTime != null) ? thruTime.hashCode() : 0);
154            
155            _hashCode = hashCode;
156        }
157        
158        return _hashCode;
159    }
160    
161    @Override
162    public String toString() {
163        if(_stringValue == null) {
164            _stringValue = "{" + 
165                    "entityId=" + getEntityId() +
166                    ", orderPaymentPreferencePK=" + getOrderPaymentPreferencePK() +
167                    ", orderPK=" + getOrderPK() +
168                    ", orderPaymentPreferenceSequence=" + getOrderPaymentPreferenceSequence() +
169                    ", paymentMethodPK=" + getPaymentMethodPK() +
170                    ", partyPaymentMethodPK=" + getPartyPaymentMethodPK() +
171                    ", wasPresent=" + getWasPresent() +
172                    ", maximumAmount=" + getMaximumAmount() +
173                    ", sortOrder=" + getSortOrder() +
174                    ", fromTime=" + getFromTime() +
175                    ", thruTime=" + getThruTime() +
176                    "}";
177        }
178        return _stringValue;
179    }
180    
181    @Override
182    public boolean equals(Object other) {
183        if(this == other)
184            return true;
185        
186        if(!hasIdentity())
187            return false;
188        
189        if(other instanceof  OrderPaymentPreferenceDetailValue that) {
190            if(!that.hasIdentity())
191                return false;
192            
193            Long thisEntityId = getEntityId();
194            Long thatEntityId = that.getEntityId();
195            
196            boolean objectsEqual = thisEntityId.equals(thatEntityId);
197            if(objectsEqual)
198                objectsEqual = isIdentical(that);
199            
200            return objectsEqual;
201        } else {
202            return false;
203        }
204    }
205    
206    public boolean isIdentical(Object other) {
207        if(other instanceof OrderPaymentPreferenceDetailValue that) {
208            boolean objectsEqual = true;
209            
210            
211            if(objectsEqual) {
212                OrderPaymentPreferencePK thisOrderPaymentPreferencePK = getOrderPaymentPreferencePK();
213                OrderPaymentPreferencePK thatOrderPaymentPreferencePK = that.getOrderPaymentPreferencePK();
214                
215                if(thisOrderPaymentPreferencePK == null) {
216                    objectsEqual = objectsEqual && (thatOrderPaymentPreferencePK == null);
217                } else {
218                    objectsEqual = objectsEqual && thisOrderPaymentPreferencePK.equals(thatOrderPaymentPreferencePK);
219                }
220            }
221            
222            if(objectsEqual) {
223                OrderPK thisOrderPK = getOrderPK();
224                OrderPK thatOrderPK = that.getOrderPK();
225                
226                if(thisOrderPK == null) {
227                    objectsEqual = objectsEqual && (thatOrderPK == null);
228                } else {
229                    objectsEqual = objectsEqual && thisOrderPK.equals(thatOrderPK);
230                }
231            }
232            
233            if(objectsEqual) {
234                Integer thisOrderPaymentPreferenceSequence = getOrderPaymentPreferenceSequence();
235                Integer thatOrderPaymentPreferenceSequence = that.getOrderPaymentPreferenceSequence();
236                
237                if(thisOrderPaymentPreferenceSequence == null) {
238                    objectsEqual = objectsEqual && (thatOrderPaymentPreferenceSequence == null);
239                } else {
240                    objectsEqual = objectsEqual && thisOrderPaymentPreferenceSequence.equals(thatOrderPaymentPreferenceSequence);
241                }
242            }
243            
244            if(objectsEqual) {
245                PaymentMethodPK thisPaymentMethodPK = getPaymentMethodPK();
246                PaymentMethodPK thatPaymentMethodPK = that.getPaymentMethodPK();
247                
248                if(thisPaymentMethodPK == null) {
249                    objectsEqual = objectsEqual && (thatPaymentMethodPK == null);
250                } else {
251                    objectsEqual = objectsEqual && thisPaymentMethodPK.equals(thatPaymentMethodPK);
252                }
253            }
254            
255            if(objectsEqual) {
256                PartyPaymentMethodPK thisPartyPaymentMethodPK = getPartyPaymentMethodPK();
257                PartyPaymentMethodPK thatPartyPaymentMethodPK = that.getPartyPaymentMethodPK();
258                
259                if(thisPartyPaymentMethodPK == null) {
260                    objectsEqual = objectsEqual && (thatPartyPaymentMethodPK == null);
261                } else {
262                    objectsEqual = objectsEqual && thisPartyPaymentMethodPK.equals(thatPartyPaymentMethodPK);
263                }
264            }
265            
266            if(objectsEqual) {
267                Boolean thisWasPresent = getWasPresent();
268                Boolean thatWasPresent = that.getWasPresent();
269                
270                if(thisWasPresent == null) {
271                    objectsEqual = objectsEqual && (thatWasPresent == null);
272                } else {
273                    objectsEqual = objectsEqual && thisWasPresent.equals(thatWasPresent);
274                }
275            }
276            
277            if(objectsEqual) {
278                Long thisMaximumAmount = getMaximumAmount();
279                Long thatMaximumAmount = that.getMaximumAmount();
280                
281                if(thisMaximumAmount == null) {
282                    objectsEqual = objectsEqual && (thatMaximumAmount == null);
283                } else {
284                    objectsEqual = objectsEqual && thisMaximumAmount.equals(thatMaximumAmount);
285                }
286            }
287            
288            if(objectsEqual) {
289                Integer thisSortOrder = getSortOrder();
290                Integer thatSortOrder = that.getSortOrder();
291                
292                if(thisSortOrder == null) {
293                    objectsEqual = objectsEqual && (thatSortOrder == null);
294                } else {
295                    objectsEqual = objectsEqual && thisSortOrder.equals(thatSortOrder);
296                }
297            }
298            
299            if(objectsEqual) {
300                Long thisFromTime = getFromTime();
301                Long thatFromTime = that.getFromTime();
302                
303                if(thisFromTime == null) {
304                    objectsEqual = objectsEqual && (thatFromTime == null);
305                } else {
306                    objectsEqual = objectsEqual && thisFromTime.equals(thatFromTime);
307                }
308            }
309            
310            if(objectsEqual) {
311                Long thisThruTime = getThruTime();
312                Long thatThruTime = that.getThruTime();
313                
314                if(thisThruTime == null) {
315                    objectsEqual = objectsEqual && (thatThruTime == null);
316                } else {
317                    objectsEqual = objectsEqual && thisThruTime.equals(thatThruTime);
318                }
319            }
320            
321            return objectsEqual;
322        } else {
323            return false;
324        }
325    }
326    
327    @Override
328    public boolean hasBeenModified() {
329        return orderPaymentPreferencePKHasBeenModified || orderPKHasBeenModified || orderPaymentPreferenceSequenceHasBeenModified || paymentMethodPKHasBeenModified || partyPaymentMethodPKHasBeenModified || wasPresentHasBeenModified || maximumAmountHasBeenModified || sortOrderHasBeenModified || fromTimeHasBeenModified || thruTimeHasBeenModified;
330    }
331    
332    @Override
333    public void clearHasBeenModified() {
334        orderPaymentPreferencePKHasBeenModified = false;
335        orderPKHasBeenModified = false;
336        orderPaymentPreferenceSequenceHasBeenModified = false;
337        paymentMethodPKHasBeenModified = false;
338        partyPaymentMethodPKHasBeenModified = false;
339        wasPresentHasBeenModified = false;
340        maximumAmountHasBeenModified = false;
341        sortOrderHasBeenModified = false;
342        fromTimeHasBeenModified = false;
343        thruTimeHasBeenModified = false;
344    }
345    
346    public OrderPaymentPreferencePK getOrderPaymentPreferencePK() {
347        return orderPaymentPreferencePK;
348    }
349    
350    public void setOrderPaymentPreferencePK(OrderPaymentPreferencePK orderPaymentPreferencePK)
351            throws PersistenceNotNullException {
352        checkForNull(orderPaymentPreferencePK);
353        
354        boolean update = true;
355        
356        if(this.orderPaymentPreferencePK != null) {
357            if(this.orderPaymentPreferencePK.equals(orderPaymentPreferencePK)) {
358                update = false;
359            }
360        } else if(orderPaymentPreferencePK == null) {
361            update = false;
362        }
363        
364        if(update) {
365            this.orderPaymentPreferencePK = orderPaymentPreferencePK;
366            orderPaymentPreferencePKHasBeenModified = true;
367            clearHashAndString();
368        }
369    }
370    
371    public boolean getOrderPaymentPreferencePKHasBeenModified() {
372        return orderPaymentPreferencePKHasBeenModified;
373    }
374    
375    public OrderPK getOrderPK() {
376        return orderPK;
377    }
378    
379    public void setOrderPK(OrderPK orderPK)
380            throws PersistenceNotNullException {
381        checkForNull(orderPK);
382        
383        boolean update = true;
384        
385        if(this.orderPK != null) {
386            if(this.orderPK.equals(orderPK)) {
387                update = false;
388            }
389        } else if(orderPK == null) {
390            update = false;
391        }
392        
393        if(update) {
394            this.orderPK = orderPK;
395            orderPKHasBeenModified = true;
396            clearHashAndString();
397        }
398    }
399    
400    public boolean getOrderPKHasBeenModified() {
401        return orderPKHasBeenModified;
402    }
403    
404    public Integer getOrderPaymentPreferenceSequence() {
405        return orderPaymentPreferenceSequence;
406    }
407    
408    public void setOrderPaymentPreferenceSequence(Integer orderPaymentPreferenceSequence)
409            throws PersistenceNotNullException {
410        checkForNull(orderPaymentPreferenceSequence);
411        
412        boolean update = true;
413        
414        if(this.orderPaymentPreferenceSequence != null) {
415            if(this.orderPaymentPreferenceSequence.equals(orderPaymentPreferenceSequence)) {
416                update = false;
417            }
418        } else if(orderPaymentPreferenceSequence == null) {
419            update = false;
420        }
421        
422        if(update) {
423            this.orderPaymentPreferenceSequence = orderPaymentPreferenceSequence;
424            orderPaymentPreferenceSequenceHasBeenModified = true;
425            clearHashAndString();
426        }
427    }
428    
429    public boolean getOrderPaymentPreferenceSequenceHasBeenModified() {
430        return orderPaymentPreferenceSequenceHasBeenModified;
431    }
432    
433    public PaymentMethodPK getPaymentMethodPK() {
434        return paymentMethodPK;
435    }
436    
437    public void setPaymentMethodPK(PaymentMethodPK paymentMethodPK)
438            throws PersistenceNotNullException {
439        checkForNull(paymentMethodPK);
440        
441        boolean update = true;
442        
443        if(this.paymentMethodPK != null) {
444            if(this.paymentMethodPK.equals(paymentMethodPK)) {
445                update = false;
446            }
447        } else if(paymentMethodPK == null) {
448            update = false;
449        }
450        
451        if(update) {
452            this.paymentMethodPK = paymentMethodPK;
453            paymentMethodPKHasBeenModified = true;
454            clearHashAndString();
455        }
456    }
457    
458    public boolean getPaymentMethodPKHasBeenModified() {
459        return paymentMethodPKHasBeenModified;
460    }
461    
462    public PartyPaymentMethodPK getPartyPaymentMethodPK() {
463        return partyPaymentMethodPK;
464    }
465    
466    public void setPartyPaymentMethodPK(PartyPaymentMethodPK partyPaymentMethodPK) {
467        boolean update = true;
468        
469        if(this.partyPaymentMethodPK != null) {
470            if(this.partyPaymentMethodPK.equals(partyPaymentMethodPK)) {
471                update = false;
472            }
473        } else if(partyPaymentMethodPK == null) {
474            update = false;
475        }
476        
477        if(update) {
478            this.partyPaymentMethodPK = partyPaymentMethodPK;
479            partyPaymentMethodPKHasBeenModified = true;
480            clearHashAndString();
481        }
482    }
483    
484    public boolean getPartyPaymentMethodPKHasBeenModified() {
485        return partyPaymentMethodPKHasBeenModified;
486    }
487    
488    public Boolean getWasPresent() {
489        return wasPresent;
490    }
491    
492    public void setWasPresent(Boolean wasPresent) {
493        boolean update = true;
494        
495        if(this.wasPresent != null) {
496            if(this.wasPresent.equals(wasPresent)) {
497                update = false;
498            }
499        } else if(wasPresent == null) {
500            update = false;
501        }
502        
503        if(update) {
504            this.wasPresent = wasPresent;
505            wasPresentHasBeenModified = true;
506            clearHashAndString();
507        }
508    }
509    
510    public boolean getWasPresentHasBeenModified() {
511        return wasPresentHasBeenModified;
512    }
513    
514    public Long getMaximumAmount() {
515        return maximumAmount;
516    }
517    
518    public void setMaximumAmount(Long maximumAmount) {
519        boolean update = true;
520        
521        if(this.maximumAmount != null) {
522            if(this.maximumAmount.equals(maximumAmount)) {
523                update = false;
524            }
525        } else if(maximumAmount == null) {
526            update = false;
527        }
528        
529        if(update) {
530            this.maximumAmount = maximumAmount;
531            maximumAmountHasBeenModified = true;
532            clearHashAndString();
533        }
534    }
535    
536    public boolean getMaximumAmountHasBeenModified() {
537        return maximumAmountHasBeenModified;
538    }
539    
540    public Integer getSortOrder() {
541        return sortOrder;
542    }
543    
544    public void setSortOrder(Integer sortOrder)
545            throws PersistenceNotNullException {
546        checkForNull(sortOrder);
547        
548        boolean update = true;
549        
550        if(this.sortOrder != null) {
551            if(this.sortOrder.equals(sortOrder)) {
552                update = false;
553            }
554        } else if(sortOrder == null) {
555            update = false;
556        }
557        
558        if(update) {
559            this.sortOrder = sortOrder;
560            sortOrderHasBeenModified = true;
561            clearHashAndString();
562        }
563    }
564    
565    public boolean getSortOrderHasBeenModified() {
566        return sortOrderHasBeenModified;
567    }
568    
569    public Long getFromTime() {
570        return fromTime;
571    }
572    
573    public void setFromTime(Long fromTime)
574            throws PersistenceNotNullException {
575        checkForNull(fromTime);
576        
577        boolean update = true;
578        
579        if(this.fromTime != null) {
580            if(this.fromTime.equals(fromTime)) {
581                update = false;
582            }
583        } else if(fromTime == null) {
584            update = false;
585        }
586        
587        if(update) {
588            this.fromTime = fromTime;
589            fromTimeHasBeenModified = true;
590            clearHashAndString();
591        }
592    }
593    
594    public boolean getFromTimeHasBeenModified() {
595        return fromTimeHasBeenModified;
596    }
597    
598    public Long getThruTime() {
599        return thruTime;
600    }
601    
602    public void setThruTime(Long thruTime)
603            throws PersistenceNotNullException {
604        checkForNull(thruTime);
605        
606        boolean update = true;
607        
608        if(this.thruTime != null) {
609            if(this.thruTime.equals(thruTime)) {
610                update = false;
611            }
612        } else if(thruTime == null) {
613            update = false;
614        }
615        
616        if(update) {
617            this.thruTime = thruTime;
618            thruTimeHasBeenModified = true;
619            clearHashAndString();
620        }
621    }
622    
623    public boolean getThruTimeHasBeenModified() {
624        return thruTimeHasBeenModified;
625    }
626    
627}