ips1ap101.lib.core.app.ConsultaBusqueda.java Source code

Java tutorial

Introduction

Here is the source code for ips1ap101.lib.core.app.ConsultaBusqueda.java

Source

/*
 * Este programa es software libre; usted puede redistribuirlo y/o modificarlo bajo los trminos
 * de la licencia "GNU General Public License" publicada por la Fundacin "Free Software Foundation".
 *
 * Este programa se distribuye con la esperanza de que pueda ser til, pero SIN NINGUNA GARANTIA;
 * vea la licencia "GNU General Public License" para obtener mas informacin.
 *
 */
package ips1ap101.lib.core.app;

import java.util.Map;
import ips1ap101.lib.core.db.util.InterpreteSql;
import org.apache.commons.lang.StringUtils;

/**
 * @author Jorge Campins
 */
public class ConsultaBusqueda {

    private String id;

    private String select;

    private String criterios;

    private Map<String, Object> parametros;

    private FiltroBusqueda filtro;

    /**
     * @return the id
     */
    public String getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * @return the select
     */
    public String getSelect() {
        return select;
    }

    /**
     * @param select the select to set
     */
    public void setSelect(String select) {
        this.select = select;
    }

    /**
     * @return the criterios
     */
    public String getCriterios() {
        return criterios;
    }

    /**
     * @param criterios the criterios to set
     */
    public void setCriterios(String criterios) {
        this.criterios = criterios;
    }

    /**
     * @return the parametros
     */
    public Map<String, Object> getParametros() {
        return parametros;
    }

    /**
     * @param parametros the parametros to set
     */
    public void setParametros(Map<String, Object> parametros) {
        this.parametros = parametros;
    }

    /**
     * @return the filtro
     */
    public FiltroBusqueda getFiltro() {
        return filtro;
    }

    /**
     * @param filtro the filtro to set
     */
    public void setFiltro(FiltroBusqueda filtro) {
        this.filtro = filtro;
    }

    /**
     * @return the select statement
     */
    public String getQuerySql() {
        InterpreteSql interpreteSql = TLC.getInterpreteSql();
        String querySql = StringUtils.trimToNull(select);
        if (querySql != null) {
            String criteria = getCriteriosConjugados();
            if (criteria != null && !criteria.isEmpty()) {
                querySql += " WHERE (" + criteria + ") ";
            }
            querySql = interpreteSql.getComandoSelect(querySql);
        }
        return querySql;
    }

    /**
     * @return the criterios parametrizados
     */
    public String getCriteriosConjugados() {
        InterpreteSql interpreteSql = TLC.getInterpreteSql();
        String conjuncion = "";
        String clausula = "";
        String criteria;
        String criterio;
        criteria = StringUtils.trimToNull(criterios);
        if (criteria != null) {
            if (parametros != null && !parametros.isEmpty()) {
                for (String clave : parametros.keySet()) {
                    criterio = interpreteSql.getStringDelimitado(parametros.get(clave));
                    if (criterio == null) {
                        criteria = criteria.replace(clave, interpreteSql.getNull());
                    } else {
                        criteria = criteria.replace(clave, criterio);
                    }
                }
            }
            conjuncion += "(" + criteria + ")";
            clausula = " AND ";
        }
        if (filtro != null) {
            criteria = StringUtils.trimToNull(filtro.toString());
            if (criteria != null) {
                conjuncion += clausula + "(" + criteria + ")";
            }
        }
        return interpreteSql.checkClausulaCriterios(conjuncion);
    }

}