ConfirmingFeeRate.java

package com.tradecloud.domain.rate;

import com.tradecloud.domain.model.payment.PaymentTerm;

import javax.persistence.*;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;

/**
 * Created by ds on 2017/03/15.
 */
@Entity
@Table(name = "confirmingfeerate")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "ConfirmingFeeRate")
public class ConfirmingFeeRate extends Rate {

    @ManyToOne
    private PaymentTerm paymentTerm;

    public PaymentTerm getPaymentTerm() {
        return paymentTerm;
    }

    public void setPaymentTerm(PaymentTerm paymentTerm) {
        this.paymentTerm = paymentTerm;
    }

    @Override
    public String toString() {
        String toReturn = super.toString();
        String organisationalUnitStr = "Organisational Unit: '" + (getOrganisationalUnit() != null ? getOrganisationalUnit().getName() : "") + "', ";
        String paymentTermStr = "Payment Term: '" + (paymentTerm != null ? paymentTerm.getName() : "") + "', ";
        toReturn += organisationalUnitStr + paymentTermStr;
        return toReturn;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) return false;
        if (!(obj instanceof InternalProvisionsRate)) {
            return false;
        }

        if (!super.equals(obj)) return false;

        ConfirmingFeeRate other = (ConfirmingFeeRate) obj;

        if (objectsEqual(other, obj))
            return true;

        return false;
    }

}