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 * ProfileValue.java
021 */
022
023package com.echothree.model.data.party.server.value;
024
025import com.echothree.model.data.party.common.pk.ProfilePK;
026
027import com.echothree.model.data.party.server.factory.ProfileFactory;
028
029import com.echothree.model.data.party.common.pk.PartyPK;
030import com.echothree.model.data.icon.common.pk.IconPK;
031import com.echothree.model.data.party.common.pk.GenderPK;
032import com.echothree.model.data.party.common.pk.BirthdayFormatPK;
033import com.echothree.model.data.core.common.pk.MimeTypePK;
034
035import com.echothree.util.common.exception.PersistenceCloneException;
036import com.echothree.util.common.exception.PersistenceNotNullException;
037
038import com.echothree.util.server.persistence.BaseValue;
039
040import java.io.Serializable;
041
042import javax.annotation.Nonnull;
043import javax.annotation.Nullable;
044
045public class ProfileValue
046        extends BaseValue<ProfilePK>
047        implements Cloneable, Serializable {
048    
049    private PartyPK partyPK;
050    private boolean partyPKHasBeenModified = false;
051    private String nickname;
052    private boolean nicknameHasBeenModified = false;
053    private IconPK iconPK;
054    private boolean iconPKHasBeenModified = false;
055    private String pronunciation;
056    private boolean pronunciationHasBeenModified = false;
057    private GenderPK genderPK;
058    private boolean genderPKHasBeenModified = false;
059    private String pronouns;
060    private boolean pronounsHasBeenModified = false;
061    private Integer birthday;
062    private boolean birthdayHasBeenModified = false;
063    private BirthdayFormatPK birthdayFormatPK;
064    private boolean birthdayFormatPKHasBeenModified = false;
065    private String occupation;
066    private boolean occupationHasBeenModified = false;
067    private String hobbies;
068    private boolean hobbiesHasBeenModified = false;
069    private String location;
070    private boolean locationHasBeenModified = false;
071    private MimeTypePK bioMimeTypePK;
072    private boolean bioMimeTypePKHasBeenModified = false;
073    private String bio;
074    private boolean bioHasBeenModified = false;
075    private MimeTypePK signatureMimeTypePK;
076    private boolean signatureMimeTypePKHasBeenModified = false;
077    private String signature;
078    private boolean signatureHasBeenModified = false;
079    private Long fromTime;
080    private boolean fromTimeHasBeenModified = false;
081    private Long thruTime;
082    private boolean thruTimeHasBeenModified = false;
083    
084    private transient Integer _hashCode = null;
085    private transient String _stringValue = null;
086    
087    private void constructFields(PartyPK partyPK, String nickname, IconPK iconPK, String pronunciation, GenderPK genderPK, String pronouns, Integer birthday, BirthdayFormatPK birthdayFormatPK, String occupation, String hobbies, String location, MimeTypePK bioMimeTypePK, String bio, MimeTypePK signatureMimeTypePK, String signature, Long fromTime, Long thruTime)
088            throws PersistenceNotNullException {
089        checkForNull(partyPK);
090        this.partyPK = partyPK;
091        this.nickname = nickname;
092        this.iconPK = iconPK;
093        this.pronunciation = pronunciation;
094        this.genderPK = genderPK;
095        this.pronouns = pronouns;
096        this.birthday = birthday;
097        checkForNull(birthdayFormatPK);
098        this.birthdayFormatPK = birthdayFormatPK;
099        this.occupation = occupation;
100        this.hobbies = hobbies;
101        this.location = location;
102        this.bioMimeTypePK = bioMimeTypePK;
103        this.bio = bio;
104        this.signatureMimeTypePK = signatureMimeTypePK;
105        this.signature = signature;
106        checkForNull(fromTime);
107        this.fromTime = fromTime;
108        checkForNull(thruTime);
109        this.thruTime = thruTime;
110    }
111    
112    /** Creates a new instance of ProfileValue */
113    public ProfileValue(ProfilePK profilePK, PartyPK partyPK, String nickname, IconPK iconPK, String pronunciation, GenderPK genderPK, String pronouns, Integer birthday, BirthdayFormatPK birthdayFormatPK, String occupation, String hobbies, String location, MimeTypePK bioMimeTypePK, String bio, MimeTypePK signatureMimeTypePK, String signature, Long fromTime, Long thruTime)
114            throws PersistenceNotNullException {
115        super(profilePK);
116        constructFields(partyPK, nickname, iconPK, pronunciation, genderPK, pronouns, birthday, birthdayFormatPK, occupation, hobbies, location, bioMimeTypePK, bio, signatureMimeTypePK, signature, fromTime, thruTime);
117    }
118    
119    /** Creates a new instance of ProfileValue */
120    public ProfileValue(PartyPK partyPK, String nickname, IconPK iconPK, String pronunciation, GenderPK genderPK, String pronouns, Integer birthday, BirthdayFormatPK birthdayFormatPK, String occupation, String hobbies, String location, MimeTypePK bioMimeTypePK, String bio, MimeTypePK signatureMimeTypePK, String signature, Long fromTime, Long thruTime)
121            throws PersistenceNotNullException {
122        super();
123        constructFields(partyPK, nickname, iconPK, pronunciation, genderPK, pronouns, birthday, birthdayFormatPK, occupation, hobbies, location, bioMimeTypePK, bio, signatureMimeTypePK, signature, fromTime, thruTime);
124    }
125    
126    @Override
127    @Nonnull
128    public ProfileFactory getBaseFactoryInstance() {
129        return ProfileFactory.getInstance();
130    }
131    
132    @Override
133    @Nonnull
134    public ProfileValue clone() {
135        Object result;
136        
137        try {
138            result = super.clone();
139        } catch (CloneNotSupportedException cnse) {
140            // This shouldn't happen, fail when it does.
141            throw new PersistenceCloneException(cnse);
142        }
143        
144        return (ProfileValue)result;
145    }
146    
147    @Override
148    @Nonnull
149    public ProfilePK getPrimaryKey() {
150        if(_primaryKey == null) {
151            _primaryKey = new ProfilePK(entityId);
152        }
153        
154        return _primaryKey;
155    }
156    
157    private void clearHashAndString() {
158        _hashCode = null;
159        _stringValue = null;
160    }
161    
162    @Override
163    public int hashCode() {
164        if(_hashCode == null) {
165            int hashCode = 17;
166            
167            hashCode = 37 * hashCode + ((entityId != null) ? entityId.hashCode() : 0);
168            
169            hashCode = 37 * hashCode + ((partyPK != null) ? partyPK.hashCode() : 0);
170            hashCode = 37 * hashCode + ((nickname != null) ? nickname.hashCode() : 0);
171            hashCode = 37 * hashCode + ((iconPK != null) ? iconPK.hashCode() : 0);
172            hashCode = 37 * hashCode + ((pronunciation != null) ? pronunciation.hashCode() : 0);
173            hashCode = 37 * hashCode + ((genderPK != null) ? genderPK.hashCode() : 0);
174            hashCode = 37 * hashCode + ((pronouns != null) ? pronouns.hashCode() : 0);
175            hashCode = 37 * hashCode + ((birthday != null) ? birthday.hashCode() : 0);
176            hashCode = 37 * hashCode + ((birthdayFormatPK != null) ? birthdayFormatPK.hashCode() : 0);
177            hashCode = 37 * hashCode + ((occupation != null) ? occupation.hashCode() : 0);
178            hashCode = 37 * hashCode + ((hobbies != null) ? hobbies.hashCode() : 0);
179            hashCode = 37 * hashCode + ((location != null) ? location.hashCode() : 0);
180            hashCode = 37 * hashCode + ((bioMimeTypePK != null) ? bioMimeTypePK.hashCode() : 0);
181            hashCode = 37 * hashCode + ((bio != null) ? bio.hashCode() : 0);
182            hashCode = 37 * hashCode + ((signatureMimeTypePK != null) ? signatureMimeTypePK.hashCode() : 0);
183            hashCode = 37 * hashCode + ((signature != null) ? signature.hashCode() : 0);
184            hashCode = 37 * hashCode + ((fromTime != null) ? fromTime.hashCode() : 0);
185            hashCode = 37 * hashCode + ((thruTime != null) ? thruTime.hashCode() : 0);
186            
187            _hashCode = hashCode;
188        }
189        
190        return _hashCode;
191    }
192    
193    @Override
194    @Nonnull
195    public String toString() {
196        if(_stringValue == null) {
197            _stringValue = "{" + 
198                    "entityId=" + getEntityId() +
199                    ", partyPK=" + getPartyPK() +
200                    ", nickname=" + getNickname() +
201                    ", iconPK=" + getIconPK() +
202                    ", pronunciation=" + getPronunciation() +
203                    ", genderPK=" + getGenderPK() +
204                    ", pronouns=" + getPronouns() +
205                    ", birthday=" + getBirthday() +
206                    ", birthdayFormatPK=" + getBirthdayFormatPK() +
207                    ", occupation=" + getOccupation() +
208                    ", hobbies=" + getHobbies() +
209                    ", location=" + getLocation() +
210                    ", bioMimeTypePK=" + getBioMimeTypePK() +
211                    ", bio=" + getBio() +
212                    ", signatureMimeTypePK=" + getSignatureMimeTypePK() +
213                    ", signature=" + getSignature() +
214                    ", fromTime=" + getFromTime() +
215                    ", thruTime=" + getThruTime() +
216                    "}";
217        }
218        return _stringValue;
219    }
220    
221    @Override
222    public boolean equals(Object other) {
223        if(this == other)
224            return true;
225        
226        if(!hasIdentity())
227            return false;
228        
229        if(other instanceof  ProfileValue that) {
230            if(!that.hasIdentity())
231                return false;
232            
233            Long thisEntityId = getEntityId();
234            Long thatEntityId = that.getEntityId();
235            
236            boolean objectsEqual = thisEntityId.equals(thatEntityId);
237            if(objectsEqual)
238                objectsEqual = isIdentical(that);
239            
240            return objectsEqual;
241        } else {
242            return false;
243        }
244    }
245    
246    public boolean isIdentical(Object other) {
247        if(other instanceof ProfileValue that) {
248            boolean objectsEqual = true;
249            
250            
251            if(objectsEqual) {
252                PartyPK thisPartyPK = getPartyPK();
253                PartyPK thatPartyPK = that.getPartyPK();
254                
255                if(thisPartyPK == null) {
256                    objectsEqual = objectsEqual && (thatPartyPK == null);
257                } else {
258                    objectsEqual = objectsEqual && thisPartyPK.equals(thatPartyPK);
259                }
260            }
261            
262            if(objectsEqual) {
263                String thisNickname = getNickname();
264                String thatNickname = that.getNickname();
265                
266                if(thisNickname == null) {
267                    objectsEqual = objectsEqual && (thatNickname == null);
268                } else {
269                    objectsEqual = objectsEqual && thisNickname.equals(thatNickname);
270                }
271            }
272            
273            if(objectsEqual) {
274                IconPK thisIconPK = getIconPK();
275                IconPK thatIconPK = that.getIconPK();
276                
277                if(thisIconPK == null) {
278                    objectsEqual = objectsEqual && (thatIconPK == null);
279                } else {
280                    objectsEqual = objectsEqual && thisIconPK.equals(thatIconPK);
281                }
282            }
283            
284            if(objectsEqual) {
285                String thisPronunciation = getPronunciation();
286                String thatPronunciation = that.getPronunciation();
287                
288                if(thisPronunciation == null) {
289                    objectsEqual = objectsEqual && (thatPronunciation == null);
290                } else {
291                    objectsEqual = objectsEqual && thisPronunciation.equals(thatPronunciation);
292                }
293            }
294            
295            if(objectsEqual) {
296                GenderPK thisGenderPK = getGenderPK();
297                GenderPK thatGenderPK = that.getGenderPK();
298                
299                if(thisGenderPK == null) {
300                    objectsEqual = objectsEqual && (thatGenderPK == null);
301                } else {
302                    objectsEqual = objectsEqual && thisGenderPK.equals(thatGenderPK);
303                }
304            }
305            
306            if(objectsEqual) {
307                String thisPronouns = getPronouns();
308                String thatPronouns = that.getPronouns();
309                
310                if(thisPronouns == null) {
311                    objectsEqual = objectsEqual && (thatPronouns == null);
312                } else {
313                    objectsEqual = objectsEqual && thisPronouns.equals(thatPronouns);
314                }
315            }
316            
317            if(objectsEqual) {
318                Integer thisBirthday = getBirthday();
319                Integer thatBirthday = that.getBirthday();
320                
321                if(thisBirthday == null) {
322                    objectsEqual = objectsEqual && (thatBirthday == null);
323                } else {
324                    objectsEqual = objectsEqual && thisBirthday.equals(thatBirthday);
325                }
326            }
327            
328            if(objectsEqual) {
329                BirthdayFormatPK thisBirthdayFormatPK = getBirthdayFormatPK();
330                BirthdayFormatPK thatBirthdayFormatPK = that.getBirthdayFormatPK();
331                
332                if(thisBirthdayFormatPK == null) {
333                    objectsEqual = objectsEqual && (thatBirthdayFormatPK == null);
334                } else {
335                    objectsEqual = objectsEqual && thisBirthdayFormatPK.equals(thatBirthdayFormatPK);
336                }
337            }
338            
339            if(objectsEqual) {
340                String thisOccupation = getOccupation();
341                String thatOccupation = that.getOccupation();
342                
343                if(thisOccupation == null) {
344                    objectsEqual = objectsEqual && (thatOccupation == null);
345                } else {
346                    objectsEqual = objectsEqual && thisOccupation.equals(thatOccupation);
347                }
348            }
349            
350            if(objectsEqual) {
351                String thisHobbies = getHobbies();
352                String thatHobbies = that.getHobbies();
353                
354                if(thisHobbies == null) {
355                    objectsEqual = objectsEqual && (thatHobbies == null);
356                } else {
357                    objectsEqual = objectsEqual && thisHobbies.equals(thatHobbies);
358                }
359            }
360            
361            if(objectsEqual) {
362                String thisLocation = getLocation();
363                String thatLocation = that.getLocation();
364                
365                if(thisLocation == null) {
366                    objectsEqual = objectsEqual && (thatLocation == null);
367                } else {
368                    objectsEqual = objectsEqual && thisLocation.equals(thatLocation);
369                }
370            }
371            
372            if(objectsEqual) {
373                MimeTypePK thisBioMimeTypePK = getBioMimeTypePK();
374                MimeTypePK thatBioMimeTypePK = that.getBioMimeTypePK();
375                
376                if(thisBioMimeTypePK == null) {
377                    objectsEqual = objectsEqual && (thatBioMimeTypePK == null);
378                } else {
379                    objectsEqual = objectsEqual && thisBioMimeTypePK.equals(thatBioMimeTypePK);
380                }
381            }
382            
383            if(objectsEqual) {
384                String thisBio = getBio();
385                String thatBio = that.getBio();
386                
387                if(thisBio == null) {
388                    objectsEqual = objectsEqual && (thatBio == null);
389                } else {
390                    objectsEqual = objectsEqual && thisBio.equals(thatBio);
391                }
392            }
393            
394            if(objectsEqual) {
395                MimeTypePK thisSignatureMimeTypePK = getSignatureMimeTypePK();
396                MimeTypePK thatSignatureMimeTypePK = that.getSignatureMimeTypePK();
397                
398                if(thisSignatureMimeTypePK == null) {
399                    objectsEqual = objectsEqual && (thatSignatureMimeTypePK == null);
400                } else {
401                    objectsEqual = objectsEqual && thisSignatureMimeTypePK.equals(thatSignatureMimeTypePK);
402                }
403            }
404            
405            if(objectsEqual) {
406                String thisSignature = getSignature();
407                String thatSignature = that.getSignature();
408                
409                if(thisSignature == null) {
410                    objectsEqual = objectsEqual && (thatSignature == null);
411                } else {
412                    objectsEqual = objectsEqual && thisSignature.equals(thatSignature);
413                }
414            }
415            
416            if(objectsEqual) {
417                Long thisFromTime = getFromTime();
418                Long thatFromTime = that.getFromTime();
419                
420                if(thisFromTime == null) {
421                    objectsEqual = objectsEqual && (thatFromTime == null);
422                } else {
423                    objectsEqual = objectsEqual && thisFromTime.equals(thatFromTime);
424                }
425            }
426            
427            if(objectsEqual) {
428                Long thisThruTime = getThruTime();
429                Long thatThruTime = that.getThruTime();
430                
431                if(thisThruTime == null) {
432                    objectsEqual = objectsEqual && (thatThruTime == null);
433                } else {
434                    objectsEqual = objectsEqual && thisThruTime.equals(thatThruTime);
435                }
436            }
437            
438            return objectsEqual;
439        } else {
440            return false;
441        }
442    }
443    
444    @Override
445    public boolean hasBeenModified() {
446        return partyPKHasBeenModified || nicknameHasBeenModified || iconPKHasBeenModified || pronunciationHasBeenModified || genderPKHasBeenModified || pronounsHasBeenModified || birthdayHasBeenModified || birthdayFormatPKHasBeenModified || occupationHasBeenModified || hobbiesHasBeenModified || locationHasBeenModified || bioMimeTypePKHasBeenModified || bioHasBeenModified || signatureMimeTypePKHasBeenModified || signatureHasBeenModified || fromTimeHasBeenModified || thruTimeHasBeenModified;
447    }
448    
449    @Override
450    public void clearHasBeenModified() {
451        partyPKHasBeenModified = false;
452        nicknameHasBeenModified = false;
453        iconPKHasBeenModified = false;
454        pronunciationHasBeenModified = false;
455        genderPKHasBeenModified = false;
456        pronounsHasBeenModified = false;
457        birthdayHasBeenModified = false;
458        birthdayFormatPKHasBeenModified = false;
459        occupationHasBeenModified = false;
460        hobbiesHasBeenModified = false;
461        locationHasBeenModified = false;
462        bioMimeTypePKHasBeenModified = false;
463        bioHasBeenModified = false;
464        signatureMimeTypePKHasBeenModified = false;
465        signatureHasBeenModified = false;
466        fromTimeHasBeenModified = false;
467        thruTimeHasBeenModified = false;
468    }
469    
470    @Nonnull
471    public PartyPK getPartyPK() {
472        return partyPK;
473    }
474    
475    public void setPartyPK(@Nonnull PartyPK partyPK)
476            throws PersistenceNotNullException {
477        checkForNull(partyPK);
478        
479        boolean update = true;
480        
481        if(this.partyPK != null) {
482            if(this.partyPK.equals(partyPK)) {
483                update = false;
484            }
485        } else if(partyPK == null) {
486            update = false;
487        }
488        
489        if(update) {
490            this.partyPK = partyPK;
491            partyPKHasBeenModified = true;
492            clearHashAndString();
493        }
494    }
495    
496    public boolean getPartyPKHasBeenModified() {
497        return partyPKHasBeenModified;
498    }
499    
500    @Nullable
501    public String getNickname() {
502        return nickname;
503    }
504    
505    public void setNickname(@Nullable String nickname) {
506        boolean update = true;
507        
508        if(this.nickname != null) {
509            if(this.nickname.equals(nickname)) {
510                update = false;
511            }
512        } else if(nickname == null) {
513            update = false;
514        }
515        
516        if(update) {
517            this.nickname = nickname;
518            nicknameHasBeenModified = true;
519            clearHashAndString();
520        }
521    }
522    
523    public boolean getNicknameHasBeenModified() {
524        return nicknameHasBeenModified;
525    }
526    
527    @Nullable
528    public IconPK getIconPK() {
529        return iconPK;
530    }
531    
532    public void setIconPK(@Nullable IconPK iconPK) {
533        boolean update = true;
534        
535        if(this.iconPK != null) {
536            if(this.iconPK.equals(iconPK)) {
537                update = false;
538            }
539        } else if(iconPK == null) {
540            update = false;
541        }
542        
543        if(update) {
544            this.iconPK = iconPK;
545            iconPKHasBeenModified = true;
546            clearHashAndString();
547        }
548    }
549    
550    public boolean getIconPKHasBeenModified() {
551        return iconPKHasBeenModified;
552    }
553    
554    @Nullable
555    public String getPronunciation() {
556        return pronunciation;
557    }
558    
559    public void setPronunciation(@Nullable String pronunciation) {
560        boolean update = true;
561        
562        if(this.pronunciation != null) {
563            if(this.pronunciation.equals(pronunciation)) {
564                update = false;
565            }
566        } else if(pronunciation == null) {
567            update = false;
568        }
569        
570        if(update) {
571            this.pronunciation = pronunciation;
572            pronunciationHasBeenModified = true;
573            clearHashAndString();
574        }
575    }
576    
577    public boolean getPronunciationHasBeenModified() {
578        return pronunciationHasBeenModified;
579    }
580    
581    @Nullable
582    public GenderPK getGenderPK() {
583        return genderPK;
584    }
585    
586    public void setGenderPK(@Nullable GenderPK genderPK) {
587        boolean update = true;
588        
589        if(this.genderPK != null) {
590            if(this.genderPK.equals(genderPK)) {
591                update = false;
592            }
593        } else if(genderPK == null) {
594            update = false;
595        }
596        
597        if(update) {
598            this.genderPK = genderPK;
599            genderPKHasBeenModified = true;
600            clearHashAndString();
601        }
602    }
603    
604    public boolean getGenderPKHasBeenModified() {
605        return genderPKHasBeenModified;
606    }
607    
608    @Nullable
609    public String getPronouns() {
610        return pronouns;
611    }
612    
613    public void setPronouns(@Nullable String pronouns) {
614        boolean update = true;
615        
616        if(this.pronouns != null) {
617            if(this.pronouns.equals(pronouns)) {
618                update = false;
619            }
620        } else if(pronouns == null) {
621            update = false;
622        }
623        
624        if(update) {
625            this.pronouns = pronouns;
626            pronounsHasBeenModified = true;
627            clearHashAndString();
628        }
629    }
630    
631    public boolean getPronounsHasBeenModified() {
632        return pronounsHasBeenModified;
633    }
634    
635    @Nullable
636    public Integer getBirthday() {
637        return birthday;
638    }
639    
640    public void setBirthday(@Nullable Integer birthday) {
641        boolean update = true;
642        
643        if(this.birthday != null) {
644            if(this.birthday.equals(birthday)) {
645                update = false;
646            }
647        } else if(birthday == null) {
648            update = false;
649        }
650        
651        if(update) {
652            this.birthday = birthday;
653            birthdayHasBeenModified = true;
654            clearHashAndString();
655        }
656    }
657    
658    public boolean getBirthdayHasBeenModified() {
659        return birthdayHasBeenModified;
660    }
661    
662    @Nonnull
663    public BirthdayFormatPK getBirthdayFormatPK() {
664        return birthdayFormatPK;
665    }
666    
667    public void setBirthdayFormatPK(@Nonnull BirthdayFormatPK birthdayFormatPK)
668            throws PersistenceNotNullException {
669        checkForNull(birthdayFormatPK);
670        
671        boolean update = true;
672        
673        if(this.birthdayFormatPK != null) {
674            if(this.birthdayFormatPK.equals(birthdayFormatPK)) {
675                update = false;
676            }
677        } else if(birthdayFormatPK == null) {
678            update = false;
679        }
680        
681        if(update) {
682            this.birthdayFormatPK = birthdayFormatPK;
683            birthdayFormatPKHasBeenModified = true;
684            clearHashAndString();
685        }
686    }
687    
688    public boolean getBirthdayFormatPKHasBeenModified() {
689        return birthdayFormatPKHasBeenModified;
690    }
691    
692    @Nullable
693    public String getOccupation() {
694        return occupation;
695    }
696    
697    public void setOccupation(@Nullable String occupation) {
698        boolean update = true;
699        
700        if(this.occupation != null) {
701            if(this.occupation.equals(occupation)) {
702                update = false;
703            }
704        } else if(occupation == null) {
705            update = false;
706        }
707        
708        if(update) {
709            this.occupation = occupation;
710            occupationHasBeenModified = true;
711            clearHashAndString();
712        }
713    }
714    
715    public boolean getOccupationHasBeenModified() {
716        return occupationHasBeenModified;
717    }
718    
719    @Nullable
720    public String getHobbies() {
721        return hobbies;
722    }
723    
724    public void setHobbies(@Nullable String hobbies) {
725        boolean update = true;
726        
727        if(this.hobbies != null) {
728            if(this.hobbies.equals(hobbies)) {
729                update = false;
730            }
731        } else if(hobbies == null) {
732            update = false;
733        }
734        
735        if(update) {
736            this.hobbies = hobbies;
737            hobbiesHasBeenModified = true;
738            clearHashAndString();
739        }
740    }
741    
742    public boolean getHobbiesHasBeenModified() {
743        return hobbiesHasBeenModified;
744    }
745    
746    @Nullable
747    public String getLocation() {
748        return location;
749    }
750    
751    public void setLocation(@Nullable String location) {
752        boolean update = true;
753        
754        if(this.location != null) {
755            if(this.location.equals(location)) {
756                update = false;
757            }
758        } else if(location == null) {
759            update = false;
760        }
761        
762        if(update) {
763            this.location = location;
764            locationHasBeenModified = true;
765            clearHashAndString();
766        }
767    }
768    
769    public boolean getLocationHasBeenModified() {
770        return locationHasBeenModified;
771    }
772    
773    @Nullable
774    public MimeTypePK getBioMimeTypePK() {
775        return bioMimeTypePK;
776    }
777    
778    public void setBioMimeTypePK(@Nullable MimeTypePK bioMimeTypePK) {
779        boolean update = true;
780        
781        if(this.bioMimeTypePK != null) {
782            if(this.bioMimeTypePK.equals(bioMimeTypePK)) {
783                update = false;
784            }
785        } else if(bioMimeTypePK == null) {
786            update = false;
787        }
788        
789        if(update) {
790            this.bioMimeTypePK = bioMimeTypePK;
791            bioMimeTypePKHasBeenModified = true;
792            clearHashAndString();
793        }
794    }
795    
796    public boolean getBioMimeTypePKHasBeenModified() {
797        return bioMimeTypePKHasBeenModified;
798    }
799    
800    @Nullable
801    public String getBio() {
802        return bio;
803    }
804    
805    public void setBio(@Nullable String bio) {
806        boolean update = true;
807        
808        if(this.bio != null) {
809            if(this.bio.equals(bio)) {
810                update = false;
811            }
812        } else if(bio == null) {
813            update = false;
814        }
815        
816        if(update) {
817            this.bio = bio;
818            bioHasBeenModified = true;
819            clearHashAndString();
820        }
821    }
822    
823    public boolean getBioHasBeenModified() {
824        return bioHasBeenModified;
825    }
826    
827    @Nullable
828    public MimeTypePK getSignatureMimeTypePK() {
829        return signatureMimeTypePK;
830    }
831    
832    public void setSignatureMimeTypePK(@Nullable MimeTypePK signatureMimeTypePK) {
833        boolean update = true;
834        
835        if(this.signatureMimeTypePK != null) {
836            if(this.signatureMimeTypePK.equals(signatureMimeTypePK)) {
837                update = false;
838            }
839        } else if(signatureMimeTypePK == null) {
840            update = false;
841        }
842        
843        if(update) {
844            this.signatureMimeTypePK = signatureMimeTypePK;
845            signatureMimeTypePKHasBeenModified = true;
846            clearHashAndString();
847        }
848    }
849    
850    public boolean getSignatureMimeTypePKHasBeenModified() {
851        return signatureMimeTypePKHasBeenModified;
852    }
853    
854    @Nullable
855    public String getSignature() {
856        return signature;
857    }
858    
859    public void setSignature(@Nullable String signature) {
860        boolean update = true;
861        
862        if(this.signature != null) {
863            if(this.signature.equals(signature)) {
864                update = false;
865            }
866        } else if(signature == null) {
867            update = false;
868        }
869        
870        if(update) {
871            this.signature = signature;
872            signatureHasBeenModified = true;
873            clearHashAndString();
874        }
875    }
876    
877    public boolean getSignatureHasBeenModified() {
878        return signatureHasBeenModified;
879    }
880    
881    @Nonnull
882    public Long getFromTime() {
883        return fromTime;
884    }
885    
886    public void setFromTime(@Nonnull Long fromTime)
887            throws PersistenceNotNullException {
888        checkForNull(fromTime);
889        
890        boolean update = true;
891        
892        if(this.fromTime != null) {
893            if(this.fromTime.equals(fromTime)) {
894                update = false;
895            }
896        } else if(fromTime == null) {
897            update = false;
898        }
899        
900        if(update) {
901            this.fromTime = fromTime;
902            fromTimeHasBeenModified = true;
903            clearHashAndString();
904        }
905    }
906    
907    public boolean getFromTimeHasBeenModified() {
908        return fromTimeHasBeenModified;
909    }
910    
911    @Nonnull
912    public Long getThruTime() {
913        return thruTime;
914    }
915    
916    public void setThruTime(@Nonnull Long thruTime)
917            throws PersistenceNotNullException {
918        checkForNull(thruTime);
919        
920        boolean update = true;
921        
922        if(this.thruTime != null) {
923            if(this.thruTime.equals(thruTime)) {
924                update = false;
925            }
926        } else if(thruTime == null) {
927            update = false;
928        }
929        
930        if(update) {
931            this.thruTime = thruTime;
932            thruTimeHasBeenModified = true;
933            clearHashAndString();
934        }
935    }
936    
937    public boolean getThruTimeHasBeenModified() {
938        return thruTimeHasBeenModified;
939    }
940    
941}