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 * EventValue.java 021 */ 022 023package com.echothree.model.data.core.server.value; 024 025import com.echothree.model.data.core.common.pk.EventPK; 026 027import com.echothree.model.data.core.server.factory.EventFactory; 028 029import com.echothree.model.data.core.common.pk.EventGroupPK; 030import com.echothree.model.data.core.common.pk.EntityInstancePK; 031import com.echothree.model.data.core.common.pk.EventTypePK; 032 033import com.echothree.util.common.exception.PersistenceCloneException; 034import com.echothree.util.common.exception.PersistenceNotNullException; 035 036import com.echothree.util.server.persistence.BaseValue; 037 038import java.io.Serializable; 039 040import javax.annotation.Nonnull; 041import javax.annotation.Nullable; 042 043public class EventValue 044 extends BaseValue<EventPK> 045 implements Cloneable, Serializable { 046 047 private EventGroupPK eventGroupPK; 048 private boolean eventGroupPKHasBeenModified = false; 049 private Long eventTime; 050 private boolean eventTimeHasBeenModified = false; 051 private Integer eventTimeSequence; 052 private boolean eventTimeSequenceHasBeenModified = false; 053 private EntityInstancePK entityInstancePK; 054 private boolean entityInstancePKHasBeenModified = false; 055 private EventTypePK eventTypePK; 056 private boolean eventTypePKHasBeenModified = false; 057 private EntityInstancePK relatedEntityInstancePK; 058 private boolean relatedEntityInstancePKHasBeenModified = false; 059 private EventTypePK relatedEventTypePK; 060 private boolean relatedEventTypePKHasBeenModified = false; 061 private EntityInstancePK createdByPK; 062 private boolean createdByPKHasBeenModified = false; 063 064 private transient Integer _hashCode = null; 065 private transient String _stringValue = null; 066 067 private void constructFields(EventGroupPK eventGroupPK, Long eventTime, Integer eventTimeSequence, EntityInstancePK entityInstancePK, EventTypePK eventTypePK, EntityInstancePK relatedEntityInstancePK, EventTypePK relatedEventTypePK, EntityInstancePK createdByPK) 068 throws PersistenceNotNullException { 069 this.eventGroupPK = eventGroupPK; 070 checkForNull(eventTime); 071 this.eventTime = eventTime; 072 checkForNull(eventTimeSequence); 073 this.eventTimeSequence = eventTimeSequence; 074 checkForNull(entityInstancePK); 075 this.entityInstancePK = entityInstancePK; 076 checkForNull(eventTypePK); 077 this.eventTypePK = eventTypePK; 078 this.relatedEntityInstancePK = relatedEntityInstancePK; 079 this.relatedEventTypePK = relatedEventTypePK; 080 this.createdByPK = createdByPK; 081 } 082 083 /** Creates a new instance of EventValue */ 084 public EventValue(EventPK eventPK, EventGroupPK eventGroupPK, Long eventTime, Integer eventTimeSequence, EntityInstancePK entityInstancePK, EventTypePK eventTypePK, EntityInstancePK relatedEntityInstancePK, EventTypePK relatedEventTypePK, EntityInstancePK createdByPK) 085 throws PersistenceNotNullException { 086 super(eventPK); 087 constructFields(eventGroupPK, eventTime, eventTimeSequence, entityInstancePK, eventTypePK, relatedEntityInstancePK, relatedEventTypePK, createdByPK); 088 } 089 090 /** Creates a new instance of EventValue */ 091 public EventValue(EventGroupPK eventGroupPK, Long eventTime, Integer eventTimeSequence, EntityInstancePK entityInstancePK, EventTypePK eventTypePK, EntityInstancePK relatedEntityInstancePK, EventTypePK relatedEventTypePK, EntityInstancePK createdByPK) 092 throws PersistenceNotNullException { 093 super(); 094 constructFields(eventGroupPK, eventTime, eventTimeSequence, entityInstancePK, eventTypePK, relatedEntityInstancePK, relatedEventTypePK, createdByPK); 095 } 096 097 @Override 098 @Nonnull 099 public EventFactory getBaseFactoryInstance() { 100 return EventFactory.getInstance(); 101 } 102 103 @Override 104 @Nonnull 105 public EventValue clone() { 106 Object result; 107 108 try { 109 result = super.clone(); 110 } catch (CloneNotSupportedException cnse) { 111 // This shouldn't happen, fail when it does. 112 throw new PersistenceCloneException(cnse); 113 } 114 115 return (EventValue)result; 116 } 117 118 @Override 119 @Nonnull 120 public EventPK getPrimaryKey() { 121 if(_primaryKey == null) { 122 _primaryKey = new EventPK(entityId); 123 } 124 125 return _primaryKey; 126 } 127 128 private void clearHashAndString() { 129 _hashCode = null; 130 _stringValue = null; 131 } 132 133 @Override 134 public int hashCode() { 135 if(_hashCode == null) { 136 int hashCode = 17; 137 138 hashCode = 37 * hashCode + ((entityId != null) ? entityId.hashCode() : 0); 139 140 hashCode = 37 * hashCode + ((eventGroupPK != null) ? eventGroupPK.hashCode() : 0); 141 hashCode = 37 * hashCode + ((eventTime != null) ? eventTime.hashCode() : 0); 142 hashCode = 37 * hashCode + ((eventTimeSequence != null) ? eventTimeSequence.hashCode() : 0); 143 hashCode = 37 * hashCode + ((entityInstancePK != null) ? entityInstancePK.hashCode() : 0); 144 hashCode = 37 * hashCode + ((eventTypePK != null) ? eventTypePK.hashCode() : 0); 145 hashCode = 37 * hashCode + ((relatedEntityInstancePK != null) ? relatedEntityInstancePK.hashCode() : 0); 146 hashCode = 37 * hashCode + ((relatedEventTypePK != null) ? relatedEventTypePK.hashCode() : 0); 147 hashCode = 37 * hashCode + ((createdByPK != null) ? createdByPK.hashCode() : 0); 148 149 _hashCode = hashCode; 150 } 151 152 return _hashCode; 153 } 154 155 @Override 156 @Nonnull 157 public String toString() { 158 if(_stringValue == null) { 159 _stringValue = "{" + 160 "entityId=" + getEntityId() + 161 ", eventGroupPK=" + getEventGroupPK() + 162 ", eventTime=" + getEventTime() + 163 ", eventTimeSequence=" + getEventTimeSequence() + 164 ", entityInstancePK=" + getEntityInstancePK() + 165 ", eventTypePK=" + getEventTypePK() + 166 ", relatedEntityInstancePK=" + getRelatedEntityInstancePK() + 167 ", relatedEventTypePK=" + getRelatedEventTypePK() + 168 ", createdByPK=" + getCreatedByPK() + 169 "}"; 170 } 171 return _stringValue; 172 } 173 174 @Override 175 public boolean equals(Object other) { 176 if(this == other) 177 return true; 178 179 if(!hasIdentity()) 180 return false; 181 182 if(other instanceof EventValue that) { 183 if(!that.hasIdentity()) 184 return false; 185 186 Long thisEntityId = getEntityId(); 187 Long thatEntityId = that.getEntityId(); 188 189 boolean objectsEqual = thisEntityId.equals(thatEntityId); 190 if(objectsEqual) 191 objectsEqual = isIdentical(that); 192 193 return objectsEqual; 194 } else { 195 return false; 196 } 197 } 198 199 public boolean isIdentical(Object other) { 200 if(other instanceof EventValue that) { 201 boolean objectsEqual = true; 202 203 204 if(objectsEqual) { 205 EventGroupPK thisEventGroupPK = getEventGroupPK(); 206 EventGroupPK thatEventGroupPK = that.getEventGroupPK(); 207 208 if(thisEventGroupPK == null) { 209 objectsEqual = objectsEqual && (thatEventGroupPK == null); 210 } else { 211 objectsEqual = objectsEqual && thisEventGroupPK.equals(thatEventGroupPK); 212 } 213 } 214 215 if(objectsEqual) { 216 Long thisEventTime = getEventTime(); 217 Long thatEventTime = that.getEventTime(); 218 219 if(thisEventTime == null) { 220 objectsEqual = objectsEqual && (thatEventTime == null); 221 } else { 222 objectsEqual = objectsEqual && thisEventTime.equals(thatEventTime); 223 } 224 } 225 226 if(objectsEqual) { 227 Integer thisEventTimeSequence = getEventTimeSequence(); 228 Integer thatEventTimeSequence = that.getEventTimeSequence(); 229 230 if(thisEventTimeSequence == null) { 231 objectsEqual = objectsEqual && (thatEventTimeSequence == null); 232 } else { 233 objectsEqual = objectsEqual && thisEventTimeSequence.equals(thatEventTimeSequence); 234 } 235 } 236 237 if(objectsEqual) { 238 EntityInstancePK thisEntityInstancePK = getEntityInstancePK(); 239 EntityInstancePK thatEntityInstancePK = that.getEntityInstancePK(); 240 241 if(thisEntityInstancePK == null) { 242 objectsEqual = objectsEqual && (thatEntityInstancePK == null); 243 } else { 244 objectsEqual = objectsEqual && thisEntityInstancePK.equals(thatEntityInstancePK); 245 } 246 } 247 248 if(objectsEqual) { 249 EventTypePK thisEventTypePK = getEventTypePK(); 250 EventTypePK thatEventTypePK = that.getEventTypePK(); 251 252 if(thisEventTypePK == null) { 253 objectsEqual = objectsEqual && (thatEventTypePK == null); 254 } else { 255 objectsEqual = objectsEqual && thisEventTypePK.equals(thatEventTypePK); 256 } 257 } 258 259 if(objectsEqual) { 260 EntityInstancePK thisRelatedEntityInstancePK = getRelatedEntityInstancePK(); 261 EntityInstancePK thatRelatedEntityInstancePK = that.getRelatedEntityInstancePK(); 262 263 if(thisRelatedEntityInstancePK == null) { 264 objectsEqual = objectsEqual && (thatRelatedEntityInstancePK == null); 265 } else { 266 objectsEqual = objectsEqual && thisRelatedEntityInstancePK.equals(thatRelatedEntityInstancePK); 267 } 268 } 269 270 if(objectsEqual) { 271 EventTypePK thisRelatedEventTypePK = getRelatedEventTypePK(); 272 EventTypePK thatRelatedEventTypePK = that.getRelatedEventTypePK(); 273 274 if(thisRelatedEventTypePK == null) { 275 objectsEqual = objectsEqual && (thatRelatedEventTypePK == null); 276 } else { 277 objectsEqual = objectsEqual && thisRelatedEventTypePK.equals(thatRelatedEventTypePK); 278 } 279 } 280 281 if(objectsEqual) { 282 EntityInstancePK thisCreatedByPK = getCreatedByPK(); 283 EntityInstancePK thatCreatedByPK = that.getCreatedByPK(); 284 285 if(thisCreatedByPK == null) { 286 objectsEqual = objectsEqual && (thatCreatedByPK == null); 287 } else { 288 objectsEqual = objectsEqual && thisCreatedByPK.equals(thatCreatedByPK); 289 } 290 } 291 292 return objectsEqual; 293 } else { 294 return false; 295 } 296 } 297 298 @Override 299 public boolean hasBeenModified() { 300 return eventGroupPKHasBeenModified || eventTimeHasBeenModified || eventTimeSequenceHasBeenModified || entityInstancePKHasBeenModified || eventTypePKHasBeenModified || relatedEntityInstancePKHasBeenModified || relatedEventTypePKHasBeenModified || createdByPKHasBeenModified; 301 } 302 303 @Override 304 public void clearHasBeenModified() { 305 eventGroupPKHasBeenModified = false; 306 eventTimeHasBeenModified = false; 307 eventTimeSequenceHasBeenModified = false; 308 entityInstancePKHasBeenModified = false; 309 eventTypePKHasBeenModified = false; 310 relatedEntityInstancePKHasBeenModified = false; 311 relatedEventTypePKHasBeenModified = false; 312 createdByPKHasBeenModified = false; 313 } 314 315 @Nullable 316 public EventGroupPK getEventGroupPK() { 317 return eventGroupPK; 318 } 319 320 public void setEventGroupPK(@Nullable EventGroupPK eventGroupPK) { 321 boolean update = true; 322 323 if(this.eventGroupPK != null) { 324 if(this.eventGroupPK.equals(eventGroupPK)) { 325 update = false; 326 } 327 } else if(eventGroupPK == null) { 328 update = false; 329 } 330 331 if(update) { 332 this.eventGroupPK = eventGroupPK; 333 eventGroupPKHasBeenModified = true; 334 clearHashAndString(); 335 } 336 } 337 338 public boolean getEventGroupPKHasBeenModified() { 339 return eventGroupPKHasBeenModified; 340 } 341 342 @Nonnull 343 public Long getEventTime() { 344 return eventTime; 345 } 346 347 public void setEventTime(@Nonnull Long eventTime) 348 throws PersistenceNotNullException { 349 checkForNull(eventTime); 350 351 boolean update = true; 352 353 if(this.eventTime != null) { 354 if(this.eventTime.equals(eventTime)) { 355 update = false; 356 } 357 } else if(eventTime == null) { 358 update = false; 359 } 360 361 if(update) { 362 this.eventTime = eventTime; 363 eventTimeHasBeenModified = true; 364 clearHashAndString(); 365 } 366 } 367 368 public boolean getEventTimeHasBeenModified() { 369 return eventTimeHasBeenModified; 370 } 371 372 @Nonnull 373 public Integer getEventTimeSequence() { 374 return eventTimeSequence; 375 } 376 377 public void setEventTimeSequence(@Nonnull Integer eventTimeSequence) 378 throws PersistenceNotNullException { 379 checkForNull(eventTimeSequence); 380 381 boolean update = true; 382 383 if(this.eventTimeSequence != null) { 384 if(this.eventTimeSequence.equals(eventTimeSequence)) { 385 update = false; 386 } 387 } else if(eventTimeSequence == null) { 388 update = false; 389 } 390 391 if(update) { 392 this.eventTimeSequence = eventTimeSequence; 393 eventTimeSequenceHasBeenModified = true; 394 clearHashAndString(); 395 } 396 } 397 398 public boolean getEventTimeSequenceHasBeenModified() { 399 return eventTimeSequenceHasBeenModified; 400 } 401 402 @Nonnull 403 public EntityInstancePK getEntityInstancePK() { 404 return entityInstancePK; 405 } 406 407 public void setEntityInstancePK(@Nonnull EntityInstancePK entityInstancePK) 408 throws PersistenceNotNullException { 409 checkForNull(entityInstancePK); 410 411 boolean update = true; 412 413 if(this.entityInstancePK != null) { 414 if(this.entityInstancePK.equals(entityInstancePK)) { 415 update = false; 416 } 417 } else if(entityInstancePK == null) { 418 update = false; 419 } 420 421 if(update) { 422 this.entityInstancePK = entityInstancePK; 423 entityInstancePKHasBeenModified = true; 424 clearHashAndString(); 425 } 426 } 427 428 public boolean getEntityInstancePKHasBeenModified() { 429 return entityInstancePKHasBeenModified; 430 } 431 432 @Nonnull 433 public EventTypePK getEventTypePK() { 434 return eventTypePK; 435 } 436 437 public void setEventTypePK(@Nonnull EventTypePK eventTypePK) 438 throws PersistenceNotNullException { 439 checkForNull(eventTypePK); 440 441 boolean update = true; 442 443 if(this.eventTypePK != null) { 444 if(this.eventTypePK.equals(eventTypePK)) { 445 update = false; 446 } 447 } else if(eventTypePK == null) { 448 update = false; 449 } 450 451 if(update) { 452 this.eventTypePK = eventTypePK; 453 eventTypePKHasBeenModified = true; 454 clearHashAndString(); 455 } 456 } 457 458 public boolean getEventTypePKHasBeenModified() { 459 return eventTypePKHasBeenModified; 460 } 461 462 @Nullable 463 public EntityInstancePK getRelatedEntityInstancePK() { 464 return relatedEntityInstancePK; 465 } 466 467 public void setRelatedEntityInstancePK(@Nullable EntityInstancePK relatedEntityInstancePK) { 468 boolean update = true; 469 470 if(this.relatedEntityInstancePK != null) { 471 if(this.relatedEntityInstancePK.equals(relatedEntityInstancePK)) { 472 update = false; 473 } 474 } else if(relatedEntityInstancePK == null) { 475 update = false; 476 } 477 478 if(update) { 479 this.relatedEntityInstancePK = relatedEntityInstancePK; 480 relatedEntityInstancePKHasBeenModified = true; 481 clearHashAndString(); 482 } 483 } 484 485 public boolean getRelatedEntityInstancePKHasBeenModified() { 486 return relatedEntityInstancePKHasBeenModified; 487 } 488 489 @Nullable 490 public EventTypePK getRelatedEventTypePK() { 491 return relatedEventTypePK; 492 } 493 494 public void setRelatedEventTypePK(@Nullable EventTypePK relatedEventTypePK) { 495 boolean update = true; 496 497 if(this.relatedEventTypePK != null) { 498 if(this.relatedEventTypePK.equals(relatedEventTypePK)) { 499 update = false; 500 } 501 } else if(relatedEventTypePK == null) { 502 update = false; 503 } 504 505 if(update) { 506 this.relatedEventTypePK = relatedEventTypePK; 507 relatedEventTypePKHasBeenModified = true; 508 clearHashAndString(); 509 } 510 } 511 512 public boolean getRelatedEventTypePKHasBeenModified() { 513 return relatedEventTypePKHasBeenModified; 514 } 515 516 @Nullable 517 public EntityInstancePK getCreatedByPK() { 518 return createdByPK; 519 } 520 521 public void setCreatedByPK(@Nullable EntityInstancePK createdByPK) { 522 boolean update = true; 523 524 if(this.createdByPK != null) { 525 if(this.createdByPK.equals(createdByPK)) { 526 update = false; 527 } 528 } else if(createdByPK == null) { 529 update = false; 530 } 531 532 if(update) { 533 this.createdByPK = createdByPK; 534 createdByPKHasBeenModified = true; 535 clearHashAndString(); 536 } 537 } 538 539 public boolean getCreatedByPKHasBeenModified() { 540 return createdByPKHasBeenModified; 541 } 542 543}