DebitCreditNoteReference.java

package com.tradecloud.domain.model.deal;

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

@Embeddable
public class DebitCreditNoteReference implements Serializable {

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

    /**
     * for hibernate use.
     */
    public DebitCreditNoteReference() {
    }

    public static DebitCreditNoteReference valueOf(String reference) {

        return new DebitCreditNoteReference(reference);

    }

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

    @Override
    public boolean equals(Object o) {
        if (this == o)
            return true;
        if (o == null || getClass() != o.getClass())
            return false;

        DebitCreditNoteReference that = (DebitCreditNoteReference) o;

        if (reference != null ? !reference.equals(that.reference) : that.reference != null)
            return false;

        return true;
    }

    @Override
    public int hashCode() {
        return reference != null ? reference.hashCode() : 0;
    }

    public String getReference() {
        return reference;
    }

}