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 boolean equals(final Object obj) { if (!this.getClass().equals(obj.getClass())) { return false; } return uuid.equals(this.getClass().cast(obj).uuid); } @Override public int hashCode() { return uuid.hashCode(); } }