edu.monash.merc.dto.tl.TLSearchBean.java Source code

Java tutorial

Introduction

Here is the source code for edu.monash.merc.dto.tl.TLSearchBean.java

Source

/*
 * Copyright (c) 2011-2013, Monash e-Research Centre
 * (Monash University, Australia)
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *    * Redistributions of source code must retain the above copyright
 *      notice, this list of conditions and the following disclaimer.
 *    * Redistributions in binary form must reproduce the above copyright
 *      notice, this list of conditions and the following disclaimer in the
 *      documentation and/or other materials provided with the distribution.
 *    * Neither the name of the Monash University nor the names of its
 *      contributors may be used to endorse or promote products derived from
 *      this software without specific prior written permission.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Affero General Public License for more details.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * You should have received a copy of the GNU Affero General Public License along with
 * this program. If not, see <http://www.gnu.org/licenses/>.
 */

package edu.monash.merc.dto.tl;

import edu.monash.merc.common.name.DbAcType;
import edu.monash.merc.util.DMUtil;
import org.apache.commons.lang.StringUtils;

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

/**
 * TLSearchBean class which is a DTO class populates the TLSearchBean object.
 *
 * @author Simon Yu
 *         <p/>
 *         Email: xiaoming.yu@monash.edu
 * @version 1.0
 * @since 1.0
 *        <p/>
 *        Date: 12/11/12 4:48 PM
 */
public class TLSearchBean implements Serializable {

    private String selectedChromType;

    private int combinatedToken;

    private boolean nxDbSelected;

    private boolean gpmDbSelected;

    private boolean hpaDbSelected;

    private boolean bcDbSelected;

    private long selectedVersion;

    private long regionFrom;

    private long regionTo;

    private String selectedGeneValueType;

    private String geneTypeValues;

    private List<TLTypeEvLevelFilter> tlTypeEvLevelFilters;

    private boolean advancedMode;

    private boolean regionProvided;

    private boolean typeLevelProvided;

    private boolean geneListProvided;

    public String getSelectedChromType() {
        return selectedChromType;
    }

    public void setSelectedChromType(String selectedChromType) {
        this.selectedChromType = selectedChromType;
    }

    public int getCombinatedToken() {
        return combinateDBSToken();
    }

    public String getSelectedDs() {
        String selectedDs = "";
        if (this.isNxDbSelected()) {
            selectedDs = DbAcType.NextProt.type();
        }
        if (this.isGpmDbSelected()) {
            if (StringUtils.isBlank(selectedDs)) {
                selectedDs = DbAcType.GPM.type();
            } else {
                selectedDs += " " + DbAcType.GPM.type();
            }
        }
        if (this.isHpaDbSelected()) {
            if (StringUtils.isBlank(selectedDs)) {
                selectedDs = DbAcType.HPA.type();
            } else {
                selectedDs += " " + DbAcType.HPA.type();
            }
        }
        if (this.isBcDbSelected()) {
            if (StringUtils.isBlank(selectedDs)) {
                selectedDs = DbAcType.BarCode.type();
            } else {
                selectedDs += " " + DbAcType.BarCode.type();
            }
        }
        return selectedDs;
    }

    public void setCombinatedToken(int combinatedToken) {
        this.combinatedToken = combinatedToken;
        setSelectedDsBasedOnTrackToken(combinatedToken);
    }

    private void resetSelectedDbsrc() {
        this.nxDbSelected = false;
        this.gpmDbSelected = false;
        this.hpaDbSelected = false;
        this.bcDbSelected = false;
    }

    private void setSelectedDsBasedOnTrackToken(int combinatedToken) {
        resetSelectedDbsrc();
        String trackStr = String.valueOf(combinatedToken);
        String[] tokens = DMUtil.split(trackStr);
        int tokenLength = tokens.length;
        //token number is 4 digital

        if (tokenLength == 4) {
            for (int i = (tokenLength - 1); i >= 0; i--) {
                String tk = tokens[i];

                if (StringUtils.equals(tk, "1")) {
                    if (i == 3) {
                        this.nxDbSelected = true;
                    }
                    if (i == 2) {
                        this.gpmDbSelected = true;
                    }
                    if (i == 1) {
                        this.hpaDbSelected = true;
                    }
                    if (i == 0) {
                        this.bcDbSelected = true;
                    }
                }
            }
        }

        //token number is 3 digital int 111 or 110 or 101 or 100
        if (tokenLength == 3) {
            for (int i = (tokenLength - 1); i >= 0; i--) {
                String tk = tokens[i];
                if (StringUtils.equals(tk, "1")) {
                    if (i == 2) {
                        this.nxDbSelected = true;
                    }
                    if (i == 1) {
                        this.gpmDbSelected = true;
                    }
                    if (i == 0) {
                        this.hpaDbSelected = true;
                    }

                }
            }
        }
        //token number is 2 digital int 11 or 10
        if (tokenLength == 2) {
            for (int i = (tokenLength - 1); i >= 0; i--) {
                String tk = tokens[i];
                if (StringUtils.equals(tk, "1")) {
                    if (i == 1) {
                        this.nxDbSelected = true;
                    }
                    if (i == 0) {
                        this.gpmDbSelected = true;
                    }
                }
            }
        }

        //token number is int 1 0r 0
        if (tokenLength == 1) {
            String tk = tokens[0];
            if (StringUtils.equals(tk, "1")) {
                this.nxDbSelected = true;
            }
        }
    }

