InternalReference.java
package com.tradecloud.domain.model.fec;
import org.apache.commons.lang.Validate;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import java.io.Serializable;
@Embeddable
public class InternalReference implements Serializable {
@Column(name = "internal_reference")
private String reference;
// For JPA only
public InternalReference() {
}
public static InternalReference valueOf(String reference) {
// Validate.notNull(reference, "Reference may not be null"); TTM-1259
Validate.isTrue(reference.length() < 256, " String too Long for an Internal Reference");
return new InternalReference(reference);
}
private InternalReference(String reference) {
this.reference = reference;
}
public String getReference() {
return reference;
}
@Override
public InternalReference clone() {
return InternalReference.valueOf(reference);
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final InternalReference other = (InternalReference) obj;
if ((this.reference == null) ? (other.reference != null) : !this.reference.equals(other.reference)) {
return false;
}
return true;
}
@Override
public int hashCode() {
int hash = 7;
hash = 29 * hash + (this.reference != null ? this.reference.hashCode() : 0);
return hash;
}
}