WaferSelectionMain.java

package com.mycim.valueobject.edcspc;

import com.mycim.framework.utils.lang.StringUtils;

import java.io.Serializable;

public class WaferSelectionMain implements Serializable {

    public static final String EMPTY_REPLACE_CHARACTER = "*";

    /**
     *
     */
    private static final long serialVersionUID = 1L;

    private long mainRrn;

    private long facilityRrn;

    private long transRrn;

    private String eqptId;

    private String recipeId;

    private String productId;

    private String units;

    private String activationDate;

    private String expireDate;

    private long createUserRrn;

    private String createBy;

    private String createDate;

    private long modifyUserRrn;

    private String modifyBy;

    private String modifyDate;

    public long getMainRrn() {
        return mainRrn;
    }

    public void setMainRrn(long mainRrn) {
        this.mainRrn = mainRrn;
    }

    public long getFacilityRrn() {
        return facilityRrn;
    }

    public void setFacilityRrn(long facilityRrn) {
        this.facilityRrn = facilityRrn;
    }

    public long getTransRrn() {
        return transRrn;
    }

    public void setTransRrn(long transRrn) {
        this.transRrn = transRrn;
    }

    public String getEqptId() {
        return eqptId;
    }

    public void setEqptId(String eqptId) {
        this.eqptId = StringUtils.trimToUpperCase(eqptId);
    }

    /**
     * @return empty equals '*'
     */
    public String getRecipeId() {
        if (StringUtils.isBlank(recipeId)) {
            return EMPTY_REPLACE_CHARACTER;
        }
        return recipeId;
    }

    public void setRecipeId(String recipeId) {
        this.recipeId = StringUtils.trimToUpperCase(recipeId);
    }

    /**
     * @return empty equals '*'
     */
    public String getProductId() {
        if (StringUtils.isBlank(productId)) {
            return EMPTY_REPLACE_CHARACTER;
        }
        return productId;
    }

    public void setProductId(String productId) {
        this.productId = StringUtils.trimToUpperCase(productId);
    }

    public String getUnits() {
        return units;
    }

    public void setUnits(String units) {
        this.units = StringUtils.trimToUpperCase(units);
    }

    public String getActivationDate() {
        if (StringUtils.isBlank(activationDate)) {
            return "";
        }
        return activationDate;
    }

    public void setActivationDate(String activationDate) {
        this.activationDate = activationDate;
    }

    public String getExpireDate() {
        if (StringUtils.isBlank(expireDate)) {
            return "";
        }
        return expireDate;
    }

    public void setExpireDate(String expireDate) {
        this.expireDate = expireDate;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public String getCreateDate() {
        return createDate;
    }

    public void setCreateDate(String createDate) {
        this.createDate = createDate;
    }

    public String getModifyBy() {
        return modifyBy;
    }

    public void setModifyBy(String modifyBy) {
        this.modifyBy = modifyBy;
    }

    public String getModifyDate() {
        return modifyDate;
    }

    public void setModifyDate(String modifyDate) {
        this.modifyDate = modifyDate;
    }

    public long getCreateUserRrn() {
        return createUserRrn;
    }

    public void setCreateUserRrn(long createUserRrn) {
        this.createUserRrn = createUserRrn;
    }

    public long getModifyUserRrn() {
        return modifyUserRrn;
    }

    public void setModifyUserRrn(long modifyUserRrn) {
        this.modifyUserRrn = modifyUserRrn;
    }


    public void parseToFuzzyQuery() {
        this.setEqptId(parseToFuzzyQuery(getEqptId()));
        this.setProductId(parseToFuzzyQuery(getProductId()));
        this.setRecipeId(parseToFuzzyQuery(getRecipeId()));
        this.setUnits(parseToFuzzyQuery(getUnits()));
    }

    public boolean equalsMain(WaferSelectionMain targetMain) {
        if (targetMain == null) {
            return false;
        }

        if (this.getMainRrn() != targetMain.getMainRrn()) {
            return false;
        }

        if (this.getFacilityRrn() != targetMain.getFacilityRrn()) {
            return false;
        }

        if (!StringUtils.equals(this.getEqptId(), targetMain.getEqptId())) {
            return false;
        }

        if (!StringUtils.equals(this.getProductId(), targetMain.getProductId())) {
            return false;
        }

        if (!StringUtils.equals(this.getRecipeId(), targetMain.getRecipeId())) {
            return false;
        }

        if (!StringUtils.equals(this.getUnits(), targetMain.getUnits())) {
            return false;
        }

        if (!StringUtils.equals(this.getActivationDate(), targetMain.getActivationDate())) {
            return false;
        }

        if (!StringUtils.equals(this.getExpireDate(), targetMain.getExpireDate())) {
            return false;
        }

        return true;
    }

    private String parseToFuzzyQuery(String value) {
        if (value == null) {
            return value;
        }
        return value.replace("*", "%");
    }

}