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 * CarrierServiceOptionValue.java
021 */
022
023package com.echothree.model.data.carrier.server.value;
024
025import com.echothree.model.data.carrier.common.pk.CarrierServiceOptionPK;
026
027import com.echothree.model.data.carrier.server.factory.CarrierServiceOptionFactory;
028
029import com.echothree.model.data.carrier.common.pk.CarrierServicePK;
030import com.echothree.model.data.carrier.common.pk.CarrierOptionPK;
031import com.echothree.model.data.selector.common.pk.SelectorPK;
032
033import com.echothree.util.common.exception.PersistenceCloneException;
034import com.echothree.util.common.exception.PersistenceNotNullException;
035
036import com.echothree.util.server.persistence.BaseValue;
037
038import java.io.Serializable;
039
040import javax.annotation.Nonnull;
041import javax.annotation.Nullable;
042
043public class CarrierServiceOptionValue
044        extends BaseValue<CarrierServiceOptionPK>
045        implements Cloneable, Serializable {
046    
047    private CarrierServicePK carrierServicePK;
048    private boolean carrierServicePKHasBeenModified = false;
049    private CarrierOptionPK carrierOptionPK;
050    private boolean carrierOptionPKHasBeenModified = false;
051    private Boolean isRecommended;
052    private boolean isRecommendedHasBeenModified = false;
053    private Boolean isRequired;
054    private boolean isRequiredHasBeenModified = false;
055    private SelectorPK recommendedGeoCodeSelectorPK;
056    private boolean recommendedGeoCodeSelectorPKHasBeenModified = false;
057    private SelectorPK requiredGeoCodeSelectorPK;
058    private boolean requiredGeoCodeSelectorPKHasBeenModified = false;
059    private SelectorPK recommendedItemSelectorPK;
060    private boolean recommendedItemSelectorPKHasBeenModified = false;
061    private SelectorPK requiredItemSelectorPK;
062    private boolean requiredItemSelectorPKHasBeenModified = false;
063    private SelectorPK recommendedOrderSelectorPK;
064    private boolean recommendedOrderSelectorPKHasBeenModified = false;
065    private SelectorPK requiredOrderSelectorPK;
066    private boolean requiredOrderSelectorPKHasBeenModified = false;
067    private SelectorPK recommendedShipmentSelectorPK;
068    private boolean recommendedShipmentSelectorPKHasBeenModified = false;
069    private SelectorPK requiredShipmentSelectorPK;
070    private boolean requiredShipmentSelectorPKHasBeenModified = false;
071    private Long fromTime;
072    private boolean fromTimeHasBeenModified = false;
073    private Long thruTime;
074    private boolean thruTimeHasBeenModified = false;
075    
076    private transient Integer _hashCode = null;
077    private transient String _stringValue = null;
078    
079    private void constructFields(CarrierServicePK carrierServicePK, CarrierOptionPK carrierOptionPK, Boolean isRecommended, Boolean isRequired, SelectorPK recommendedGeoCodeSelectorPK, SelectorPK requiredGeoCodeSelectorPK, SelectorPK recommendedItemSelectorPK, SelectorPK requiredItemSelectorPK, SelectorPK recommendedOrderSelectorPK, SelectorPK requiredOrderSelectorPK, SelectorPK recommendedShipmentSelectorPK, SelectorPK requiredShipmentSelectorPK, Long fromTime, Long thruTime)
080            throws PersistenceNotNullException {
081        checkForNull(carrierServicePK);
082        this.carrierServicePK = carrierServicePK;
083        checkForNull(carrierOptionPK);
084        this.carrierOptionPK = carrierOptionPK;
085        checkForNull(isRecommended);
086        this.isRecommended = isRecommended;
087        checkForNull(isRequired);
088        this.isRequired = isRequired;
089        this.recommendedGeoCodeSelectorPK = recommendedGeoCodeSelectorPK;
090        this.requiredGeoCodeSelectorPK = requiredGeoCodeSelectorPK;
091        this.recommendedItemSelectorPK = recommendedItemSelectorPK;
092        this.requiredItemSelectorPK = requiredItemSelectorPK;
093        this.recommendedOrderSelectorPK = recommendedOrderSelectorPK;
094        this.requiredOrderSelectorPK = requiredOrderSelectorPK;
095        this.recommendedShipmentSelectorPK = recommendedShipmentSelectorPK;
096        this.requiredShipmentSelectorPK = requiredShipmentSelectorPK;
097        checkForNull(fromTime);
098        this.fromTime = fromTime;
099        checkForNull(thruTime);
100        this.thruTime = thruTime;
101    }
102    
103    /** Creates a new instance of CarrierServiceOptionValue */
104    public CarrierServiceOptionValue(CarrierServiceOptionPK carrierServiceOptionPK, CarrierServicePK carrierServicePK, CarrierOptionPK carrierOptionPK, Boolean isRecommended, Boolean isRequired, SelectorPK recommendedGeoCodeSelectorPK, SelectorPK requiredGeoCodeSelectorPK, SelectorPK recommendedItemSelectorPK, SelectorPK requiredItemSelectorPK, SelectorPK recommendedOrderSelectorPK, SelectorPK requiredOrderSelectorPK, SelectorPK recommendedShipmentSelectorPK, SelectorPK requiredShipmentSelectorPK, Long fromTime, Long thruTime)
105            throws PersistenceNotNullException {
106        super(carrierServiceOptionPK);
107        constructFields(carrierServicePK, carrierOptionPK, isRecommended, isRequired, recommendedGeoCodeSelectorPK, requiredGeoCodeSelectorPK, recommendedItemSelectorPK, requiredItemSelectorPK, recommendedOrderSelectorPK, requiredOrderSelectorPK, recommendedShipmentSelectorPK, requiredShipmentSelectorPK, fromTime, thruTime);
108    }
109    
110    /** Creates a new instance of CarrierServiceOptionValue */
111    public CarrierServiceOptionValue(CarrierServicePK carrierServicePK, CarrierOptionPK carrierOptionPK, Boolean isRecommended, Boolean isRequired, SelectorPK recommendedGeoCodeSelectorPK, SelectorPK requiredGeoCodeSelectorPK, SelectorPK recommendedItemSelectorPK, SelectorPK requiredItemSelectorPK, SelectorPK recommendedOrderSelectorPK, SelectorPK requiredOrderSelectorPK, SelectorPK recommendedShipmentSelectorPK, SelectorPK requiredShipmentSelectorPK, Long fromTime, Long thruTime)
112            throws PersistenceNotNullException {
113        super();
114        constructFields(carrierServicePK, carrierOptionPK, isRecommended, isRequired, recommendedGeoCodeSelectorPK, requiredGeoCodeSelectorPK, recommendedItemSelectorPK, requiredItemSelectorPK, recommendedOrderSelectorPK, requiredOrderSelectorPK, recommendedShipmentSelectorPK, requiredShipmentSelectorPK, fromTime, thruTime);
115    }
116    
117    @Override
118    @Nonnull
119    public CarrierServiceOptionFactory getBaseFactoryInstance() {
120        return CarrierServiceOptionFactory.getInstance();
121    }
122    
123    @Override
124    @Nonnull
125    public CarrierServiceOptionValue clone() {
126        Object result;
127        
128        try {
129            result = super.clone();
130        } catch (CloneNotSupportedException cnse) {
131            // This shouldn't happen, fail when it does.
132            throw new PersistenceCloneException(cnse);
133        }
134        
135        return (CarrierServiceOptionValue)result;
136    }
137    
138    @Override
139    @Nonnull
140    public CarrierServiceOptionPK getPrimaryKey() {
141        if(_primaryKey == null) {
142            _primaryKey = new CarrierServiceOptionPK(entityId);
143        }
144        
145        return _primaryKey;
146    }
147    
148    private void clearHashAndString() {
149        _hashCode = null;
150        _stringValue = null;
151    }
152    
153    @Override
154    public int hashCode() {
155        if(_hashCode == null) {
156            int hashCode = 17;
157            
158            hashCode = 37 * hashCode + ((entityId != null) ? entityId.hashCode() : 0);
159            
160            hashCode = 37 * hashCode + ((carrierServicePK != null) ? carrierServicePK.hashCode() : 0);
161            hashCode = 37 * hashCode + ((carrierOptionPK != null) ? carrierOptionPK.hashCode() : 0);
162            hashCode = 37 * hashCode + ((isRecommended != null) ? isRecommended.hashCode() : 0);
163            hashCode = 37 * hashCode + ((isRequired != null) ? isRequired.hashCode() : 0);
164            hashCode = 37 * hashCode + ((recommendedGeoCodeSelectorPK != null) ? recommendedGeoCodeSelectorPK.hashCode() : 0);
165            hashCode = 37 * hashCode + ((requiredGeoCodeSelectorPK != null) ? requiredGeoCodeSelectorPK.hashCode() : 0);
166            hashCode = 37 * hashCode + ((recommendedItemSelectorPK != null) ? recommendedItemSelectorPK.hashCode() : 0);
167            hashCode = 37 * hashCode + ((requiredItemSelectorPK != null) ? requiredItemSelectorPK.hashCode() : 0);
168            hashCode = 37 * hashCode + ((recommendedOrderSelectorPK != null) ? recommendedOrderSelectorPK.hashCode() : 0);
169            hashCode = 37 * hashCode + ((requiredOrderSelectorPK != null) ? requiredOrderSelectorPK.hashCode() : 0);
170            hashCode = 37 * hashCode + ((recommendedShipmentSelectorPK != null) ? recommendedShipmentSelectorPK.hashCode() : 0);
171            hashCode = 37 * hashCode + ((requiredShipmentSelectorPK != null) ? requiredShipmentSelectorPK.hashCode() : 0);
172            hashCode = 37 * hashCode + ((fromTime != null) ? fromTime.hashCode() : 0);
173            hashCode = 37 * hashCode + ((thruTime != null) ? thruTime.hashCode() : 0);
174            
175            _hashCode = hashCode;
176        }
177        
178        return _hashCode;
179    }
180    
181    @Override
182    @Nonnull
183    public String toString() {
184        if(_stringValue == null) {
185            _stringValue = "{" + 
186                    "entityId=" + getEntityId() +
187                    ", carrierServicePK=" + getCarrierServicePK() +
188                    ", carrierOptionPK=" + getCarrierOptionPK() +
189                    ", isRecommended=" + getIsRecommended() +
190                    ", isRequired=" + getIsRequired() +
191                    ", recommendedGeoCodeSelectorPK=" + getRecommendedGeoCodeSelectorPK() +
192                    ", requiredGeoCodeSelectorPK=" + getRequiredGeoCodeSelectorPK() +
193                    ", recommendedItemSelectorPK=" + getRecommendedItemSelectorPK() +
194                    ", requiredItemSelectorPK=" + getRequiredItemSelectorPK() +
195                    ", recommendedOrderSelectorPK=" + getRecommendedOrderSelectorPK() +
196                    ", requiredOrderSelectorPK=" + getRequiredOrderSelectorPK() +
197                    ", recommendedShipmentSelectorPK=" + getRecommendedShipmentSelectorPK() +
198                    ", requiredShipmentSelectorPK=" + getRequiredShipmentSelectorPK() +
199                    ", fromTime=" + getFromTime() +
200                    ", thruTime=" + getThruTime() +
201                    "}";
202        }
203        return _stringValue;
204    }
205    
206    @Override
207    public boolean equals(Object other) {
208        if(this == other)
209            return true;
210        
211        if(!hasIdentity())
212            return false;
213        
214        if(other instanceof  CarrierServiceOptionValue that) {
215            if(!that.hasIdentity())
216                return false;
217            
218            Long thisEntityId = getEntityId();
219            Long thatEntityId = that.getEntityId();
220            
221            boolean objectsEqual = thisEntityId.equals(thatEntityId);
222            if(objectsEqual)
223                objectsEqual = isIdentical(that);
224            
225            return objectsEqual;
226        } else {
227            return false;
228        }
229    }
230    
231    public boolean isIdentical(Object other) {
232        if(other instanceof CarrierServiceOptionValue that) {
233            boolean objectsEqual = true;
234            
235            
236            if(objectsEqual) {
237                CarrierServicePK thisCarrierServicePK = getCarrierServicePK();
238                CarrierServicePK thatCarrierServicePK = that.getCarrierServicePK();
239                
240                if(thisCarrierServicePK == null) {
241                    objectsEqual = objectsEqual && (thatCarrierServicePK == null);
242                } else {
243                    objectsEqual = objectsEqual && thisCarrierServicePK.equals(thatCarrierServicePK);
244                }
245            }
246            
247            if(objectsEqual) {
248                CarrierOptionPK thisCarrierOptionPK = getCarrierOptionPK();
249                CarrierOptionPK thatCarrierOptionPK = that.getCarrierOptionPK();
250                
251                if(thisCarrierOptionPK == null) {
252                    objectsEqual = objectsEqual && (thatCarrierOptionPK == null);
253                } else {
254                    objectsEqual = objectsEqual && thisCarrierOptionPK.equals(thatCarrierOptionPK);
255                }
256            }
257            
258            if(objectsEqual) {
259                Boolean thisIsRecommended = getIsRecommended();
260                Boolean thatIsRecommended = that.getIsRecommended();
261                
262                if(thisIsRecommended == null) {
263                    objectsEqual = objectsEqual && (thatIsRecommended == null);
264                } else {
265                    objectsEqual = objectsEqual && thisIsRecommended.equals(thatIsRecommended);
266                }
267            }
268            
269            if(objectsEqual) {
270                Boolean thisIsRequired = getIsRequired();
271                Boolean thatIsRequired = that.getIsRequired();
272                
273                if(thisIsRequired == null) {
274                    objectsEqual = objectsEqual && (thatIsRequired == null);
275                } else {
276                    objectsEqual = objectsEqual && thisIsRequired.equals(thatIsRequired);
277                }
278            }
279            
280            if(objectsEqual) {
281                SelectorPK thisRecommendedGeoCodeSelectorPK = getRecommendedGeoCodeSelectorPK();
282                SelectorPK thatRecommendedGeoCodeSelectorPK = that.getRecommendedGeoCodeSelectorPK();
283                
284                if(thisRecommendedGeoCodeSelectorPK == null) {
285                    objectsEqual = objectsEqual && (thatRecommendedGeoCodeSelectorPK == null);
286                } else {
287                    objectsEqual = objectsEqual && thisRecommendedGeoCodeSelectorPK.equals(thatRecommendedGeoCodeSelectorPK);
288                }
289            }
290            
291            if(objectsEqual) {
292                SelectorPK thisRequiredGeoCodeSelectorPK = getRequiredGeoCodeSelectorPK();
293                SelectorPK thatRequiredGeoCodeSelectorPK = that.getRequiredGeoCodeSelectorPK();
294                
295                if(thisRequiredGeoCodeSelectorPK == null) {
296                    objectsEqual = objectsEqual && (thatRequiredGeoCodeSelectorPK == null);
297                } else {
298                    objectsEqual = objectsEqual && thisRequiredGeoCodeSelectorPK.equals(thatRequiredGeoCodeSelectorPK);
299                }
300            }
301            
302            if(objectsEqual) {
303                SelectorPK thisRecommendedItemSelectorPK = getRecommendedItemSelectorPK();
304                SelectorPK thatRecommendedItemSelectorPK = that.getRecommendedItemSelectorPK();
305                
306                if(thisRecommendedItemSelectorPK == null) {
307                    objectsEqual = objectsEqual && (thatRecommendedItemSelectorPK == null);
308                } else {
309                    objectsEqual = objectsEqual && thisRecommendedItemSelectorPK.equals(thatRecommendedItemSelectorPK);
310                }
311            }
312            
313            if(objectsEqual) {
314                SelectorPK thisRequiredItemSelectorPK = getRequiredItemSelectorPK();
315                SelectorPK thatRequiredItemSelectorPK = that.getRequiredItemSelectorPK();
316                
317                if(thisRequiredItemSelectorPK == null) {
318                    objectsEqual = objectsEqual && (thatRequiredItemSelectorPK == null);
319                } else {
320                    objectsEqual = objectsEqual && thisRequiredItemSelectorPK.equals(thatRequiredItemSelectorPK);
321                }
322            }
323            
324            if(objectsEqual) {
325                SelectorPK thisRecommendedOrderSelectorPK = getRecommendedOrderSelectorPK();
326                SelectorPK thatRecommendedOrderSelectorPK = that.getRecommendedOrderSelectorPK();
327                
328                if(thisRecommendedOrderSelectorPK == null) {
329                    objectsEqual = objectsEqual && (thatRecommendedOrderSelectorPK == null);
330                } else {
331                    objectsEqual = objectsEqual && thisRecommendedOrderSelectorPK.equals(thatRecommendedOrderSelectorPK);
332                }
333            }
334            
335            if(objectsEqual) {
336                SelectorPK thisRequiredOrderSelectorPK = getRequiredOrderSelectorPK();
337                SelectorPK thatRequiredOrderSelectorPK = that.getRequiredOrderSelectorPK();
338                
339                if(thisRequiredOrderSelectorPK == null) {
340                    objectsEqual = objectsEqual && (thatRequiredOrderSelectorPK == null);
341                } else {
342                    objectsEqual = objectsEqual && thisRequiredOrderSelectorPK.equals(thatRequiredOrderSelectorPK);
343                }
344            }
345            
346            if(objectsEqual) {
347                SelectorPK thisRecommendedShipmentSelectorPK = getRecommendedShipmentSelectorPK();
348                SelectorPK thatRecommendedShipmentSelectorPK = that.getRecommendedShipmentSelectorPK();
349                
350                if(thisRecommendedShipmentSelectorPK == null) {
351                    objectsEqual = objectsEqual && (thatRecommendedShipmentSelectorPK == null);
352                } else {
353                    objectsEqual = objectsEqual && thisRecommendedShipmentSelectorPK.equals(thatRecommendedShipmentSelectorPK);
354                }
355            }
356            
357            if(objectsEqual) {
358                SelectorPK thisRequiredShipmentSelectorPK = getRequiredShipmentSelectorPK();
359                SelectorPK thatRequiredShipmentSelectorPK = that.getRequiredShipmentSelectorPK();
360                
361                if(thisRequiredShipmentSelectorPK == null) {
362                    objectsEqual = objectsEqual && (thatRequiredShipmentSelectorPK == null);
363                } else {
364                    objectsEqual = objectsEqual && thisRequiredShipmentSelectorPK.equals(thatRequiredShipmentSelectorPK);
365                }
366            }
367            
368            if(objectsEqual) {
369                Long thisFromTime = getFromTime();
370                Long thatFromTime = that.getFromTime();
371                
372                if(thisFromTime == null) {
373                    objectsEqual = objectsEqual && (thatFromTime == null);
374                } else {
375                    objectsEqual = objectsEqual && thisFromTime.equals(thatFromTime);
376                }
377            }
378            
379            if(objectsEqual) {
380                Long thisThruTime = getThruTime();
381                Long thatThruTime = that.getThruTime();
382                
383                if(thisThruTime == null) {
384                    objectsEqual = objectsEqual && (thatThruTime == null);
385                } else {
386                    objectsEqual = objectsEqual && thisThruTime.equals(thatThruTime);
387                }
388            }
389            
390            return objectsEqual;
391        } else {
392            return false;
393        }
394    }
395    
396    @Override
397    public boolean hasBeenModified() {
398        return carrierServicePKHasBeenModified || carrierOptionPKHasBeenModified || isRecommendedHasBeenModified || isRequiredHasBeenModified || recommendedGeoCodeSelectorPKHasBeenModified || requiredGeoCodeSelectorPKHasBeenModified || recommendedItemSelectorPKHasBeenModified || requiredItemSelectorPKHasBeenModified || recommendedOrderSelectorPKHasBeenModified || requiredOrderSelectorPKHasBeenModified || recommendedShipmentSelectorPKHasBeenModified || requiredShipmentSelectorPKHasBeenModified || fromTimeHasBeenModified || thruTimeHasBeenModified;
399    }
400    
401    @Override
402    public void clearHasBeenModified() {
403        carrierServicePKHasBeenModified = false;
404        carrierOptionPKHasBeenModified = false;
405        isRecommendedHasBeenModified = false;
406        isRequiredHasBeenModified = false;
407        recommendedGeoCodeSelectorPKHasBeenModified = false;
408        requiredGeoCodeSelectorPKHasBeenModified = false;
409        recommendedItemSelectorPKHasBeenModified = false;
410        requiredItemSelectorPKHasBeenModified = false;
411        recommendedOrderSelectorPKHasBeenModified = false;
412        requiredOrderSelectorPKHasBeenModified = false;
413        recommendedShipmentSelectorPKHasBeenModified = false;
414        requiredShipmentSelectorPKHasBeenModified = false;
415        fromTimeHasBeenModified = false;
416        thruTimeHasBeenModified = false;
417    }
418    
419    @Nonnull
420    public CarrierServicePK getCarrierServicePK() {
421        return carrierServicePK;
422    }
423    
424    public void setCarrierServicePK(@Nonnull CarrierServicePK carrierServicePK)
425            throws PersistenceNotNullException {
426        checkForNull(carrierServicePK);
427        
428        boolean update = true;
429        
430        if(this.carrierServicePK != null) {
431            if(this.carrierServicePK.equals(carrierServicePK)) {
432                update = false;
433            }
434        } else if(carrierServicePK == null) {
435            update = false;
436        }
437        
438        if(update) {
439            this.carrierServicePK = carrierServicePK;
440            carrierServicePKHasBeenModified = true;
441            clearHashAndString();
442        }
443    }
444    
445    public boolean getCarrierServicePKHasBeenModified() {
446        return carrierServicePKHasBeenModified;
447    }
448    
449    @Nonnull
450    public CarrierOptionPK getCarrierOptionPK() {
451        return carrierOptionPK;
452    }
453    
454    public void setCarrierOptionPK(@Nonnull CarrierOptionPK carrierOptionPK)
455            throws PersistenceNotNullException {
456        checkForNull(carrierOptionPK);
457        
458        boolean update = true;
459        
460        if(this.carrierOptionPK != null) {
461            if(this.carrierOptionPK.equals(carrierOptionPK)) {
462                update = false;
463            }
464        } else if(carrierOptionPK == null) {
465            update = false;
466        }
467        
468        if(update) {
469            this.carrierOptionPK = carrierOptionPK;
470            carrierOptionPKHasBeenModified = true;
471            clearHashAndString();
472        }
473    }
474    
475    public boolean getCarrierOptionPKHasBeenModified() {
476        return carrierOptionPKHasBeenModified;
477    }
478    
479    @Nonnull
480    public Boolean getIsRecommended() {
481        return isRecommended;
482    }
483    
484    public void setIsRecommended(@Nonnull Boolean isRecommended)
485            throws PersistenceNotNullException {
486        checkForNull(isRecommended);
487        
488        boolean update = true;
489        
490        if(this.isRecommended != null) {
491            if(this.isRecommended.equals(isRecommended)) {
492                update = false;
493            }
494        } else if(isRecommended == null) {
495            update = false;
496        }
497        
498        if(update) {
499            this.isRecommended = isRecommended;
500            isRecommendedHasBeenModified = true;
501            clearHashAndString();
502        }
503    }
504    
505    public boolean getIsRecommendedHasBeenModified() {
506        return isRecommendedHasBeenModified;
507    }
508    
509    @Nonnull
510    public Boolean getIsRequired() {
511        return isRequired;
512    }
513    
514    public void setIsRequired(@Nonnull Boolean isRequired)
515            throws PersistenceNotNullException {
516        checkForNull(isRequired);
517        
518        boolean update = true;
519        
520        if(this.isRequired != null) {
521            if(this.isRequired.equals(isRequired)) {
522                update = false;
523            }
524        } else if(isRequired == null) {
525            update = false;
526        }
527        
528        if(update) {
529            this.isRequired = isRequired;
530            isRequiredHasBeenModified = true;
531            clearHashAndString();
532        }
533    }
534    
535    public boolean getIsRequiredHasBeenModified() {
536        return isRequiredHasBeenModified;
537    }
538    
539    @Nullable
540    public SelectorPK getRecommendedGeoCodeSelectorPK() {
541        return recommendedGeoCodeSelectorPK;
542    }
543    
544    public void setRecommendedGeoCodeSelectorPK(@Nullable SelectorPK recommendedGeoCodeSelectorPK) {
545        boolean update = true;
546        
547        if(this.recommendedGeoCodeSelectorPK != null) {
548            if(this.recommendedGeoCodeSelectorPK.equals(recommendedGeoCodeSelectorPK)) {
549                update = false;
550            }
551        } else if(recommendedGeoCodeSelectorPK == null) {
552            update = false;
553        }
554        
555        if(update) {
556            this.recommendedGeoCodeSelectorPK = recommendedGeoCodeSelectorPK;
557            recommendedGeoCodeSelectorPKHasBeenModified = true;
558            clearHashAndString();
559        }
560    }
561    
562    public boolean getRecommendedGeoCodeSelectorPKHasBeenModified() {
563        return recommendedGeoCodeSelectorPKHasBeenModified;
564    }
565    
566    @Nullable
567    public SelectorPK getRequiredGeoCodeSelectorPK() {
568        return requiredGeoCodeSelectorPK;
569    }
570    
571    public void setRequiredGeoCodeSelectorPK(@Nullable SelectorPK requiredGeoCodeSelectorPK) {
572        boolean update = true;
573        
574        if(this.requiredGeoCodeSelectorPK != null) {
575            if(this.requiredGeoCodeSelectorPK.equals(requiredGeoCodeSelectorPK)) {
576                update = false;
577            }
578        } else if(requiredGeoCodeSelectorPK == null) {
579            update = false;
580        }
581        
582        if(update) {
583            this.requiredGeoCodeSelectorPK = requiredGeoCodeSelectorPK;
584            requiredGeoCodeSelectorPKHasBeenModified = true;
585            clearHashAndString();
586        }
587    }
588    
589    public boolean getRequiredGeoCodeSelectorPKHasBeenModified() {
590        return requiredGeoCodeSelectorPKHasBeenModified;
591    }
592    
593    @Nullable
594    public SelectorPK getRecommendedItemSelectorPK() {
595        return recommendedItemSelectorPK;
596    }
597    
598    public void setRecommendedItemSelectorPK(@Nullable SelectorPK recommendedItemSelectorPK) {
599        boolean update = true;
600        
601        if(this.recommendedItemSelectorPK != null) {
602            if(this.recommendedItemSelectorPK.equals(recommendedItemSelectorPK)) {
603                update = false;
604            }
605        } else if(recommendedItemSelectorPK == null) {
606            update = false;
607        }
608        
609        if(update) {
610            this.recommendedItemSelectorPK = recommendedItemSelectorPK;
611            recommendedItemSelectorPKHasBeenModified = true;
612            clearHashAndString();
613        }
614    }
615    
616    public boolean getRecommendedItemSelectorPKHasBeenModified() {
617        return recommendedItemSelectorPKHasBeenModified;
618    }
619    
620    @Nullable
621    public SelectorPK getRequiredItemSelectorPK() {
622        return requiredItemSelectorPK;
623    }
624    
625    public void setRequiredItemSelectorPK(@Nullable SelectorPK requiredItemSelectorPK) {
626        boolean update = true;
627        
628        if(this.requiredItemSelectorPK != null) {
629            if(this.requiredItemSelectorPK.equals(requiredItemSelectorPK)) {
630                update = false;
631            }
632        } else if(requiredItemSelectorPK == null) {
633            update = false;
634        }
635        
636        if(update) {
637            this.requiredItemSelectorPK = requiredItemSelectorPK;
638            requiredItemSelectorPKHasBeenModified = true;
639            clearHashAndString();
640        }
641    }
642    
643    public boolean getRequiredItemSelectorPKHasBeenModified() {
644        return requiredItemSelectorPKHasBeenModified;
645    }
646    
647    @Nullable
648    public SelectorPK getRecommendedOrderSelectorPK() {
649        return recommendedOrderSelectorPK;
650    }
651    
652    public void setRecommendedOrderSelectorPK(@Nullable SelectorPK recommendedOrderSelectorPK) {
653        boolean update = true;
654        
655        if(this.recommendedOrderSelectorPK != null) {
656            if(this.recommendedOrderSelectorPK.equals(recommendedOrderSelectorPK)) {
657                update = false;
658            }
659        } else if(recommendedOrderSelectorPK == null) {
660            update = false;
661        }
662        
663        if(update) {
664            this.recommendedOrderSelectorPK = recommendedOrderSelectorPK;
665            recommendedOrderSelectorPKHasBeenModified = true;
666            clearHashAndString();
667        }
668    }
669    
670    public boolean getRecommendedOrderSelectorPKHasBeenModified() {
671        return recommendedOrderSelectorPKHasBeenModified;
672    }
673    
674    @Nullable
675    public SelectorPK getRequiredOrderSelectorPK() {
676        return requiredOrderSelectorPK;
677    }
678    
679    public void setRequiredOrderSelectorPK(@Nullable SelectorPK requiredOrderSelectorPK) {
680        boolean update = true;
681        
682        if(this.requiredOrderSelectorPK != null) {
683            if(this.requiredOrderSelectorPK.equals(requiredOrderSelectorPK)) {
684                update = false;
685            }
686        } else if(requiredOrderSelectorPK == null) {
687            update = false;
688        }
689        
690        if(update) {
691            this.requiredOrderSelectorPK = requiredOrderSelectorPK;
692            requiredOrderSelectorPKHasBeenModified = true;
693            clearHashAndString();
694        }
695    }
696    
697    public boolean getRequiredOrderSelectorPKHasBeenModified() {
698        return requiredOrderSelectorPKHasBeenModified;
699    }
700    
701    @Nullable
702    public SelectorPK getRecommendedShipmentSelectorPK() {
703        return recommendedShipmentSelectorPK;
704    }
705    
706    public void setRecommendedShipmentSelectorPK(@Nullable SelectorPK recommendedShipmentSelectorPK) {
707        boolean update = true;
708        
709        if(this.recommendedShipmentSelectorPK != null) {
710            if(this.recommendedShipmentSelectorPK.equals(recommendedShipmentSelectorPK)) {
711                update = false;
712            }
713        } else if(recommendedShipmentSelectorPK == null) {
714            update = false;
715        }
716        
717        if(update) {
718            this.recommendedShipmentSelectorPK = recommendedShipmentSelectorPK;
719            recommendedShipmentSelectorPKHasBeenModified = true;
720            clearHashAndString();
721        }
722    }
723    
724    public boolean getRecommendedShipmentSelectorPKHasBeenModified() {
725        return recommendedShipmentSelectorPKHasBeenModified;
726    }
727    
728    @Nullable
729    public SelectorPK getRequiredShipmentSelectorPK() {
730        return requiredShipmentSelectorPK;
731    }
732    
733    public void setRequiredShipmentSelectorPK(@Nullable SelectorPK requiredShipmentSelectorPK) {
734        boolean update = true;
735        
736        if(this.requiredShipmentSelectorPK != null) {
737            if(this.requiredShipmentSelectorPK.equals(requiredShipmentSelectorPK)) {
738                update = false;
739            }
740        } else if(requiredShipmentSelectorPK == null) {
741            update = false;
742        }
743        
744        if(update) {
745            this.requiredShipmentSelectorPK = requiredShipmentSelectorPK;
746            requiredShipmentSelectorPKHasBeenModified = true;
747            clearHashAndString();
748        }
749    }
750    
751    public boolean getRequiredShipmentSelectorPKHasBeenModified() {
752        return requiredShipmentSelectorPKHasBeenModified;
753    }
754    
755    @Nonnull
756    public Long getFromTime() {
757        return fromTime;
758    }
759    
760    public void setFromTime(@Nonnull Long fromTime)
761            throws PersistenceNotNullException {
762        checkForNull(fromTime);
763        
764        boolean update = true;
765        
766        if(this.fromTime != null) {
767            if(this.fromTime.equals(fromTime)) {
768                update = false;
769            }
770        } else if(fromTime == null) {
771            update = false;
772        }
773        
774        if(update) {
775            this.fromTime = fromTime;
776            fromTimeHasBeenModified = true;
777            clearHashAndString();
778        }
779    }
780    
781    public boolean getFromTimeHasBeenModified() {
782        return fromTimeHasBeenModified;
783    }
784    
785    @Nonnull
786    public Long getThruTime() {
787        return thruTime;
788    }
789    
790    public void setThruTime(@Nonnull Long thruTime)
791            throws PersistenceNotNullException {
792        checkForNull(thruTime);
793        
794        boolean update = true;
795        
796        if(this.thruTime != null) {
797            if(this.thruTime.equals(thruTime)) {
798                update = false;
799            }
800        } else if(thruTime == null) {
801            update = false;
802        }
803        
804        if(update) {
805            this.thruTime = thruTime;
806            thruTimeHasBeenModified = true;
807            clearHashAndString();
808        }
809    }
810    
811    public boolean getThruTimeHasBeenModified() {
812        return thruTimeHasBeenModified;
813    }
814    
815}