001// --------------------------------------------------------------------------------
002// Copyright 2002-2025 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 * UserLoginStatusValue.java
021 */
022
023package com.echothree.model.data.user.server.value;
024
025import com.echothree.model.data.user.common.pk.UserLoginStatusPK;
026
027import com.echothree.model.data.user.server.factory.UserLoginStatusFactory;
028
029import com.echothree.model.data.party.common.pk.PartyPK;
030
031import com.echothree.util.common.exception.PersistenceCloneException;
032import com.echothree.util.common.exception.PersistenceNotNullException;
033
034import com.echothree.util.server.persistence.BaseValue;
035
036import java.io.Serializable;
037
038public class UserLoginStatusValue
039        extends BaseValue<UserLoginStatusPK>
040        implements Cloneable, Serializable {
041    
042    private PartyPK partyPK;
043    private boolean partyPKHasBeenModified = false;
044    private Long lastLoginTime;
045    private boolean lastLoginTimeHasBeenModified = false;
046    private Integer failureCount;
047    private boolean failureCountHasBeenModified = false;
048    private Long firstFailureTime;
049    private boolean firstFailureTimeHasBeenModified = false;
050    private Long lastFailureTime;
051    private boolean lastFailureTimeHasBeenModified = false;
052    private Integer expiredCount;
053    private boolean expiredCountHasBeenModified = false;
054    private Boolean forceChange;
055    private boolean forceChangeHasBeenModified = false;
056    
057    private transient Integer _hashCode = null;
058    private transient String _stringValue = null;
059    
060    private void constructFields(PartyPK partyPK, Long lastLoginTime, Integer failureCount, Long firstFailureTime, Long lastFailureTime, Integer expiredCount, Boolean forceChange)
061            throws PersistenceNotNullException {
062        checkForNull(partyPK);
063        this.partyPK = partyPK;
064        this.lastLoginTime = lastLoginTime;
065        checkForNull(failureCount);
066        this.failureCount = failureCount;
067        this.firstFailureTime = firstFailureTime;
068        this.lastFailureTime = lastFailureTime;
069        checkForNull(expiredCount);
070        this.expiredCount = expiredCount;
071        checkForNull(forceChange);
072        this.forceChange = forceChange;
073    }
074    
075    /** Creates a new instance of UserLoginStatusValue */
076    public UserLoginStatusValue(UserLoginStatusPK userLoginStatusPK, PartyPK partyPK, Long lastLoginTime, Integer failureCount, Long firstFailureTime, Long lastFailureTime, Integer expiredCount, Boolean forceChange)
077            throws PersistenceNotNullException {
078        super(userLoginStatusPK);
079        constructFields(partyPK, lastLoginTime, failureCount, firstFailureTime, lastFailureTime, expiredCount, forceChange);
080    }
081    
082    /** Creates a new instance of UserLoginStatusValue */
083    public UserLoginStatusValue(PartyPK partyPK, Long lastLoginTime, Integer failureCount, Long firstFailureTime, Long lastFailureTime, Integer expiredCount, Boolean forceChange)
084            throws PersistenceNotNullException {
085        super();
086        constructFields(partyPK, lastLoginTime, failureCount, firstFailureTime, lastFailureTime, expiredCount, forceChange);
087    }
088    
089   @Override
090   public UserLoginStatusFactory getBaseFactoryInstance() {
091        return UserLoginStatusFactory.getInstance();
092    }
093    
094    @Override
095    public UserLoginStatusValue clone() {
096        Object result;
097        
098        try {
099            result = super.clone();
100        } catch (CloneNotSupportedException cnse) {
101            // This shouldn't happen, fail when it does.
102            throw new PersistenceCloneException(cnse);
103        }
104        
105        return (UserLoginStatusValue)result;
106    }
107    
108   @Override
109    public UserLoginStatusPK getPrimaryKey() {
110        if(_primaryKey == null) {
111            _primaryKey = new UserLoginStatusPK(entityId);
112        }
113        
114        return _primaryKey;
115    }
116    
117    private void clearHashAndString() {
118        _hashCode = null;
119        _stringValue = null;
120    }
121    
122    @Override
123    public int hashCode() {
124        if(_hashCode == null) {
125            int hashCode = 17;
126            
127            hashCode = 37 * hashCode + ((entityId != null) ? entityId.hashCode() : 0);
128            
129            hashCode = 37 * hashCode + ((partyPK != null) ? partyPK.hashCode() : 0);
130            hashCode = 37 * hashCode + ((lastLoginTime != null) ? lastLoginTime.hashCode() : 0);
131            hashCode = 37 * hashCode + ((failureCount != null) ? failureCount.hashCode() : 0);
132            hashCode = 37 * hashCode + ((firstFailureTime != null) ? firstFailureTime.hashCode() : 0);
133            hashCode = 37 * hashCode + ((lastFailureTime != null) ? lastFailureTime.hashCode() : 0);
134            hashCode = 37 * hashCode + ((expiredCount != null) ? expiredCount.hashCode() : 0);
135            hashCode = 37 * hashCode + ((forceChange != null) ? forceChange.hashCode() : 0);
136            
137            _hashCode = hashCode;
138        }
139        
140        return _hashCode;
141    }
142    
143    @Override
144    public String toString() {
145        if(_stringValue == null) {
146            _stringValue = "{" + 
147                    "entityId=" + getEntityId() +
148                    ", partyPK=" + getPartyPK() +
149                    ", lastLoginTime=" + getLastLoginTime() +
150                    ", failureCount=" + getFailureCount() +
151                    ", firstFailureTime=" + getFirstFailureTime() +
152                    ", lastFailureTime=" + getLastFailureTime() +
153                    ", expiredCount=" + getExpiredCount() +
154                    ", forceChange=" + getForceChange() +
155                    "}";
156        }
157        return _stringValue;
158    }
159    
160    @Override
161    public boolean equals(Object other) {
162        if(this == other)
163            return true;
164        
165        if(!hasIdentity())
166            return false;
167        
168        if(other instanceof  UserLoginStatusValue that) {
169            if(!that.hasIdentity())
170                return false;
171            
172            Long thisEntityId = getEntityId();
173            Long thatEntityId = that.getEntityId();
174            
175            boolean objectsEqual = thisEntityId.equals(thatEntityId);
176            if(objectsEqual)
177                objectsEqual = isIdentical(that);
178            
179            return objectsEqual;
180        } else {
181            return false;
182        }
183    }
184    
185    public boolean isIdentical(Object other) {
186        if(other instanceof UserLoginStatusValue that) {
187            boolean objectsEqual = true;
188            
189            
190            if(objectsEqual) {
191                PartyPK thisPartyPK = getPartyPK();
192                PartyPK thatPartyPK = that.getPartyPK();
193                
194                if(thisPartyPK == null) {
195                    objectsEqual = objectsEqual && (thatPartyPK == null);
196                } else {
197                    objectsEqual = objectsEqual && thisPartyPK.equals(thatPartyPK);
198                }
199            }
200            
201            if(objectsEqual) {
202                Long thisLastLoginTime = getLastLoginTime();
203                Long thatLastLoginTime = that.getLastLoginTime();
204                
205                if(thisLastLoginTime == null) {
206                    objectsEqual = objectsEqual && (thatLastLoginTime == null);
207                } else {
208                    objectsEqual = objectsEqual && thisLastLoginTime.equals(thatLastLoginTime);
209                }
210            }
211            
212            if(objectsEqual) {
213                Integer thisFailureCount = getFailureCount();
214                Integer thatFailureCount = that.getFailureCount();
215                
216                if(thisFailureCount == null) {
217                    objectsEqual = objectsEqual && (thatFailureCount == null);
218                } else {
219                    objectsEqual = objectsEqual && thisFailureCount.equals(thatFailureCount);
220                }
221            }
222            
223            if(objectsEqual) {
224                Long thisFirstFailureTime = getFirstFailureTime();
225                Long thatFirstFailureTime = that.getFirstFailureTime();
226                
227                if(thisFirstFailureTime == null) {
228                    objectsEqual = objectsEqual && (thatFirstFailureTime == null);
229                } else {
230                    objectsEqual = objectsEqual && thisFirstFailureTime.equals(thatFirstFailureTime);
231                }
232            }
233            
234            if(objectsEqual) {
235                Long thisLastFailureTime = getLastFailureTime();
236                Long thatLastFailureTime = that.getLastFailureTime();
237                
238                if(thisLastFailureTime == null) {
239                    objectsEqual = objectsEqual && (thatLastFailureTime == null);
240                } else {
241                    objectsEqual = objectsEqual && thisLastFailureTime.equals(thatLastFailureTime);
242                }
243            }
244            
245            if(objectsEqual) {
246                Integer thisExpiredCount = getExpiredCount();
247                Integer thatExpiredCount = that.getExpiredCount();
248                
249                if(thisExpiredCount == null) {
250                    objectsEqual = objectsEqual && (thatExpiredCount == null);
251                } else {
252                    objectsEqual = objectsEqual && thisExpiredCount.equals(thatExpiredCount);
253                }
254            }
255            
256            if(objectsEqual) {
257                Boolean thisForceChange = getForceChange();
258                Boolean thatForceChange = that.getForceChange();
259                
260                if(thisForceChange == null) {
261                    objectsEqual = objectsEqual && (thatForceChange == null);
262                } else {
263                    objectsEqual = objectsEqual && thisForceChange.equals(thatForceChange);
264                }
265            }
266            
267            return objectsEqual;
268        } else {
269            return false;
270        }
271    }
272    
273    @Override
274    public boolean hasBeenModified() {
275        return partyPKHasBeenModified || lastLoginTimeHasBeenModified || failureCountHasBeenModified || firstFailureTimeHasBeenModified || lastFailureTimeHasBeenModified || expiredCountHasBeenModified || forceChangeHasBeenModified;
276    }
277    
278    @Override
279    public void clearHasBeenModified() {
280        partyPKHasBeenModified = false;
281        lastLoginTimeHasBeenModified = false;
282        failureCountHasBeenModified = false;
283        firstFailureTimeHasBeenModified = false;
284        lastFailureTimeHasBeenModified = false;
285        expiredCountHasBeenModified = false;
286        forceChangeHasBeenModified = false;
287    }
288    
289    public PartyPK getPartyPK() {
290        return partyPK;
291    }
292    
293    public void setPartyPK(PartyPK partyPK)
294            throws PersistenceNotNullException {
295        checkForNull(partyPK);
296        
297        boolean update = true;
298        
299        if(this.partyPK != null) {
300            if(this.partyPK.equals(partyPK)) {
301                update = false;
302            }
303        } else if(partyPK == null) {
304            update = false;
305        }
306        
307        if(update) {
308            this.partyPK = partyPK;
309            partyPKHasBeenModified = true;
310            clearHashAndString();
311        }
312    }
313    
314    public boolean getPartyPKHasBeenModified() {
315        return partyPKHasBeenModified;
316    }
317    
318    public Long getLastLoginTime() {
319        return lastLoginTime;
320    }
321    
322    public void setLastLoginTime(Long lastLoginTime) {
323        boolean update = true;
324        
325        if(this.lastLoginTime != null) {
326            if(this.lastLoginTime.equals(lastLoginTime)) {
327                update = false;
328            }
329        } else if(lastLoginTime == null) {
330            update = false;
331        }
332        
333        if(update) {
334            this.lastLoginTime = lastLoginTime;
335            lastLoginTimeHasBeenModified = true;
336            clearHashAndString();
337        }
338    }
339    
340    public boolean getLastLoginTimeHasBeenModified() {
341        return lastLoginTimeHasBeenModified;
342    }
343    
344    public Integer getFailureCount() {
345        return failureCount;
346    }
347    
348    public void setFailureCount(Integer failureCount)
349            throws PersistenceNotNullException {
350        checkForNull(failureCount);
351        
352        boolean update = true;
353        
354        if(this.failureCount != null) {
355            if(this.failureCount.equals(failureCount)) {
356                update = false;
357            }
358        } else if(failureCount == null) {
359            update = false;
360        }
361        
362        if(update) {
363            this.failureCount = failureCount;
364            failureCountHasBeenModified = true;
365            clearHashAndString();
366        }
367    }
368    
369    public boolean getFailureCountHasBeenModified() {
370        return failureCountHasBeenModified;
371    }
372    
373    public Long getFirstFailureTime() {
374        return firstFailureTime;
375    }
376    
377    public void setFirstFailureTime(Long firstFailureTime) {
378        boolean update = true;
379        
380        if(this.firstFailureTime != null) {
381            if(this.firstFailureTime.equals(firstFailureTime)) {
382                update = false;
383            }
384        } else if(firstFailureTime == null) {
385            update = false;
386        }
387        
388        if(update) {
389            this.firstFailureTime = firstFailureTime;
390            firstFailureTimeHasBeenModified = true;
391            clearHashAndString();
392        }
393    }
394    
395    public boolean getFirstFailureTimeHasBeenModified() {
396        return firstFailureTimeHasBeenModified;
397    }
398    
399    public Long getLastFailureTime() {
400        return lastFailureTime;
401    }
402    
403    public void setLastFailureTime(Long lastFailureTime) {
404        boolean update = true;
405        
406        if(this.lastFailureTime != null) {
407            if(this.lastFailureTime.equals(lastFailureTime)) {
408                update = false;
409            }
410        } else if(lastFailureTime == null) {
411            update = false;
412        }
413        
414        if(update) {
415            this.lastFailureTime = lastFailureTime;
416            lastFailureTimeHasBeenModified = true;
417            clearHashAndString();
418        }
419    }
420    
421    public boolean getLastFailureTimeHasBeenModified() {
422        return lastFailureTimeHasBeenModified;
423    }
424    
425    public Integer getExpiredCount() {
426        return expiredCount;
427    }
428    
429    public void setExpiredCount(Integer expiredCount)
430            throws PersistenceNotNullException {
431        checkForNull(expiredCount);
432        
433        boolean update = true;
434        
435        if(this.expiredCount != null) {
436            if(this.expiredCount.equals(expiredCount)) {
437                update = false;
438            }
439        } else if(expiredCount == null) {
440            update = false;
441        }
442        
443        if(update) {
444            this.expiredCount = expiredCount;
445            expiredCountHasBeenModified = true;
446            clearHashAndString();
447        }
448    }
449    
450    public boolean getExpiredCountHasBeenModified() {
451        return expiredCountHasBeenModified;
452    }
453    
454    public Boolean getForceChange() {
455        return forceChange;
456    }
457    
458    public void setForceChange(Boolean forceChange)
459            throws PersistenceNotNullException {
460        checkForNull(forceChange);
461        
462        boolean update = true;
463        
464        if(this.forceChange != null) {
465            if(this.forceChange.equals(forceChange)) {
466                update = false;
467            }
468        } else if(forceChange == null) {
469            update = false;
470        }
471        
472        if(update) {
473            this.forceChange = forceChange;
474            forceChangeHasBeenModified = true;
475            clearHashAndString();
476        }
477    }
478    
479    public boolean getForceChangeHasBeenModified() {
480        return forceChangeHasBeenModified;
481    }
482    
483}