com.mercateo.eventstore.domain.EventNumber Maven / Gradle / Ivy
Show all versions of client-common Show documentation
package com.mercateo.eventstore.domain;
import java.util.Objects;
import javax.annotation.Generated;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import javax.annotation.concurrent.Immutable;
/**
* Immutable implementation of {@link _EventNumber}.
*
* Use the static factory method to create immutable instances:
* {@code EventNumber.of()}.
*/
@SuppressWarnings({"all"})
@ParametersAreNonnullByDefault
@Generated({"Immutables.generator", "_EventNumber"})
@Immutable
public final class EventNumber extends com.mercateo.eventstore.domain._EventNumber {
private final Long value;
private EventNumber(Long value) {
this.value = Objects.requireNonNull(value, "value");
}
/**
* @return The value of the {@code value} attribute
*/
@Override
public Long value() {
return value;
}
/**
* This instance is equal to all instances of {@code EventNumber} 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 EventNumber
&& equalTo((EventNumber) another);
}
private boolean equalTo(EventNumber 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 EventNumber} instance.
* @param value The value for the {@code value} attribute
* @return An immutable EventNumber instance
*/
public static EventNumber of(Long value) {
return new EventNumber(value);
}
}