SupplierSearch.java

package com.tradecloud.dto.company;

import com.tradecloud.domain.base.utils.ObjectUtil;
import com.tradecloud.domain.common.Currency;
import com.tradecloud.domain.dto.base.SearchBase;
import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;
import com.tradecloud.domain.model.shipment.ShippingMode;
import com.tradecloud.domain.place.Country;
import com.tradecloud.domain.supplier.AbstractSupplier;
import com.tradecloud.domain.supplier.CompleteType;
import com.tradecloud.domain.supplier.IntegratedType;
import com.tradecloud.domain.supplier.SupplierState;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * Supplier Search Request class.
 *
 * @author ronan
 */
@Component
@Scope("view")
public class SupplierSearch extends SearchBase implements Serializable {

    private String name;
    private String reference;
    private SupplierState state;
    private CompleteType complete;
    private IntegratedType integrated;
    private OrganisationalUnit organisationalUnit; // Not sure we can use this here
    private Date createdFrom;
    private Date createdTo;
    private Date updatedFrom;
    private Date updatedTo;
    private Country country;
    private Currency currency;
    private boolean unique = false;
    private ShippingMode shippingMode;
    private List<AbstractSupplier.Type> types;

    private String showUnlinked="NO";

    private static final long serialVersionUID = 1L;

    @Override
    public String getTableName() {
        return "AbstractSupplier";
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getReference() {
        return reference;
    }

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

    public SupplierState getState() {
        return state;
    }

    public void setState(SupplierState state) {
        this.state = state;
    }

    public OrganisationalUnit getOrganisationalUnit() {
        return organisationalUnit;
    }

    public void setOrganisationalUnit(OrganisationalUnit organisationalUnit) {
        this.organisationalUnit = organisationalUnit;
    }

    public Date getCreatedFrom() {
        return createdFrom;
    }

    public void setCreatedFrom(Date createdFrom) {
        this.createdFrom = createdFrom;
    }

    public Date getCreatedTo() {
        return createdTo;
    }

    public void setCreatedTo(Date createdTo) {
        this.createdTo = createdTo;
    }

    public Country getCountry() {
        return country;
    }

    public void setCountry(Country country) {
        this.country = country;
    }

    public Currency getCurrency() {
        return currency;
    }

    public void setCurrency(Currency currency) {
        this.currency = currency;
    }

    public IntegratedType getIntegrated() {
        return integrated;
    }

    public void setIntegrated(IntegratedType integrated) {
        this.integrated = integrated;
    }

    public CompleteType getComplete() {
        return complete;
    }

    public void setComplete(CompleteType complete) {
        this.complete = complete;
    }

    public Date getUpdatedFrom() {
        return updatedFrom;
    }

    public void setUpdatedFrom(Date updatedFrom) {
        this.updatedFrom = updatedFrom;
    }

    public Date getUpdatedTo() {
        return updatedTo;
    }

    public void setUpdatedTo(Date updatedTo) {
        this.updatedTo = updatedTo;
    }

    @Override
    public String toString() {
        return "SupplierSearch [name=" + name + ", reference=" + reference + ", state=" + state + ", complete=" + complete + ", integrated="
                + integrated + ", organisationalUnit=" + organisationalUnit + ", createdFrom=" + createdFrom + ", createdTo=" + createdTo
                + ", updatedFrom=" + updatedFrom + ", updatedTo=" + updatedTo + ", country=" + country + ", currency=" + currency + "]";
    }

    public void setUnique(boolean unique) {
        this.unique = unique;
    }

    public boolean isUnique() {
        return unique;
    }

    public ShippingMode getShippingMode() {
        return shippingMode;
    }

    public void setShippingMode(ShippingMode shippingMode) {
        this.shippingMode = shippingMode;
    }

    public List<AbstractSupplier.Type> getTypes() {
        if (types == null) {
            types = new ArrayList<>();
        }
        return types;
    }

    public void setTypes(List<AbstractSupplier.Type> types) {
        this.types = types;
    }

    @Override
    public boolean noSelectedOrgUnit() {
        return ObjectUtil.allNull(organisationalUnit);
    }

    public String getShowUnlinked() {
        return showUnlinked;
    }

    public void setShowUnlinked(String showUnlinked) {
        this.showUnlinked = showUnlinked;
    }
}