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 * ContactMechanismPurposeValue.java 021 */ 022 023package com.echothree.model.data.contact.server.value; 024 025import com.echothree.model.data.contact.common.pk.ContactMechanismPurposePK; 026 027import com.echothree.model.data.contact.server.factory.ContactMechanismPurposeFactory; 028 029import com.echothree.model.data.contact.common.pk.ContactMechanismTypePK; 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 038import javax.annotation.Nonnull; 039import javax.annotation.Nullable; 040 041public class ContactMechanismPurposeValue 042 extends BaseValue<ContactMechanismPurposePK> 043 implements Cloneable, Serializable { 044 045 private String contactMechanismPurposeName; 046 private boolean contactMechanismPurposeNameHasBeenModified = false; 047 private ContactMechanismTypePK contactMechanismTypePK; 048 private boolean contactMechanismTypePKHasBeenModified = false; 049 private Boolean eventSubscriber; 050 private boolean eventSubscriberHasBeenModified = false; 051 private Boolean isDefault; 052 private boolean isDefaultHasBeenModified = false; 053 private Integer sortOrder; 054 private boolean sortOrderHasBeenModified = false; 055 056 private transient Integer _hashCode = null; 057 private transient String _stringValue = null; 058 059 private void constructFields(String contactMechanismPurposeName, ContactMechanismTypePK contactMechanismTypePK, Boolean eventSubscriber, Boolean isDefault, Integer sortOrder) 060 throws PersistenceNotNullException { 061 checkForNull(contactMechanismPurposeName); 062 this.contactMechanismPurposeName = contactMechanismPurposeName; 063 checkForNull(contactMechanismTypePK); 064 this.contactMechanismTypePK = contactMechanismTypePK; 065 checkForNull(eventSubscriber); 066 this.eventSubscriber = eventSubscriber; 067 checkForNull(isDefault); 068 this.isDefault = isDefault; 069 checkForNull(sortOrder); 070 this.sortOrder = sortOrder; 071 } 072 073 /** Creates a new instance of ContactMechanismPurposeValue */ 074 public ContactMechanismPurposeValue(ContactMechanismPurposePK contactMechanismPurposePK, String contactMechanismPurposeName, ContactMechanismTypePK contactMechanismTypePK, Boolean eventSubscriber, Boolean isDefault, Integer sortOrder) 075 throws PersistenceNotNullException { 076 super(contactMechanismPurposePK); 077 constructFields(contactMechanismPurposeName, contactMechanismTypePK, eventSubscriber, isDefault, sortOrder); 078 } 079 080 /** Creates a new instance of ContactMechanismPurposeValue */ 081 public ContactMechanismPurposeValue(String contactMechanismPurposeName, ContactMechanismTypePK contactMechanismTypePK, Boolean eventSubscriber, Boolean isDefault, Integer sortOrder) 082 throws PersistenceNotNullException { 083 super(); 084 constructFields(contactMechanismPurposeName, contactMechanismTypePK, eventSubscriber, isDefault, sortOrder); 085 } 086 087 @Override 088 @Nonnull 089 public ContactMechanismPurposeFactory getBaseFactoryInstance() { 090 return ContactMechanismPurposeFactory.getInstance(); 091 } 092 093 @Override 094 @Nonnull 095 public ContactMechanismPurposeValue 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 (ContactMechanismPurposeValue)result; 106 } 107 108 @Override 109 @Nonnull 110 public ContactMechanismPurposePK getPrimaryKey() { 111 if(_primaryKey == null) { 112 _primaryKey = new ContactMechanismPurposePK(entityId); 113 } 114 115 return _primaryKey; 116 } 117 118 private void clearHashAndString() { 119 _hashCode = null; 120 _stringValue = null; 121 } 122 123 @Override 124 public int hashCode() { 125 if(_hashCode == null) { 126 int hashCode = 17; 127 128 hashCode = 37 * hashCode + ((entityId != null) ? entityId.hashCode() : 0); 129 130 hashCode = 37 * hashCode + ((contactMechanismPurposeName != null) ? contactMechanismPurposeName.hashCode() : 0); 131 hashCode = 37 * hashCode + ((contactMechanismTypePK != null) ? contactMechanismTypePK.hashCode() : 0); 132 hashCode = 37 * hashCode + ((eventSubscriber != null) ? eventSubscriber.hashCode() : 0); 133 hashCode = 37 * hashCode + ((isDefault != null) ? isDefault.hashCode() : 0); 134 hashCode = 37 * hashCode + ((sortOrder != null) ? sortOrder.hashCode() : 0); 135 136 _hashCode = hashCode; 137 } 138 139 return _hashCode; 140 } 141 142 @Override 143 @Nonnull 144 public String toString() { 145 if(_stringValue == null) { 146 _stringValue = "{" + 147 "entityId=" + getEntityId() + 148 ", contactMechanismPurposeName=" + getContactMechanismPurposeName() + 149 ", contactMechanismTypePK=" + getContactMechanismTypePK() + 150 ", eventSubscriber=" + getEventSubscriber() + 151 ", isDefault=" + getIsDefault() + 152 ", sortOrder=" + getSortOrder() + 153 "}"; 154 } 155 return _stringValue; 156 } 157 158 @Override 159 public boolean equals(Object other) { 160 if(this == other) 161 return true; 162 163 if(!hasIdentity()) 164 return false; 165 166 if(other instanceof ContactMechanismPurposeValue that) { 167 if(!that.hasIdentity()) 168 return false; 169 170 Long thisEntityId = getEntityId(); 171 Long thatEntityId = that.getEntityId(); 172 173 boolean objectsEqual = thisEntityId.equals(thatEntityId); 174 if(objectsEqual) 175 objectsEqual = isIdentical(that); 176 177 return objectsEqual; 178 } else { 179 return false; 180 } 181 } 182 183 public boolean isIdentical(Object other) { 184 if(other instanceof ContactMechanismPurposeValue that) { 185 boolean objectsEqual = true; 186 187 188 if(objectsEqual) { 189 String thisContactMechanismPurposeName = getContactMechanismPurposeName(); 190 String thatContactMechanismPurposeName = that.getContactMechanismPurposeName(); 191 192 if(thisContactMechanismPurposeName == null) { 193 objectsEqual = objectsEqual && (thatContactMechanismPurposeName == null); 194 } else { 195 objectsEqual = objectsEqual && thisContactMechanismPurposeName.equals(thatContactMechanismPurposeName); 196 } 197 } 198 199 if(objectsEqual) { 200 ContactMechanismTypePK thisContactMechanismTypePK = getContactMechanismTypePK(); 201 ContactMechanismTypePK thatContactMechanismTypePK = that.getContactMechanismTypePK(); 202 203 if(thisContactMechanismTypePK == null) { 204 objectsEqual = objectsEqual && (thatContactMechanismTypePK == null); 205 } else { 206 objectsEqual = objectsEqual && thisContactMechanismTypePK.equals(thatContactMechanismTypePK); 207 } 208 } 209 210 if(objectsEqual) { 211 Boolean thisEventSubscriber = getEventSubscriber(); 212 Boolean thatEventSubscriber = that.getEventSubscriber(); 213 214 if(thisEventSubscriber == null) { 215 objectsEqual = objectsEqual && (thatEventSubscriber == null); 216 } else { 217 objectsEqual = objectsEqual && thisEventSubscriber.equals(thatEventSubscriber); 218 } 219 } 220 221 if(objectsEqual) { 222 Boolean thisIsDefault = getIsDefault(); 223 Boolean thatIsDefault = that.getIsDefault(); 224 225 if(thisIsDefault == null) { 226 objectsEqual = objectsEqual && (thatIsDefault == null); 227 } else { 228 objectsEqual = objectsEqual && thisIsDefault.equals(thatIsDefault); 229 } 230 } 231 232 if(objectsEqual) { 233 Integer thisSortOrder = getSortOrder(); 234 Integer thatSortOrder = that.getSortOrder(); 235 236 if(thisSortOrder == null) { 237 objectsEqual = objectsEqual && (thatSortOrder == null); 238 } else { 239 objectsEqual = objectsEqual && thisSortOrder.equals(thatSortOrder); 240 } 241 } 242 243 return objectsEqual; 244 } else { 245 return false; 246 } 247 } 248 249 @Override 250 public boolean hasBeenModified() { 251 return contactMechanismPurposeNameHasBeenModified || contactMechanismTypePKHasBeenModified || eventSubscriberHasBeenModified || isDefaultHasBeenModified || sortOrderHasBeenModified; 252 } 253 254 @Override 255 public void clearHasBeenModified() { 256 contactMechanismPurposeNameHasBeenModified = false; 257 contactMechanismTypePKHasBeenModified = false; 258 eventSubscriberHasBeenModified = false; 259 isDefaultHasBeenModified = false; 260 sortOrderHasBeenModified = false; 261 } 262 263 @Nonnull 264 public String getContactMechanismPurposeName() { 265 return contactMechanismPurposeName; 266 } 267 268 public void setContactMechanismPurposeName(@Nonnull String contactMechanismPurposeName) 269 throws PersistenceNotNullException { 270 checkForNull(contactMechanismPurposeName); 271 272 boolean update = true; 273 274 if(this.contactMechanismPurposeName != null) { 275 if(this.contactMechanismPurposeName.equals(contactMechanismPurposeName)) { 276 update = false; 277 } 278 } else if(contactMechanismPurposeName == null) { 279 update = false; 280 } 281 282 if(update) { 283 this.contactMechanismPurposeName = contactMechanismPurposeName; 284 contactMechanismPurposeNameHasBeenModified = true; 285 clearHashAndString(); 286 } 287 } 288 289 public boolean getContactMechanismPurposeNameHasBeenModified() { 290 return contactMechanismPurposeNameHasBeenModified; 291 } 292 293 @Nonnull 294 public ContactMechanismTypePK getContactMechanismTypePK() { 295 return contactMechanismTypePK; 296 } 297 298 public void setContactMechanismTypePK(@Nonnull ContactMechanismTypePK contactMechanismTypePK) 299 throws PersistenceNotNullException { 300 checkForNull(contactMechanismTypePK); 301 302 boolean update = true; 303 304 if(this.contactMechanismTypePK != null) { 305 if(this.contactMechanismTypePK.equals(contactMechanismTypePK)) { 306 update = false; 307 } 308 } else if(contactMechanismTypePK == null) { 309 update = false; 310 } 311 312 if(update) { 313 this.contactMechanismTypePK = contactMechanismTypePK; 314 contactMechanismTypePKHasBeenModified = true; 315 clearHashAndString(); 316 } 317 } 318 319 public boolean getContactMechanismTypePKHasBeenModified() { 320 return contactMechanismTypePKHasBeenModified; 321 } 322 323 @Nonnull 324 public Boolean getEventSubscriber() { 325 return eventSubscriber; 326 } 327 328 public void setEventSubscriber(@Nonnull Boolean eventSubscriber) 329 throws PersistenceNotNullException { 330 checkForNull(eventSubscriber); 331 332 boolean update = true; 333 334 if(this.eventSubscriber != null) { 335 if(this.eventSubscriber.equals(eventSubscriber)) { 336 update = false; 337 } 338 } else if(eventSubscriber == null) { 339 update = false; 340 } 341 342 if(update) { 343 this.eventSubscriber = eventSubscriber; 344 eventSubscriberHasBeenModified = true; 345 clearHashAndString(); 346 } 347 } 348 349 public boolean getEventSubscriberHasBeenModified() { 350 return eventSubscriberHasBeenModified; 351 } 352 353 @Nonnull 354 public Boolean getIsDefault() { 355 return isDefault; 356 } 357 358 public void setIsDefault(@Nonnull Boolean isDefault) 359 throws PersistenceNotNullException { 360 checkForNull(isDefault); 361 362 boolean update = true; 363 364 if(this.isDefault != null) { 365 if(this.isDefault.equals(isDefault)) { 366 update = false; 367 } 368 } else if(isDefault == null) { 369 update = false; 370 } 371 372 if(update) { 373 this.isDefault = isDefault; 374 isDefaultHasBeenModified = true; 375 clearHashAndString(); 376 } 377 } 378 379 public boolean getIsDefaultHasBeenModified() { 380 return isDefaultHasBeenModified; 381 } 382 383 @Nonnull 384 public Integer getSortOrder() { 385 return sortOrder; 386 } 387 388 public void setSortOrder(@Nonnull Integer sortOrder) 389 throws PersistenceNotNullException { 390 checkForNull(sortOrder); 391 392 boolean update = true; 393 394 if(this.sortOrder != null) { 395 if(this.sortOrder.equals(sortOrder)) { 396 update = false; 397 } 398 } else if(sortOrder == null) { 399 update = false; 400 } 401 402 if(update) { 403 this.sortOrder = sortOrder; 404 sortOrderHasBeenModified = true; 405 clearHashAndString(); 406 } 407 } 408 409 public boolean getSortOrderHasBeenModified() { 410 return sortOrderHasBeenModified; 411 } 412 413}