package de.ph87.tools.common.uuid; import lombok.Getter; import lombok.NonNull; import java.util.UUID; @Getter public abstract class AbstractUuid { public final String uuid; @SuppressWarnings("unused") // used by lombok @NoArgsConstructor protected AbstractUuid() { this(UUID.randomUUID().toString()); } protected AbstractUuid(@NonNull final String uuid) { if (uuid.length() != 36) { throw new RuntimeException(); } this.uuid = uuid; } @Override public String toString() { return uuid; } @Override public int hashCode() { return uuid.hashCode(); } @Override public boolean equals(final Object obj) { if (obj instanceof final AbstractUuid casted) { return uuid.equals(casted.uuid); } return false; } }