PaymentTerm.java

package com.tradecloud.domain.model.payment;

import com.tradecloud.common.base.StaticDataEntityBase;
import com.tradecloud.domain.common.IntegratedStaticDataEntityBase;

import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;

/**
 * In blackbox again it's way too loose <paymentterm code="DAYS_14"
 * name="14 Days" />.
 */
@Entity
//@Cacheable(value = "paymentterm")
@Table(name = "paymentterm", uniqueConstraints = {@UniqueConstraint(columnNames = {"code"})})
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "PaymentTerm")
public class PaymentTerm extends IntegratedStaticDataEntityBase {

    /**
     * UID.
     */
    private static final long serialVersionUID = 3938032784741076396L;

    @NotNull
    @XmlAttribute
    private int days;

    @NotNull
    @XmlAttribute
    private boolean sight;

    public PaymentTerm(String code, String name, int days) {
        this(code, name);
        this.days = days;
    }

    public PaymentTerm(String code, String name) {
        super(code, name);
    }

    public PaymentTerm() {
    }

    public int getDays() {
        return days;
    }

    public void setDays(int days) {
        this.days = days;
    }

    public boolean isSight() {
        return sight;
    }

    public void setSight(boolean sight) {
        this.sight = sight;
    }

    @Override
    public int compareTo(StaticDataEntityBase o) {
        PaymentTerm other = (PaymentTerm) o;
        return getDays() - other.getDays();
    }

}