com.mercateo.eventstore.domain.EventId Maven / Gradle / Ivy
Show all versions of client-common Show documentation
package com.mercateo.eventstore.domain;
import java.util.Objects;
import java.util.UUID;
import javax.annotation.Generated;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import javax.annotation.concurrent.Immutable;
/**
* Immutable implementation of {@link _EventId}.
*
* Use the static factory method to create immutable instances:
* {@code EventId.of()}.
*/
@SuppressWarnings({"all"})
@ParametersAreNonnullByDefault
@Generated({"Immutables.generator", "_EventId"})
@Immutable
public final class EventId extends com.mercateo.eventstore.domain._EventId {
private final UUID value;
private EventId(UUID value) {
this.value = Objects.requireNonNull(value, "value");
}
/**
* @return The value of the {@code value} attribute
*/
@Override
public UUID value() {
return value;
}
/**
* This instance is equal to all instances of {@code EventId} that have equal attribute values.
* @return {@code true} if {@code this} is equal to {@code another} instance
*/
@Override
public boolean equals(@Nullable Object another) {
if (this == another) return true;
return another instanceof EventId
&& equalTo((EventId) another);
}
private boolean equalTo(EventId another) {
return value.equals(another.value);
}
/**
* Computes a hash code from attributes: {@code value}.
* @return hashCode value
*/
@Override
public int hashCode() {
int h = 5381;
h += (h << 5) + value.hashCode();
return h;
}
/**
* Construct a new immutable {@code EventId} instance.
* @param value The value for the {@code value} attribute
* @return An immutable EventId instance
*/
public static EventId of(UUID value) {
return new EventId(value);
}
}