    public boolean isNxDbSelected() {
        return nxDbSelected;
    }

    public void setNxDbSelected(boolean nxDbSelected) {
        this.nxDbSelected = nxDbSelected;
    }

    public boolean isGpmDbSelected() {
        return gpmDbSelected;
    }

    public void setGpmDbSelected(boolean gpmDbSelected) {
        this.gpmDbSelected = gpmDbSelected;
    }

    public boolean isHpaDbSelected() {
        return hpaDbSelected;
    }

    public void setHpaDbSelected(boolean hpaDbSelected) {
        this.hpaDbSelected = hpaDbSelected;
    }

    public boolean isBcDbSelected() {
        return bcDbSelected;
    }

    public void setBcDbSelected(boolean bcDbSelected) {
        this.bcDbSelected = bcDbSelected;
    }

    public long getSelectedVersion() {
        return selectedVersion;
    }

    public void setSelectedVersion(long selectedVersion) {
        this.selectedVersion = selectedVersion;
    }

    public List<TLTypeEvLevelFilter> getTlTypeEvLevelFilters() {
        return tlTypeEvLevelFilters;
    }

    public void setTlTypeEvLevelFilters(List<TLTypeEvLevelFilter> tlTypeEvLevelFilters) {
        this.tlTypeEvLevelFilters = tlTypeEvLevelFilters;
    }

    public long getRegionFrom() {
        return regionFrom;
    }

    public void setRegionFrom(long regionFrom) {
        this.regionFrom = regionFrom;
    }

    public long getRegionTo() {
        return regionTo;
    }

    public void setRegionTo(long regionTo) {
        this.regionTo = regionTo;
    }

    public String getSelectedGeneValueType() {
        return selectedGeneValueType;
    }

    public void setSelectedGeneValueType(String selectedGeneValueType) {
        this.selectedGeneValueType = selectedGeneValueType;
    }

    public String getGeneTypeValues() {
        return geneTypeValues;
    }

    public void setGeneTypeValues(String geneTypeValues) {
        this.geneTypeValues = geneTypeValues;
    }

    public boolean isAdvancedMode() {
        if (typeLevelFilterProvided()) {
            return true;
        }
        if (StringUtils.isNotBlank(geneTypeValues)) {
            return true;
        }
        if ((regionFrom != 0 && regionTo != 0) || (regionFrom != 0 && regionTo == 0)
                || regionFrom == 0 && regionTo != 0) {
            return true;
        }
        return false;
    }

    public void setAdvancedMode(boolean advancedMode) {
        this.advancedMode = advancedMode;
    }

    public boolean isRegionProvided() {
        if (regionFrom == 0 && regionTo == 0) {
            return false;
        }
        return true;
    }

    public void setRegionProvided(boolean regionProvided) {
        this.regionProvided = regionProvided;
    }

    public boolean isTypeLevelProvided() {
        return typeLevelFilterProvided();
    }

    public void setTypeLevelProvided(boolean typeLevelProvided) {
        this.typeLevelProvided = typeLevelProvided;
    }

    public boolean isGeneListProvided() {
        if (StringUtils.isNotBlank(geneTypeValues)) {
            return true;
        }
        return false;
    }

    public void setGeneListProvided(boolean geneListProvided) {
        this.geneListProvided = geneListProvided;
    }

    private boolean typeLevelFilterProvided() {
        boolean typeLevelProvided = false;
        if (tlTypeEvLevelFilters != null) {
            for (TLTypeEvLevelFilter tlTypeEvLevelFilter : tlTypeEvLevelFilters) {
                if (tlTypeEvLevelFilter.isValidTypeLevel()) {
                    return true;
                }
            }
        }
        return typeLevelProvided;
    }

    private int combinateDBSToken() {
        String ds_selected = "1";
        String none_ds_selected = "0";
        String token = none_ds_selected;

        if (this.nxDbSelected) {
            token = ds_selected;
        }

        if (this.gpmDbSelected) {
            token = token + ds_selected;
        } else {
            token = token + none_ds_selected;
        }
        if (this.hpaDbSelected) {
            token = token + ds_selected;
        } else {
            token = token + none_ds_selected;
        }
        if (this.bcDbSelected) {
            token = token + ds_selected;
        } else {
            token = token + none_ds_selected;
        }

        return Integer.valueOf(StringUtils.reverse(token));
    }
}