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 * PartyDetail.java
021 */
022
023package com.echothree.model.data.party.server.entity;
024
025import com.echothree.model.data.party.common.pk.PartyDetailPK;
026
027import com.echothree.model.data.party.common.pk.PartyPK;
028import com.echothree.model.data.party.common.pk.PartyTypePK;
029import com.echothree.model.data.party.common.pk.LanguagePK;
030import com.echothree.model.data.accounting.common.pk.CurrencyPK;
031import com.echothree.model.data.party.common.pk.TimeZonePK;
032import com.echothree.model.data.party.common.pk.DateTimeFormatPK;
033
034import com.echothree.model.data.party.server.entity.Party;
035import com.echothree.model.data.party.server.entity.PartyType;
036import com.echothree.model.data.party.server.entity.Language;
037import com.echothree.model.data.accounting.server.entity.Currency;
038import com.echothree.model.data.party.server.entity.TimeZone;
039import com.echothree.model.data.party.server.entity.DateTimeFormat;
040
041import com.echothree.model.data.party.server.factory.PartyFactory;
042import com.echothree.model.data.party.server.factory.PartyTypeFactory;
043import com.echothree.model.data.party.server.factory.LanguageFactory;
044import com.echothree.model.data.accounting.server.factory.CurrencyFactory;
045import com.echothree.model.data.party.server.factory.TimeZoneFactory;
046import com.echothree.model.data.party.server.factory.DateTimeFormatFactory;
047
048import com.echothree.model.data.party.common.pk.PartyDetailPK;
049
050import com.echothree.model.data.party.server.value.PartyDetailValue;
051
052import com.echothree.model.data.party.server.factory.PartyDetailFactory;
053
054import com.echothree.util.common.exception.PersistenceException;
055import com.echothree.util.common.exception.PersistenceDatabaseException;
056import com.echothree.util.common.exception.PersistenceNotNullException;
057import com.echothree.util.common.exception.PersistenceReadOnlyException;
058
059import com.echothree.util.common.persistence.BasePK;
060
061import com.echothree.util.common.persistence.type.ByteArray;
062
063import com.echothree.util.server.persistence.BaseEntity;
064import com.echothree.util.server.persistence.EntityPermission;
065import com.echothree.util.server.persistence.Session;
066import com.echothree.util.server.persistence.ThreadSession;
067
068import java.io.Serializable;
069
070import javax.annotation.Nonnull;
071import javax.annotation.Nullable;
072
073public class PartyDetail
074        extends BaseEntity
075        implements Serializable {
076    
077    private PartyDetailPK _pk;
078    private PartyDetailValue _value;
079    
080    /** Creates a new instance of PartyDetail */
081    public PartyDetail()
082            throws PersistenceException {
083        super();
084    }
085    
086    /** Creates a new instance of PartyDetail */
087    public PartyDetail(PartyDetailValue value, EntityPermission entityPermission) {
088        super(entityPermission);
089        
090        _value = value;
091        _pk = value.getPrimaryKey();
092    }
093    
094    @Override
095    @Nonnull
096    public PartyDetailFactory getBaseFactoryInstance() {
097        return PartyDetailFactory.getInstance();
098    }
099    
100    @Override
101    public boolean hasBeenModified() {
102        return _value.hasBeenModified();
103    }
104    
105    @Override
106    public int hashCode() {
107        return _pk.hashCode();
108    }
109    
110    @Override
111    @Nonnull
112    public String toString() {
113        return _pk.toString();
114    }
115    
116    @Override
117    public boolean equals(Object other) {
118        if(this == other)
119            return true;
120        
121        if(other instanceof PartyDetail that) {
122            PartyDetailValue thatValue = that.getPartyDetailValue();
123            return _value.equals(thatValue);
124        } else {
125            return false;
126        }
127    }
128    
129    @Override
130    public void store()
131            throws PersistenceDatabaseException {
132        getBaseFactoryInstance().store(this);
133    }
134    
135    @Override
136    public void remove()
137            throws PersistenceDatabaseException {
138        getBaseFactoryInstance().remove(this);
139    }
140    
141    @Nonnull
142    public PartyDetailValue getPartyDetailValue() {
143        return _value;
144    }
145    
146    public void setPartyDetailValue(@Nonnull PartyDetailValue value)
147            throws PersistenceReadOnlyException {
148        checkReadWrite();
149        _value = value;
150    }
151    
152    @Override
153    @Nonnull
154    public PartyDetailPK getPrimaryKey() {
155        return _pk;
156    }
157    
158    @Nonnull
159    public PartyPK getPartyPK() {
160        return _value.getPartyPK();
161    }
162    
163    @Nonnull
164    public Party getParty(EntityPermission entityPermission) {
165        return PartyFactory.getInstance().getEntityFromPK(entityPermission, getPartyPK());
166    }
167    
168    @Nonnull
169    public Party getParty() {
170        return getParty(EntityPermission.READ_ONLY);
171    }
172    
173    @Nonnull
174    public Party getPartyForUpdate() {
175        return getParty(EntityPermission.READ_WRITE);
176    }
177    
178    public void setPartyPK(@Nonnull PartyPK partyPK)
179            throws PersistenceNotNullException, PersistenceReadOnlyException {
180        checkReadWrite();
181        _value.setPartyPK(partyPK);
182    }
183    
184    public void setParty(@Nonnull Party entity) {
185        setPartyPK(entity == null ? null : entity.getPrimaryKey());
186    }
187    
188    public boolean getPartyPKHasBeenModified() {
189        return _value.getPartyPKHasBeenModified();
190    }
191    
192    @Nonnull
193    public String getPartyName() {
194        return _value.getPartyName();
195    }
196    
197    public void setPartyName(@Nonnull String partyName)
198            throws PersistenceNotNullException, PersistenceReadOnlyException {
199        checkReadWrite();
200        _value.setPartyName(partyName);
201    }
202    
203    public boolean getPartyNameHasBeenModified() {
204        return _value.getPartyNameHasBeenModified();
205    }
206    
207    @Nonnull
208    public PartyTypePK getPartyTypePK() {
209        return _value.getPartyTypePK();
210    }
211    
212    @Nonnull
213    public PartyType getPartyType(EntityPermission entityPermission) {
214        return PartyTypeFactory.getInstance().getEntityFromPK(entityPermission, getPartyTypePK());
215    }
216    
217    @Nonnull
218    public PartyType getPartyType() {
219        return getPartyType(EntityPermission.READ_ONLY);
220    }
221    
222    @Nonnull
223    public PartyType getPartyTypeForUpdate() {
224        return getPartyType(EntityPermission.READ_WRITE);
225    }
226    
227    public void setPartyTypePK(@Nonnull PartyTypePK partyTypePK)
228            throws PersistenceNotNullException, PersistenceReadOnlyException {
229        checkReadWrite();
230        _value.setPartyTypePK(partyTypePK);
231    }
232    
233    public void setPartyType(@Nonnull PartyType entity) {
234        setPartyTypePK(entity == null ? null : entity.getPrimaryKey());
235    }
236    
237    public boolean getPartyTypePKHasBeenModified() {
238        return _value.getPartyTypePKHasBeenModified();
239    }
240    
241    @Nullable
242    public LanguagePK getPreferredLanguagePK() {
243        return _value.getPreferredLanguagePK();
244    }
245    
246    @Nullable
247    public Language getPreferredLanguage(EntityPermission entityPermission) {
248        LanguagePK pk = getPreferredLanguagePK();
249        Language entity = pk == null? null: LanguageFactory.getInstance().getEntityFromPK(entityPermission, pk);
250        
251        return entity;
252    }
253    
254    @Nullable
255    public Language getPreferredLanguage() {
256        return getPreferredLanguage(EntityPermission.READ_ONLY);
257    }
258    
259    @Nullable
260    public Language getPreferredLanguageForUpdate() {
261        return getPreferredLanguage(EntityPermission.READ_WRITE);
262    }
263    
264    public void setPreferredLanguagePK(@Nullable LanguagePK preferredLanguagePK)
265            throws PersistenceNotNullException, PersistenceReadOnlyException {
266        checkReadWrite();
267        _value.setPreferredLanguagePK(preferredLanguagePK);
268    }
269    
270    public void setPreferredLanguage(@Nullable Language entity) {
271        setPreferredLanguagePK(entity == null ? null : entity.getPrimaryKey());
272    }
273    
274    public boolean getPreferredLanguagePKHasBeenModified() {
275        return _value.getPreferredLanguagePKHasBeenModified();
276    }
277    
278    @Nullable
279    public CurrencyPK getPreferredCurrencyPK() {
280        return _value.getPreferredCurrencyPK();
281    }
282    
283    @Nullable
284    public Currency getPreferredCurrency(EntityPermission entityPermission) {
285        CurrencyPK pk = getPreferredCurrencyPK();
286        Currency entity = pk == null? null: CurrencyFactory.getInstance().getEntityFromPK(entityPermission, pk);
287        
288        return entity;
289    }
290    
291    @Nullable
292    public Currency getPreferredCurrency() {
293        return getPreferredCurrency(EntityPermission.READ_ONLY);
294    }
295    
296    @Nullable
297    public Currency getPreferredCurrencyForUpdate() {
298        return getPreferredCurrency(EntityPermission.READ_WRITE);
299    }
300    
301    public void setPreferredCurrencyPK(@Nullable CurrencyPK preferredCurrencyPK)
302            throws PersistenceNotNullException, PersistenceReadOnlyException {
303        checkReadWrite();
304        _value.setPreferredCurrencyPK(preferredCurrencyPK);
305    }
306    
307    public void setPreferredCurrency(@Nullable Currency entity) {
308        setPreferredCurrencyPK(entity == null ? null : entity.getPrimaryKey());
309    }
310    
311    public boolean getPreferredCurrencyPKHasBeenModified() {
312        return _value.getPreferredCurrencyPKHasBeenModified();
313    }
314    
315    @Nullable
316    public TimeZonePK getPreferredTimeZonePK() {
317        return _value.getPreferredTimeZonePK();
318    }
319    
320    @Nullable
321    public TimeZone getPreferredTimeZone(EntityPermission entityPermission) {
322        TimeZonePK pk = getPreferredTimeZonePK();
323        TimeZone entity = pk == null? null: TimeZoneFactory.getInstance().getEntityFromPK(entityPermission, pk);
324        
325        return entity;
326    }
327    
328    @Nullable
329    public TimeZone getPreferredTimeZone() {
330        return getPreferredTimeZone(EntityPermission.READ_ONLY);
331    }
332    
333    @Nullable
334    public TimeZone getPreferredTimeZoneForUpdate() {
335        return getPreferredTimeZone(EntityPermission.READ_WRITE);
336    }
337    
338    public void setPreferredTimeZonePK(@Nullable TimeZonePK preferredTimeZonePK)
339            throws PersistenceNotNullException, PersistenceReadOnlyException {
340        checkReadWrite();
341        _value.setPreferredTimeZonePK(preferredTimeZonePK);
342    }
343    
344    public void setPreferredTimeZone(@Nullable TimeZone entity) {
345        setPreferredTimeZonePK(entity == null ? null : entity.getPrimaryKey());
346    }
347    
348    public boolean getPreferredTimeZonePKHasBeenModified() {
349        return _value.getPreferredTimeZonePKHasBeenModified();
350    }
351    
352    @Nullable
353    public DateTimeFormatPK getPreferredDateTimeFormatPK() {
354        return _value.getPreferredDateTimeFormatPK();
355    }
356    
357    @Nullable
358    public DateTimeFormat getPreferredDateTimeFormat(EntityPermission entityPermission) {
359        DateTimeFormatPK pk = getPreferredDateTimeFormatPK();
360        DateTimeFormat entity = pk == null? null: DateTimeFormatFactory.getInstance().getEntityFromPK(entityPermission, pk);
361        
362        return entity;
363    }
364    
365    @Nullable
366    public DateTimeFormat getPreferredDateTimeFormat() {
367        return getPreferredDateTimeFormat(EntityPermission.READ_ONLY);
368    }
369    
370    @Nullable
371    public DateTimeFormat getPreferredDateTimeFormatForUpdate() {
372        return getPreferredDateTimeFormat(EntityPermission.READ_WRITE);
373    }
374    
375    public void setPreferredDateTimeFormatPK(@Nullable DateTimeFormatPK preferredDateTimeFormatPK)
376            throws PersistenceNotNullException, PersistenceReadOnlyException {
377        checkReadWrite();
378        _value.setPreferredDateTimeFormatPK(preferredDateTimeFormatPK);
379    }
380    
381    public void setPreferredDateTimeFormat(@Nullable DateTimeFormat entity) {
382        setPreferredDateTimeFormatPK(entity == null ? null : entity.getPrimaryKey());
383    }
384    
385    public boolean getPreferredDateTimeFormatPKHasBeenModified() {
386        return _value.getPreferredDateTimeFormatPKHasBeenModified();
387    }
388    
389    @Nonnull
390    public Long getFromTime() {
391        return _value.getFromTime();
392    }
393    
394    public void setFromTime(@Nonnull Long fromTime)
395            throws PersistenceNotNullException, PersistenceReadOnlyException {
396        checkReadWrite();
397        _value.setFromTime(fromTime);
398    }
399    
400    public boolean getFromTimeHasBeenModified() {
401        return _value.getFromTimeHasBeenModified();
402    }
403    
404    @Nonnull
405    public Long getThruTime() {
406        return _value.getThruTime();
407    }
408    
409    public void setThruTime(@Nonnull Long thruTime)
410            throws PersistenceNotNullException, PersistenceReadOnlyException {
411        checkReadWrite();
412        _value.setThruTime(thruTime);
413    }
414    
415    public boolean getThruTimeHasBeenModified() {
416        return _value.getThruTimeHasBeenModified();
417    }
418    
419}