package net.java.cargotracker.domain.model.voyage; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Embeddable; import javax.validation.constraints.NotNull; import org.apache.commons.lang3.Validate; @Embeddable public class VoyageNumber implements Serializable { private static final long serialVersionUID = 1L; @Column(name = "voyage_number") @NotNull private String number; public VoyageNumber() { // Nothing to initialize. } public VoyageNumber(String number) { Validate.notNull(number); this.number = number; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null) { return false; } if (!(o instanceof VoyageNumber)) { return false; } VoyageNumber other = (VoyageNumber) o; return sameValueAs(other); } @Override public int hashCode() { return number.hashCode(); } boolean sameValueAs(VoyageNumber other) { return other != null && this.number.equals(other.number); } @Override public String toString() { return number; } public String getIdString() { return number; } }