package be.swsb.fiazard.ddd;
import static org.apache.commons.lang.builder.ToStringStyle.SIMPLE_STYLE;
import java.util.UUID;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonCreator;
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
public class AggregateId {
private String value;
@JsonCreator
AggregateId(String value) {
this.value = value;
}
String getValue() {
return value;
}
@Override
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj);
}
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
};
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, SIMPLE_STYLE);
};
public static AggregateId generate() {
return new AggregateId(UUID.randomUUID().toString());
}
}