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