DealLinkReference.java

package com.tradecloud.domain.model.deal;

import org.apache.commons.lang.Validate;

import javax.persistence.Column;
import javax.persistence.Embeddable;
import java.io.Serializable;

@Embeddable
public class DealLinkReference implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * Used only for JPA.
     */
    public DealLinkReference() {
    }

    @Column(name = "deal_link_reference")
    private String reference;

    private DealLinkReference(String reference) {
        this.reference = reference;
    }

    public String getReference() {
        return reference;
    }

    public static DealLinkReference valueOf(String reference) {
        Validate.notEmpty(reference, "Reference may not be null or empty");
        return new DealLinkReference(reference);
    }

    @Override
    public boolean equals(Object obj) {
        return this.reference.equals(((DealLinkReference) obj).getReference());
    }

    @Override
    public int hashCode() {
        int hash = 5;
        hash = 79 * hash + (this.reference != null ? this.reference.hashCode() : 0);
        return hash;
    }

}