package com.fp.dto.query; import java.io.Serializable; /** * Objeto que contiene filtros asociados a una tabla. * * @author Jorge Vaca. * @version 2.1 */ public class Filter implements Serializable { private static final long serialVersionUID = -459214658769947266L; /** * Nombre del campo perteneciente a la tabla o bean. */ private String field; /** * Condicion a aplicar, si es null y el tipo de dato es String se toma like. */ private String condition; /** * Valor de la condicion, si es diferente de null se considera en la sentencia. */ private String value; /** * Valor de una condicion incluye campo y valor ejemplo: t.modulecode = 12 or t.modulecode is null * Este valor es prioritario, si existe se adiciona al where. */ private String sql; /** * Crea una instancia de FIlter. */ public Filter() { } /** * Crea una instancia de Filtro, Evalua la condicion del filtro que puede llegar en el nombre del campo ejemplo >=pk.cuidad. * @param campo Nombre de un campo pertenceciente a un entity bean. * @param valor Valor del criterio. * @throws Exception */ public Filter(String field, String value) throws Exception { this.field = field; this.value = value; if(value.length() > 1){ evaluadoscriterio(value.substring(0, 2)); } if (condition == null && value.length() > 0) { evaluadoscriterio(value.substring(0, 1)); } } /** * Crea una instancia de Filtro. * @param campo Nombre de un campo pertenceciente a un entity bean. * @param valor Valor del criterio. * @throws Exception */ public Filter(String field, String condition, String value) { this.field = field; this.condition = condition; this.value = value; } private void evaluadoscriterio(String cond) throws Exception { if (FilterTypes.getFilterTypes(cond) != null) { condition = cond; value = value.substring(cond.length(), value.length()); } } /** * Entrega el valor de: field * @return String */ public String getField() { return field; } /** * Fija el valor de: field * @param Valor a fijar en el atributo. */ public void setField(String field) { this.field = field; } /** * Entrega el valor de: condition * @return String */ public String getCondition() { return condition; } /** * Fija el valor de: condition * @param Valor a fijar en el atributo. */ public void setCondition(String condition) { this.condition = condition; } /** * Entrega el valor de: value * @return String */ public String getValue() { return value; } /** * Fija el valor de: value * @param Valor a fijar en el atributo. */ public void setValue(String value) { this.value = value; } /** * Entrega el valor de: sql * @return String */ public String getSql() { return sql; } /** * Fija el valor de: sql * @param sql Valor a fijar en el atributo. */ public void setSql(String sql) { this.sql = sql; } }