ProcessSearch.java

package com.tradecloud.dto.async;

import com.tradecloud.domain.async.EntityType;
import com.tradecloud.domain.async.ProcessState;
import com.tradecloud.domain.async.ProcessType;
import com.tradecloud.domain.dto.base.SearchBase;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

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

@Component
@Scope("view")
public class ProcessSearch extends SearchBase implements Serializable {

    private static final long serialVersionUID = 1L;
    protected String userName;
    protected String reference;
    protected ProcessState processState;
    protected ProcessType processType;
    protected EntityType entityType;
    protected Date fromDate;
    protected Date toDate;
    private Long entityId;

    protected String relatedEntityReference;

    protected boolean exactMatch=true;

    ProcessType excludeProcessType=ProcessType.RE_COST;

    public ProcessSearch() {
    }

    public Date getFromDate() {
        return fromDate;
    }

    public void setFromDate(Date fromDate) {
        this.fromDate = fromDate;
    }

    public Date getToDate() {
        return toDate;
    }

    public void setToDate(Date toDate) {
        this.toDate = toDate;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public ProcessState getProcessState() {
        return processState;
    }

    public void setProcessState(ProcessState processState) {
        this.processState = processState;
    }

    public ProcessType getProcessType() {
        return processType;
    }

    public void setProcessType(ProcessType processType) {
        this.processType = processType;
    }

    public String getReference() {
        return reference;
    }

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

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;

        if (!(o instanceof ProcessSearch)) return false;

        ProcessSearch that = (ProcessSearch) o;

        return new EqualsBuilder()
                .append(getUserName(), that.getUserName())
                .append(getProcessState(), that.getProcessState())
                .append(getProcessType(), that.getProcessType())
                .append(getFromDate(), that.getFromDate())
                .append(getToDate(), that.getToDate())
                .isEquals();
    }

    @Override
    public int hashCode() {
        return new HashCodeBuilder(17, 37)
                .append(getUserName())
                .append(getProcessState())
                .append(getProcessType())
                .append(getFromDate())
                .append(getToDate())
                .toHashCode();
    }

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

    public EntityType getEntityType() {
        return entityType;
    }

    public void setEntityType(EntityType entityType) {
        this.entityType = entityType;
    }

    public Long getEntityId() {
        return entityId;
    }

    public void setEntityId(Long entityId) {
        this.entityId = entityId;
    }

    public String getRelatedEntityReference() {
        return relatedEntityReference;
    }

    public void setRelatedEntityReference(String relatedEntityReference) {
        this.relatedEntityReference = relatedEntityReference;
    }

    public boolean isExactMatch() {
        return exactMatch;
    }

    public void setExactMatch(boolean exactMatch) {
        this.exactMatch = exactMatch;
    }

    public ProcessType getExcludeProcessType() {
        return excludeProcessType;
    }

    public void setExcludeProcessType(ProcessType excludeProcessType) {
        this.excludeProcessType = excludeProcessType;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this)
                .append("reference", reference)
                .append("processState", processState)
                .append("entityType", entityType)
                .append("processType", processType)
                .toString();
    }
}