TariffingClientConfig.java

package com.tradecloud.domain.configuration;

import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.duties.TradeAgreement;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.hibernate.annotations.ForeignKey;

import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

/**
 * Tariffing-related client config.
 */
@Entity
@Table(name = "tariffingclientconfig")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "TariffingClientConfig")
public class TariffingClientConfig extends PersistenceBase {

    private static final long serialVersionUID = 1L;

    @XmlAttribute
    @NotNull
    private boolean electronicTariffing;

    @XmlAttribute
    @NotNull
    private boolean displayTariffCodeOnCostSheets;

    @OneToMany(cascade = CascadeType.ALL)
    @JoinTable(name = "tarrifclientconfig_tradeagreements",
            joinColumns = @JoinColumn(name = "config_id"),
            inverseJoinColumns = @JoinColumn(name = "tradeagreement_id"))
    @ForeignKey(name = "fk_tradeagreements", inverseName = "fk_config_id")
    @XmlElementWrapper(name = "tradeAgreements")
    @XmlElement(name = "tradeAgreements")
    private List<TradeAgreements> tradeAgreements = new ArrayList<TradeAgreements>();

    @XmlAttribute
    @NotNull
    private boolean tariffPerSelectedSupplier;

    @XmlAttribute
    private String woodenHangers;

    @XmlAttribute
    private String recyclablePlasticHangers;

    @XmlAttribute
    private String nonRecyclablePlasticHangers;

    @Enumerated(value = EnumType.STRING)
    private TradeAgreement defaultTradeAgreement;

    private boolean allowShipmentSyncWithProductLibrary;

    private boolean bondedSplit;

    private boolean useBrandsInItacPermit;

    public boolean getElectronicTariffing() {
        return electronicTariffing;
    }

    public void setElectronicTariffing(boolean electronicTariffing) {
        this.electronicTariffing = electronicTariffing;
    }

    public boolean isDisplayTariffCodeOnCostSheets() {
        return displayTariffCodeOnCostSheets;
    }

    public void setDisplayTariffCodeOnCostSheets(boolean displayTariffCodeOnCostSheets) {
        this.displayTariffCodeOnCostSheets = displayTariffCodeOnCostSheets;
    }

    public List<TradeAgreements> getTradeAgreements() {
        return tradeAgreements;
    }

    public void setTradeAgreements(List<TradeAgreements> tradeAgreements) {
        this.tradeAgreements = tradeAgreements;
    }

    public boolean isTariffPerSelectedSupplier() {
        return tariffPerSelectedSupplier;
    }

    public void setTariffPerSelectedSupplier(boolean tariffPerSelectedSupplier) {
        this.tariffPerSelectedSupplier = tariffPerSelectedSupplier;
    }

    public String getWoodenHangers() {
        return woodenHangers;
    }

    public void setWoodenHangers(String woodenHangers) {
        this.woodenHangers = woodenHangers;
    }

    public String getRecyclablePlasticHangers() {
        return recyclablePlasticHangers;
    }

    public void setRecyclablePlasticHangers(String recyclablePlasticHangers) {
        this.recyclablePlasticHangers = recyclablePlasticHangers;
    }

    public String getNonRecyclablePlasticHangers() {
        return nonRecyclablePlasticHangers;
    }

    public void setNonRecyclablePlasticHangers(String nonRecyclablePlasticHangers) {
        this.nonRecyclablePlasticHangers = nonRecyclablePlasticHangers;
    }

    public TradeAgreement getDefaultTradeAgreement() {
        return defaultTradeAgreement;
    }

    public void setDefaultTradeAgreement(TradeAgreement defaultTradeAgreement) {
        this.defaultTradeAgreement = defaultTradeAgreement;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        TariffingClientConfig that = (TariffingClientConfig) o;
        return electronicTariffing == that.electronicTariffing &&
                displayTariffCodeOnCostSheets == that.displayTariffCodeOnCostSheets &&
                Objects.equals(woodenHangers, that.woodenHangers) &&
                Objects.equals(recyclablePlasticHangers, that.recyclablePlasticHangers) &&
                Objects.equals(nonRecyclablePlasticHangers, that.nonRecyclablePlasticHangers);
    }

    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), electronicTariffing, displayTariffCodeOnCostSheets, woodenHangers, recyclablePlasticHangers,
                nonRecyclablePlasticHangers);
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this).append(electronicTariffing).append(displayTariffCodeOnCostSheets).
                append(woodenHangers).append(recyclablePlasticHangers).append(nonRecyclablePlasticHangers).append(defaultTradeAgreement).toString();
    }

    public boolean isAllowShipmentSyncWithProductLibrary() {
        return allowShipmentSyncWithProductLibrary;
    }

    public void setAllowShipmentSyncWithProductLibrary(boolean allowShipmentSyncWithProductLibrary) {
        this.allowShipmentSyncWithProductLibrary = allowShipmentSyncWithProductLibrary;
    }

    public boolean isBondedSplit() {
        return bondedSplit;
    }

    public void setBondedSplit(boolean bondedSplit) {
        this.bondedSplit = bondedSplit;
    }

    public boolean isUseBrandsInItacPermit() {
        return useBrandsInItacPermit;
    }

    public void setUseBrandsInItacPermit(boolean useBrandsInItacPermit) {
        this.useBrandsInItacPermit = useBrandsInItacPermit;
    }
}