001// --------------------------------------------------------------------------------
002// Copyright 2002-2024 Echo Three, LLC
003//
004// Licensed under the Apache License, Version 2.0 (the "License");
005// you may not use this file except in compliance with the License.
006// You may obtain a copy of the License at
007//
008//     http://www.apache.org/licenses/LICENSE-2.0
009//
010// Unless required by applicable law or agreed to in writing, software
011// distributed under the License is distributed on an "AS IS" BASIS,
012// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013// See the License for the specific language governing permissions and
014// limitations under the License.
015// --------------------------------------------------------------------------------
016// Generated File -- DO NOT EDIT BY HAND
017// --------------------------------------------------------------------------------
018
019/**
020 * UserVisitValue.java
021 */
022
023package com.echothree.model.data.user.server.value;
024
025import com.echothree.model.data.user.common.pk.UserVisitPK;
026
027import com.echothree.model.data.user.server.factory.UserVisitFactory;
028
029import com.echothree.model.data.user.common.pk.UserVisitGroupPK;
030import com.echothree.model.data.user.common.pk.UserKeyPK;
031import com.echothree.model.data.party.common.pk.LanguagePK;
032import com.echothree.model.data.accounting.common.pk.CurrencyPK;
033import com.echothree.model.data.party.common.pk.TimeZonePK;
034import com.echothree.model.data.party.common.pk.DateTimeFormatPK;
035import com.echothree.model.data.offer.common.pk.OfferUsePK;
036import com.echothree.model.data.associate.common.pk.AssociateReferralPK;
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 UserVisitValue
046        extends BaseValue<UserVisitPK>
047        implements Cloneable, Serializable {
048    
049    private UserVisitGroupPK userVisitGroupPK;
050    private boolean userVisitGroupPKHasBeenModified = false;
051    private UserKeyPK userKeyPK;
052    private boolean userKeyPKHasBeenModified = false;
053    private LanguagePK preferredLanguagePK;
054    private boolean preferredLanguagePKHasBeenModified = false;
055    private CurrencyPK preferredCurrencyPK;
056    private boolean preferredCurrencyPKHasBeenModified = false;
057    private TimeZonePK preferredTimeZonePK;
058    private boolean preferredTimeZonePKHasBeenModified = false;
059    private DateTimeFormatPK preferredDateTimeFormatPK;
060    private boolean preferredDateTimeFormatPKHasBeenModified = false;
061    private Long lastCommandTime;
062    private boolean lastCommandTimeHasBeenModified = false;
063    private OfferUsePK offerUsePK;
064    private boolean offerUsePKHasBeenModified = false;
065    private AssociateReferralPK associateReferralPK;
066    private boolean associateReferralPKHasBeenModified = false;
067    private Long retainUntilTime;
068    private boolean retainUntilTimeHasBeenModified = false;
069    private Long fromTime;
070    private boolean fromTimeHasBeenModified = false;
071    private Long thruTime;
072    private boolean thruTimeHasBeenModified = false;
073    
074    private transient Integer _hashCode = null;
075    private transient String _stringValue = null;
076    
077    private void constructFields(UserVisitGroupPK userVisitGroupPK, UserKeyPK userKeyPK, LanguagePK preferredLanguagePK, CurrencyPK preferredCurrencyPK, TimeZonePK preferredTimeZonePK, DateTimeFormatPK preferredDateTimeFormatPK, Long lastCommandTime, OfferUsePK offerUsePK, AssociateReferralPK associateReferralPK, Long retainUntilTime, Long fromTime, Long thruTime)
078            throws PersistenceNotNullException {
079        this.userVisitGroupPK = userVisitGroupPK;
080        this.userKeyPK = userKeyPK;
081        this.preferredLanguagePK = preferredLanguagePK;
082        this.preferredCurrencyPK = preferredCurrencyPK;
083        this.preferredTimeZonePK = preferredTimeZonePK;
084        this.preferredDateTimeFormatPK = preferredDateTimeFormatPK;
085        checkForNull(lastCommandTime);
086        this.lastCommandTime = lastCommandTime;
087        this.offerUsePK = offerUsePK;
088        this.associateReferralPK = associateReferralPK;
089        this.retainUntilTime = retainUntilTime;
090        checkForNull(fromTime);
091        this.fromTime = fromTime;
092        checkForNull(thruTime);
093        this.thruTime = thruTime;
094    }
095    
096    /** Creates a new instance of UserVisitValue */
097    public UserVisitValue(UserVisitPK userVisitPK, UserVisitGroupPK userVisitGroupPK, UserKeyPK userKeyPK, LanguagePK preferredLanguagePK, CurrencyPK preferredCurrencyPK, TimeZonePK preferredTimeZonePK, DateTimeFormatPK preferredDateTimeFormatPK, Long lastCommandTime, OfferUsePK offerUsePK, AssociateReferralPK associateReferralPK, Long retainUntilTime, Long fromTime, Long thruTime)
098            throws PersistenceNotNullException {
099        super(userVisitPK);
100        constructFields(userVisitGroupPK, userKeyPK, preferredLanguagePK, preferredCurrencyPK, preferredTimeZonePK, preferredDateTimeFormatPK, lastCommandTime, offerUsePK, associateReferralPK, retainUntilTime, fromTime, thruTime);
101    }
102    
103    /** Creates a new instance of UserVisitValue */
104    public UserVisitValue(UserVisitGroupPK userVisitGroupPK, UserKeyPK userKeyPK, LanguagePK preferredLanguagePK, CurrencyPK preferredCurrencyPK, TimeZonePK preferredTimeZonePK, DateTimeFormatPK preferredDateTimeFormatPK, Long lastCommandTime, OfferUsePK offerUsePK, AssociateReferralPK associateReferralPK, Long retainUntilTime, Long fromTime, Long thruTime)
105            throws PersistenceNotNullException {
106        super();
107        constructFields(userVisitGroupPK, userKeyPK, preferredLanguagePK, preferredCurrencyPK, preferredTimeZonePK, preferredDateTimeFormatPK, lastCommandTime, offerUsePK, associateReferralPK, retainUntilTime, fromTime, thruTime);
108    }
109    
110   @Override
111   public UserVisitFactory getBaseFactoryInstance() {
112        return UserVisitFactory.getInstance();
113    }
114    
115    @Override
116    public UserVisitValue clone() {
117        Object result;
118        
119        try {
120            result = super.clone();
121        } catch (CloneNotSupportedException cnse) {
122            // This shouldn't happen, fail when it does.
123            throw new PersistenceCloneException(cnse);
124        }
125        
126        return (UserVisitValue)result;
127    }
128    
129   @Override
130    public UserVisitPK getPrimaryKey() {
131        if(_primaryKey == null) {
132            _primaryKey = new UserVisitPK(entityId);
133        }
134        
135        return _primaryKey;
136    }
137    
138    private void clearHashAndString() {
139        _hashCode = null;
140        _stringValue = null;
141    }
142    
143    @Override
144    public int hashCode() {
145        if(_hashCode == null) {
146            int hashCode = 17;
147            
148            hashCode = 37 * hashCode + ((entityId != null) ? entityId.hashCode() : 0);
149            
150            hashCode = 37 * hashCode + ((userVisitGroupPK != null) ? userVisitGroupPK.hashCode() : 0);
151            hashCode = 37 * hashCode + ((userKeyPK != null) ? userKeyPK.hashCode() : 0);
152            hashCode = 37 * hashCode + ((preferredLanguagePK != null) ? preferredLanguagePK.hashCode() : 0);
153            hashCode = 37 * hashCode + ((preferredCurrencyPK != null) ? preferredCurrencyPK.hashCode() : 0);
154            hashCode = 37 * hashCode + ((preferredTimeZonePK != null) ? preferredTimeZonePK.hashCode() : 0);
155            hashCode = 37 * hashCode + ((preferredDateTimeFormatPK != null) ? preferredDateTimeFormatPK.hashCode() : 0);
156            hashCode = 37 * hashCode + ((lastCommandTime != null) ? lastCommandTime.hashCode() : 0);
157            hashCode = 37 * hashCode + ((offerUsePK != null) ? offerUsePK.hashCode() : 0);
158            hashCode = 37 * hashCode + ((associateReferralPK != null) ? associateReferralPK.hashCode() : 0);
159            hashCode = 37 * hashCode + ((retainUntilTime != null) ? retainUntilTime.hashCode() : 0);
160            hashCode = 37 * hashCode + ((fromTime != null) ? fromTime.hashCode() : 0);
161            hashCode = 37 * hashCode + ((thruTime != null) ? thruTime.hashCode() : 0);
162            
163            _hashCode = hashCode;
164        }
165        
166        return _hashCode;
167    }
168    
169    @Override
170    public String toString() {
171        if(_stringValue == null) {
172            StringBuilder stringValue = new StringBuilder("{");
173            
174            stringValue.append("entityId=").append(getEntityId());
175            
176            stringValue.append(", userVisitGroupPK=").append(getUserVisitGroupPK());
177            stringValue.append(", userKeyPK=").append(getUserKeyPK());
178            stringValue.append(", preferredLanguagePK=").append(getPreferredLanguagePK());
179            stringValue.append(", preferredCurrencyPK=").append(getPreferredCurrencyPK());
180            stringValue.append(", preferredTimeZonePK=").append(getPreferredTimeZonePK());
181            stringValue.append(", preferredDateTimeFormatPK=").append(getPreferredDateTimeFormatPK());
182            stringValue.append(", lastCommandTime=").append(getLastCommandTime());
183            stringValue.append(", offerUsePK=").append(getOfferUsePK());
184            stringValue.append(", associateReferralPK=").append(getAssociateReferralPK());
185            stringValue.append(", retainUntilTime=").append(getRetainUntilTime());
186            stringValue.append(", fromTime=").append(getFromTime());
187            stringValue.append(", thruTime=").append(getThruTime());
188            
189            stringValue.append('}');
190            
191            _stringValue = stringValue.toString();
192        }
193        return _stringValue;
194    }
195    
196    @Override
197    public boolean equals(Object other) {
198        if(this == other)
199            return true;
200        
201        if(!hasIdentity())
202            return false;
203        
204        if(other instanceof  UserVisitValue) {
205            UserVisitValue that = (UserVisitValue)other;
206            
207            if(!that.hasIdentity())
208                return false;
209            
210            Long thisEntityId = getEntityId();
211            Long thatEntityId = that.getEntityId();
212            
213            boolean objectsEqual = thisEntityId.equals(thatEntityId);
214            if(objectsEqual)
215                objectsEqual = objectsEqual && isIdentical(that);
216            
217            return objectsEqual;
218        } else {
219            return false;
220        }
221    }
222    
223    public boolean isIdentical(Object other) {
224        if(other instanceof UserVisitValue) {
225            UserVisitValue that = (UserVisitValue)other;
226            boolean objectsEqual = true;
227            
228            
229            if(objectsEqual) {
230                UserVisitGroupPK thisUserVisitGroupPK = getUserVisitGroupPK();
231                UserVisitGroupPK thatUserVisitGroupPK = that.getUserVisitGroupPK();
232                
233                if(thisUserVisitGroupPK == null) {
234                    objectsEqual = objectsEqual && (thatUserVisitGroupPK == null);
235                } else {
236                    objectsEqual = objectsEqual && thisUserVisitGroupPK.equals(thatUserVisitGroupPK);
237                }
238            }
239            
240            if(objectsEqual) {
241                UserKeyPK thisUserKeyPK = getUserKeyPK();
242                UserKeyPK thatUserKeyPK = that.getUserKeyPK();
243                
244                if(thisUserKeyPK == null) {
245                    objectsEqual = objectsEqual && (thatUserKeyPK == null);
246                } else {
247                    objectsEqual = objectsEqual && thisUserKeyPK.equals(thatUserKeyPK);
248                }
249            }
250            
251            if(objectsEqual) {
252                LanguagePK thisPreferredLanguagePK = getPreferredLanguagePK();
253                LanguagePK thatPreferredLanguagePK = that.getPreferredLanguagePK();
254                
255                if(thisPreferredLanguagePK == null) {
256                    objectsEqual = objectsEqual && (thatPreferredLanguagePK == null);
257                } else {
258                    objectsEqual = objectsEqual && thisPreferredLanguagePK.equals(thatPreferredLanguagePK);
259                }
260            }
261            
262            if(objectsEqual) {
263                CurrencyPK thisPreferredCurrencyPK = getPreferredCurrencyPK();
264                CurrencyPK thatPreferredCurrencyPK = that.getPreferredCurrencyPK();
265                
266                if(thisPreferredCurrencyPK == null) {
267                    objectsEqual = objectsEqual && (thatPreferredCurrencyPK == null);
268                } else {
269                    objectsEqual = objectsEqual && thisPreferredCurrencyPK.equals(thatPreferredCurrencyPK);
270                }
271            }
272            
273            if(objectsEqual) {
274                TimeZonePK thisPreferredTimeZonePK = getPreferredTimeZonePK();
275                TimeZonePK thatPreferredTimeZonePK = that.getPreferredTimeZonePK();
276                
277                if(thisPreferredTimeZonePK == null) {
278                    objectsEqual = objectsEqual && (thatPreferredTimeZonePK == null);
279                } else {
280                    objectsEqual = objectsEqual && thisPreferredTimeZonePK.equals(thatPreferredTimeZonePK);
281                }
282            }
283            
284            if(objectsEqual) {
285                DateTimeFormatPK thisPreferredDateTimeFormatPK = getPreferredDateTimeFormatPK();
286                DateTimeFormatPK thatPreferredDateTimeFormatPK = that.getPreferredDateTimeFormatPK();
287                
288                if(thisPreferredDateTimeFormatPK == null) {
289                    objectsEqual = objectsEqual && (thatPreferredDateTimeFormatPK == null);
290                } else {
291                    objectsEqual = objectsEqual && thisPreferredDateTimeFormatPK.equals(thatPreferredDateTimeFormatPK);
292                }
293            }
294            
295            if(objectsEqual) {
296                Long thisLastCommandTime = getLastCommandTime();
297                Long thatLastCommandTime = that.getLastCommandTime();
298                
299                if(thisLastCommandTime == null) {
300                    objectsEqual = objectsEqual && (thatLastCommandTime == null);
301                } else {
302                    objectsEqual = objectsEqual && thisLastCommandTime.equals(thatLastCommandTime);
303                }
304            }
305            
306            if(objectsEqual) {
307                OfferUsePK thisOfferUsePK = getOfferUsePK();
308                OfferUsePK thatOfferUsePK = that.getOfferUsePK();
309                
310                if(thisOfferUsePK == null) {
311                    objectsEqual = objectsEqual && (thatOfferUsePK == null);
312                } else {
313                    objectsEqual = objectsEqual && thisOfferUsePK.equals(thatOfferUsePK);
314                }
315            }
316            
317            if(objectsEqual) {
318                AssociateReferralPK thisAssociateReferralPK = getAssociateReferralPK();
319                AssociateReferralPK thatAssociateReferralPK = that.getAssociateReferralPK();
320                
321                if(thisAssociateReferralPK == null) {
322                    objectsEqual = objectsEqual && (thatAssociateReferralPK == null);
323                } else {
324                    objectsEqual = objectsEqual && thisAssociateReferralPK.equals(thatAssociateReferralPK);
325                }
326            }
327            
328            if(objectsEqual) {
329                Long thisRetainUntilTime = getRetainUntilTime();
330                Long thatRetainUntilTime = that.getRetainUntilTime();
331                
332                if(thisRetainUntilTime == null) {
333                    objectsEqual = objectsEqual && (thatRetainUntilTime == null);
334                } else {
335                    objectsEqual = objectsEqual && thisRetainUntilTime.equals(thatRetainUntilTime);
336                }
337            }
338            
339            if(objectsEqual) {
340                Long thisFromTime = getFromTime();
341                Long thatFromTime = that.getFromTime();
342                
343                if(thisFromTime == null) {
344                    objectsEqual = objectsEqual && (thatFromTime == null);
345                } else {
346                    objectsEqual = objectsEqual && thisFromTime.equals(thatFromTime);
347                }
348            }
349            
350            if(objectsEqual) {
351                Long thisThruTime = getThruTime();
352                Long thatThruTime = that.getThruTime();
353                
354                if(thisThruTime == null) {
355                    objectsEqual = objectsEqual && (thatThruTime == null);
356                } else {
357                    objectsEqual = objectsEqual && thisThruTime.equals(thatThruTime);
358                }
359            }
360            
361            return objectsEqual;
362        } else {
363            return false;
364        }
365    }
366    
367    @Override
368    public boolean hasBeenModified() {
369        return userVisitGroupPKHasBeenModified || userKeyPKHasBeenModified || preferredLanguagePKHasBeenModified || preferredCurrencyPKHasBeenModified || preferredTimeZonePKHasBeenModified || preferredDateTimeFormatPKHasBeenModified || lastCommandTimeHasBeenModified || offerUsePKHasBeenModified || associateReferralPKHasBeenModified || retainUntilTimeHasBeenModified || fromTimeHasBeenModified || thruTimeHasBeenModified;
370    }
371    
372    @Override
373    public void clearHasBeenModified() {
374        userVisitGroupPKHasBeenModified = false;
375        userKeyPKHasBeenModified = false;
376        preferredLanguagePKHasBeenModified = false;
377        preferredCurrencyPKHasBeenModified = false;
378        preferredTimeZonePKHasBeenModified = false;
379        preferredDateTimeFormatPKHasBeenModified = false;
380        lastCommandTimeHasBeenModified = false;
381        offerUsePKHasBeenModified = false;
382        associateReferralPKHasBeenModified = false;
383        retainUntilTimeHasBeenModified = false;
384        fromTimeHasBeenModified = false;
385        thruTimeHasBeenModified = false;
386    }
387    
388    public UserVisitGroupPK getUserVisitGroupPK() {
389        return userVisitGroupPK;
390    }
391    
392    public void setUserVisitGroupPK(UserVisitGroupPK userVisitGroupPK) {
393        boolean update = true;
394        
395        if(this.userVisitGroupPK != null) {
396            if(this.userVisitGroupPK.equals(userVisitGroupPK)) {
397                update = false;
398            }
399        } else if(userVisitGroupPK == null) {
400            update = false;
401        }
402        
403        if(update) {
404            this.userVisitGroupPK = userVisitGroupPK;
405            userVisitGroupPKHasBeenModified = true;
406            clearHashAndString();
407        }
408    }
409    
410    public boolean getUserVisitGroupPKHasBeenModified() {
411        return userVisitGroupPKHasBeenModified;
412    }
413    
414    public UserKeyPK getUserKeyPK() {
415        return userKeyPK;
416    }
417    
418    public void setUserKeyPK(UserKeyPK userKeyPK) {
419        boolean update = true;
420        
421        if(this.userKeyPK != null) {
422            if(this.userKeyPK.equals(userKeyPK)) {
423                update = false;
424            }
425        } else if(userKeyPK == null) {
426            update = false;
427        }
428        
429        if(update) {
430            this.userKeyPK = userKeyPK;
431            userKeyPKHasBeenModified = true;
432            clearHashAndString();
433        }
434    }
435    
436    public boolean getUserKeyPKHasBeenModified() {
437        return userKeyPKHasBeenModified;
438    }
439    
440    public LanguagePK getPreferredLanguagePK() {
441        return preferredLanguagePK;
442    }
443    
444    public void setPreferredLanguagePK(LanguagePK preferredLanguagePK) {
445        boolean update = true;
446        
447        if(this.preferredLanguagePK != null) {
448            if(this.preferredLanguagePK.equals(preferredLanguagePK)) {
449                update = false;
450            }
451        } else if(preferredLanguagePK == null) {
452            update = false;
453        }
454        
455        if(update) {
456            this.preferredLanguagePK = preferredLanguagePK;
457            preferredLanguagePKHasBeenModified = true;
458            clearHashAndString();
459        }
460    }
461    
462    public boolean getPreferredLanguagePKHasBeenModified() {
463        return preferredLanguagePKHasBeenModified;
464    }
465    
466    public CurrencyPK getPreferredCurrencyPK() {
467        return preferredCurrencyPK;
468    }
469    
470    public void setPreferredCurrencyPK(CurrencyPK preferredCurrencyPK) {
471        boolean update = true;
472        
473        if(this.preferredCurrencyPK != null) {
474            if(this.preferredCurrencyPK.equals(preferredCurrencyPK)) {
475                update = false;
476            }
477        } else if(preferredCurrencyPK == null) {
478            update = false;
479        }
480        
481        if(update) {
482            this.preferredCurrencyPK = preferredCurrencyPK;
483            preferredCurrencyPKHasBeenModified = true;
484            clearHashAndString();
485        }
486    }
487    
488    public boolean getPreferredCurrencyPKHasBeenModified() {
489        return preferredCurrencyPKHasBeenModified;
490    }
491    
492    public TimeZonePK getPreferredTimeZonePK() {
493        return preferredTimeZonePK;
494    }
495    
496    public void setPreferredTimeZonePK(TimeZonePK preferredTimeZonePK) {
497        boolean update = true;
498        
499        if(this.preferredTimeZonePK != null) {
500            if(this.preferredTimeZonePK.equals(preferredTimeZonePK)) {
501                update = false;
502            }
503        } else if(preferredTimeZonePK == null) {
504            update = false;
505        }
506        
507        if(update) {
508            this.preferredTimeZonePK = preferredTimeZonePK;
509            preferredTimeZonePKHasBeenModified = true;
510            clearHashAndString();
511        }
512    }
513    
514    public boolean getPreferredTimeZonePKHasBeenModified() {
515        return preferredTimeZonePKHasBeenModified;
516    }
517    
518    public DateTimeFormatPK getPreferredDateTimeFormatPK() {
519        return preferredDateTimeFormatPK;
520    }
521    
522    public void setPreferredDateTimeFormatPK(DateTimeFormatPK preferredDateTimeFormatPK) {
523        boolean update = true;
524        
525        if(this.preferredDateTimeFormatPK != null) {
526            if(this.preferredDateTimeFormatPK.equals(preferredDateTimeFormatPK)) {
527                update = false;
528            }
529        } else if(preferredDateTimeFormatPK == null) {
530            update = false;
531        }
532        
533        if(update) {
534            this.preferredDateTimeFormatPK = preferredDateTimeFormatPK;
535            preferredDateTimeFormatPKHasBeenModified = true;
536            clearHashAndString();
537        }
538    }
539    
540    public boolean getPreferredDateTimeFormatPKHasBeenModified() {
541        return preferredDateTimeFormatPKHasBeenModified;
542    }
543    
544    public Long getLastCommandTime() {
545        return lastCommandTime;
546    }
547    
548    public void setLastCommandTime(Long lastCommandTime)
549            throws PersistenceNotNullException {
550        checkForNull(lastCommandTime);
551        
552        boolean update = true;
553        
554        if(this.lastCommandTime != null) {
555            if(this.lastCommandTime.equals(lastCommandTime)) {
556                update = false;
557            }
558        } else if(lastCommandTime == null) {
559            update = false;
560        }
561        
562        if(update) {
563            this.lastCommandTime = lastCommandTime;
564            lastCommandTimeHasBeenModified = true;
565            clearHashAndString();
566        }
567    }
568    
569    public boolean getLastCommandTimeHasBeenModified() {
570        return lastCommandTimeHasBeenModified;
571    }
572    
573    public OfferUsePK getOfferUsePK() {
574        return offerUsePK;
575    }
576    
577    public void setOfferUsePK(OfferUsePK offerUsePK) {
578        boolean update = true;
579        
580        if(this.offerUsePK != null) {
581            if(this.offerUsePK.equals(offerUsePK)) {
582                update = false;
583            }
584        } else if(offerUsePK == null) {
585            update = false;
586        }
587        
588        if(update) {
589            this.offerUsePK = offerUsePK;
590            offerUsePKHasBeenModified = true;
591            clearHashAndString();
592        }
593    }
594    
595    public boolean getOfferUsePKHasBeenModified() {
596        return offerUsePKHasBeenModified;
597    }
598    
599    public AssociateReferralPK getAssociateReferralPK() {
600        return associateReferralPK;
601    }
602    
603    public void setAssociateReferralPK(AssociateReferralPK associateReferralPK) {
604        boolean update = true;
605        
606        if(this.associateReferralPK != null) {
607            if(this.associateReferralPK.equals(associateReferralPK)) {
608                update = false;
609            }
610        } else if(associateReferralPK == null) {
611            update = false;
612        }
613        
614        if(update) {
615            this.associateReferralPK = associateReferralPK;
616            associateReferralPKHasBeenModified = true;
617            clearHashAndString();
618        }
619    }
620    
621    public boolean getAssociateReferralPKHasBeenModified() {
622        return associateReferralPKHasBeenModified;
623    }
624    
625    public Long getRetainUntilTime() {
626        return retainUntilTime;
627    }
628    
629    public void setRetainUntilTime(Long retainUntilTime) {
630        boolean update = true;
631        
632        if(this.retainUntilTime != null) {
633            if(this.retainUntilTime.equals(retainUntilTime)) {
634                update = false;
635            }
636        } else if(retainUntilTime == null) {
637            update = false;
638        }
639        
640        if(update) {
641            this.retainUntilTime = retainUntilTime;
642            retainUntilTimeHasBeenModified = true;
643            clearHashAndString();
644        }
645    }
646    
647    public boolean getRetainUntilTimeHasBeenModified() {
648        return retainUntilTimeHasBeenModified;
649    }
650    
651    public Long getFromTime() {
652        return fromTime;
653    }
654    
655    public void setFromTime(Long fromTime)
656            throws PersistenceNotNullException {
657        checkForNull(fromTime);
658        
659        boolean update = true;
660        
661        if(this.fromTime != null) {
662            if(this.fromTime.equals(fromTime)) {
663                update = false;
664            }
665        } else if(fromTime == null) {
666            update = false;
667        }
668        
669        if(update) {
670            this.fromTime = fromTime;
671            fromTimeHasBeenModified = true;
672            clearHashAndString();
673        }
674    }
675    
676    public boolean getFromTimeHasBeenModified() {
677        return fromTimeHasBeenModified;
678    }
679    
680    public Long getThruTime() {
681        return thruTime;
682    }
683    
684    public void setThruTime(Long thruTime)
685            throws PersistenceNotNullException {
686        checkForNull(thruTime);
687        
688        boolean update = true;
689        
690        if(this.thruTime != null) {
691            if(this.thruTime.equals(thruTime)) {
692                update = false;
693            }
694        } else if(thruTime == null) {
695            update = false;
696        }
697        
698        if(update) {
699            this.thruTime = thruTime;
700            thruTimeHasBeenModified = true;
701            clearHashAndString();
702        }
703    }
704    
705    public boolean getThruTimeHasBeenModified() {
706        return thruTimeHasBeenModified;
707    }
708    
709}