IdReferenceDto.java

package com.tradecloud.dto.base;

import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;

import java.io.Serializable;
import java.math.BigInteger;

/**
 * This data transfer object is intended for use as a single result from a database (JPA, Hibernate) query as an alternative to loading a complete
 * entity into memory and into the persistence context (session).
 *
 * It should only be used by entities that have both an ID and Reference.
 */
public class IdReferenceDto implements Serializable {

    private static final long serialVersionUID = 1L;

    private BigInteger id;
    private String reference;
    private String shippingreference;
    private boolean isPacked;

    public IdReferenceDto() {
    }

    public IdReferenceDto(long id, String reference) {
        this.id = BigInteger.valueOf(id);
        this.reference = reference;
    }

    public IdReferenceDto(long id, String reference, String shippingreference) {
        this.id = BigInteger.valueOf(id);
        this.reference = reference;
        this.shippingreference = shippingreference;
    }

    public long getId() {
        return id.longValue();
    }

    public void setId(BigInteger id) {
        this.id = id;
    }

    public String getReference() {
        return reference;
    }

    public void setReference(String reference) {
        this.reference = reference;
    }

    public String getShippingreference() {
        return shippingreference;
    }

    public void setShippingreference(String shippingreference) {
        this.shippingreference = shippingreference;
    }

    public String getOrderAndShippingReference() {

        String orderReference = getReference();
        String shippingReference = getShippingreference();

        if(shippingReference != null && !shippingReference.equals("")) {
            return orderReference + " - " + shippingReference;
        }

        return orderReference;
    }

    public boolean isPacked() {
        return isPacked;
    }

    public void setPacked(boolean packed) {
        isPacked = packed;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this).append(id).append(reference).toString();
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (this == obj) {
            return true;
        }
        if (!(obj instanceof IdReferenceDto)) {
            return false;
        }
        IdReferenceDto other = (IdReferenceDto) obj;
        return new EqualsBuilder().append(id, other.id).append(reference, other.reference).isEquals();
    }

    @Override
    public int hashCode() {
        return new HashCodeBuilder().append(id).append(reference).toHashCode();
    }
}