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 * Person.java
021 */
022
023package com.echothree.model.data.party.server.entity;
024
025import com.echothree.model.data.party.common.pk.PersonPK;
026
027import com.echothree.model.data.party.common.pk.PartyPK;
028import com.echothree.model.data.party.common.pk.PersonalTitlePK;
029import com.echothree.model.data.party.common.pk.NameSuffixPK;
030
031import com.echothree.model.data.party.server.entity.Party;
032import com.echothree.model.data.party.server.entity.PersonalTitle;
033import com.echothree.model.data.party.server.entity.NameSuffix;
034
035import com.echothree.model.data.party.server.factory.PartyFactory;
036import com.echothree.model.data.party.server.factory.PersonalTitleFactory;
037import com.echothree.model.data.party.server.factory.NameSuffixFactory;
038
039import com.echothree.model.data.party.common.pk.PersonPK;
040
041import com.echothree.model.data.party.server.value.PersonValue;
042
043import com.echothree.model.data.party.server.factory.PersonFactory;
044
045import com.echothree.util.common.exception.PersistenceException;
046import com.echothree.util.common.exception.PersistenceDatabaseException;
047import com.echothree.util.common.exception.PersistenceNotNullException;
048import com.echothree.util.common.exception.PersistenceReadOnlyException;
049
050import com.echothree.util.common.persistence.BasePK;
051
052import com.echothree.util.common.persistence.type.ByteArray;
053
054import com.echothree.util.server.persistence.BaseEntity;
055import com.echothree.util.server.persistence.EntityPermission;
056import com.echothree.util.server.persistence.Session;
057import com.echothree.util.server.persistence.ThreadSession;
058
059import java.io.Serializable;
060
061import javax.annotation.Nonnull;
062import javax.annotation.Nullable;
063
064public class Person
065        extends BaseEntity
066        implements Serializable {
067    
068    private PersonPK _pk;
069    private PersonValue _value;
070    
071    /** Creates a new instance of Person */
072    public Person()
073            throws PersistenceException {
074        super();
075    }
076    
077    /** Creates a new instance of Person */
078    public Person(PersonValue value, EntityPermission entityPermission) {
079        super(entityPermission);
080        
081        _value = value;
082        _pk = value.getPrimaryKey();
083    }
084    
085    @Override
086    @Nonnull
087    public PersonFactory getBaseFactoryInstance() {
088        return PersonFactory.getInstance();
089    }
090    
091    @Override
092    public boolean hasBeenModified() {
093        return _value.hasBeenModified();
094    }
095    
096    @Override
097    public int hashCode() {
098        return _pk.hashCode();
099    }
100    
101    @Override
102    @Nonnull
103    public String toString() {
104        return _pk.toString();
105    }
106    
107    @Override
108    public boolean equals(Object other) {
109        if(this == other)
110            return true;
111        
112        if(other instanceof Person that) {
113            PersonValue thatValue = that.getPersonValue();
114            return _value.equals(thatValue);
115        } else {
116            return false;
117        }
118    }
119    
120    @Override
121    public void store()
122            throws PersistenceDatabaseException {
123        getBaseFactoryInstance().store(this);
124    }
125    
126    @Override
127    public void remove()
128            throws PersistenceDatabaseException {
129        getBaseFactoryInstance().remove(this);
130    }
131    
132    @Nonnull
133    public PersonValue getPersonValue() {
134        return _value;
135    }
136    
137    public void setPersonValue(@Nonnull PersonValue value)
138            throws PersistenceReadOnlyException {
139        checkReadWrite();
140        _value = value;
141    }
142    
143    @Override
144    @Nonnull
145    public PersonPK getPrimaryKey() {
146        return _pk;
147    }
148    
149    @Nonnull
150    public PartyPK getPartyPK() {
151        return _value.getPartyPK();
152    }
153    
154    @Nonnull
155    public Party getParty(EntityPermission entityPermission) {
156        return PartyFactory.getInstance().getEntityFromPK(entityPermission, getPartyPK());
157    }
158    
159    @Nonnull
160    public Party getParty() {
161        return getParty(EntityPermission.READ_ONLY);
162    }
163    
164    @Nonnull
165    public Party getPartyForUpdate() {
166        return getParty(EntityPermission.READ_WRITE);
167    }
168    
169    public void setPartyPK(@Nonnull PartyPK partyPK)
170            throws PersistenceNotNullException, PersistenceReadOnlyException {
171        checkReadWrite();
172        _value.setPartyPK(partyPK);
173    }
174    
175    public void setParty(@Nonnull Party entity) {
176        setPartyPK(entity == null ? null : entity.getPrimaryKey());
177    }
178    
179    public boolean getPartyPKHasBeenModified() {
180        return _value.getPartyPKHasBeenModified();
181    }
182    
183    @Nullable
184    public PersonalTitlePK getPersonalTitlePK() {
185        return _value.getPersonalTitlePK();
186    }
187    
188    @Nullable
189    public PersonalTitle getPersonalTitle(EntityPermission entityPermission) {
190        PersonalTitlePK pk = getPersonalTitlePK();
191        PersonalTitle entity = pk == null? null: PersonalTitleFactory.getInstance().getEntityFromPK(entityPermission, pk);
192        
193        return entity;
194    }
195    
196    @Nullable
197    public PersonalTitle getPersonalTitle() {
198        return getPersonalTitle(EntityPermission.READ_ONLY);
199    }
200    
201    @Nullable
202    public PersonalTitle getPersonalTitleForUpdate() {
203        return getPersonalTitle(EntityPermission.READ_WRITE);
204    }
205    
206    public void setPersonalTitlePK(@Nullable PersonalTitlePK personalTitlePK)
207            throws PersistenceNotNullException, PersistenceReadOnlyException {
208        checkReadWrite();
209        _value.setPersonalTitlePK(personalTitlePK);
210    }
211    
212    public void setPersonalTitle(@Nullable PersonalTitle entity) {
213        setPersonalTitlePK(entity == null ? null : entity.getPrimaryKey());
214    }
215    
216    public boolean getPersonalTitlePKHasBeenModified() {
217        return _value.getPersonalTitlePKHasBeenModified();
218    }
219    
220    @Nullable
221    public String getFirstName() {
222        return _value.getFirstName();
223    }
224    
225    public void setFirstName(@Nullable String firstName)
226            throws PersistenceNotNullException, PersistenceReadOnlyException {
227        checkReadWrite();
228        _value.setFirstName(firstName);
229    }
230    
231    public boolean getFirstNameHasBeenModified() {
232        return _value.getFirstNameHasBeenModified();
233    }
234    
235    @Nullable
236    public String getFirstNameSdx() {
237        return _value.getFirstNameSdx();
238    }
239    
240    public void setFirstNameSdx(@Nullable String firstNameSdx)
241            throws PersistenceNotNullException, PersistenceReadOnlyException {
242        checkReadWrite();
243        _value.setFirstNameSdx(firstNameSdx);
244    }
245    
246    public boolean getFirstNameSdxHasBeenModified() {
247        return _value.getFirstNameSdxHasBeenModified();
248    }
249    
250    @Nullable
251    public String getMiddleName() {
252        return _value.getMiddleName();
253    }
254    
255    public void setMiddleName(@Nullable String middleName)
256            throws PersistenceNotNullException, PersistenceReadOnlyException {
257        checkReadWrite();
258        _value.setMiddleName(middleName);
259    }
260    
261    public boolean getMiddleNameHasBeenModified() {
262        return _value.getMiddleNameHasBeenModified();
263    }
264    
265    @Nullable
266    public String getMiddleNameSdx() {
267        return _value.getMiddleNameSdx();
268    }
269    
270    public void setMiddleNameSdx(@Nullable String middleNameSdx)
271            throws PersistenceNotNullException, PersistenceReadOnlyException {
272        checkReadWrite();
273        _value.setMiddleNameSdx(middleNameSdx);
274    }
275    
276    public boolean getMiddleNameSdxHasBeenModified() {
277        return _value.getMiddleNameSdxHasBeenModified();
278    }
279    
280    @Nullable
281    public String getLastName() {
282        return _value.getLastName();
283    }
284    
285    public void setLastName(@Nullable String lastName)
286            throws PersistenceNotNullException, PersistenceReadOnlyException {
287        checkReadWrite();
288        _value.setLastName(lastName);
289    }
290    
291    public boolean getLastNameHasBeenModified() {
292        return _value.getLastNameHasBeenModified();
293    }
294    
295    @Nullable
296    public String getLastNameSdx() {
297        return _value.getLastNameSdx();
298    }
299    
300    public void setLastNameSdx(@Nullable String lastNameSdx)
301            throws PersistenceNotNullException, PersistenceReadOnlyException {
302        checkReadWrite();
303        _value.setLastNameSdx(lastNameSdx);
304    }
305    
306    public boolean getLastNameSdxHasBeenModified() {
307        return _value.getLastNameSdxHasBeenModified();
308    }
309    
310    @Nullable
311    public NameSuffixPK getNameSuffixPK() {
312        return _value.getNameSuffixPK();
313    }
314    
315    @Nullable
316    public NameSuffix getNameSuffix(EntityPermission entityPermission) {
317        NameSuffixPK pk = getNameSuffixPK();
318        NameSuffix entity = pk == null? null: NameSuffixFactory.getInstance().getEntityFromPK(entityPermission, pk);
319        
320        return entity;
321    }
322    
323    @Nullable
324    public NameSuffix getNameSuffix() {
325        return getNameSuffix(EntityPermission.READ_ONLY);
326    }
327    
328    @Nullable
329    public NameSuffix getNameSuffixForUpdate() {
330        return getNameSuffix(EntityPermission.READ_WRITE);
331    }
332    
333    public void setNameSuffixPK(@Nullable NameSuffixPK nameSuffixPK)
334            throws PersistenceNotNullException, PersistenceReadOnlyException {
335        checkReadWrite();
336        _value.setNameSuffixPK(nameSuffixPK);
337    }
338    
339    public void setNameSuffix(@Nullable NameSuffix entity) {
340        setNameSuffixPK(entity == null ? null : entity.getPrimaryKey());
341    }
342    
343    public boolean getNameSuffixPKHasBeenModified() {
344        return _value.getNameSuffixPKHasBeenModified();
345    }
346    
347    @Nonnull
348    public Long getFromTime() {
349        return _value.getFromTime();
350    }
351    
352    public void setFromTime(@Nonnull Long fromTime)
353            throws PersistenceNotNullException, PersistenceReadOnlyException {
354        checkReadWrite();
355        _value.setFromTime(fromTime);
356    }
357    
358    public boolean getFromTimeHasBeenModified() {
359        return _value.getFromTimeHasBeenModified();
360    }
361    
362    @Nonnull
363    public Long getThruTime() {
364        return _value.getThruTime();
365    }
366    
367    public void setThruTime(@Nonnull Long thruTime)
368            throws PersistenceNotNullException, PersistenceReadOnlyException {
369        checkReadWrite();
370        _value.setThruTime(thruTime);
371    }
372    
373    public boolean getThruTimeHasBeenModified() {
374        return _value.getThruTimeHasBeenModified();
375    }
376    
377}