198 lines
5.3 KiB
Plaintext
Executable File
198 lines
5.3 KiB
Plaintext
Executable File
package com.fp.dto.query;
|
|
|
|
import com.fp.dto.AbstractDataTransport;
|
|
import com.fp.dto.data.SaveData;
|
|
|
|
/**
|
|
* Clase de transporte, que se asocia a un querybena con las restricciones a aplicar
|
|
* en una sentencia SQL.
|
|
* @author Jorge Vaca
|
|
* @version 2.1
|
|
*/
|
|
public class QueryCriteria extends AbstractDataTransport{
|
|
/**Version de la clase.*/
|
|
private static final long serialVersionUID = 1L;
|
|
/**Nombrte del campo de la tabla*/
|
|
private String property;
|
|
/**Criterio de la restriccion, =, != , like, >= etc.*/
|
|
private String operation;
|
|
/**Valor de la restriccion.*/
|
|
private Object value;
|
|
/**Indice del orden en las sentencias.*/
|
|
private int order=0;
|
|
|
|
@Override
|
|
public Object cloneMe() throws CloneNotSupportedException {
|
|
QueryCriteria p = (QueryCriteria) this.clone();
|
|
return p;
|
|
}
|
|
/**
|
|
* Entrega el valor de: property
|
|
* @return String
|
|
*/
|
|
public String getProperty() {
|
|
return property;
|
|
}
|
|
/**
|
|
* Fija el valor de: property
|
|
* @param property
|
|
*/
|
|
public void setProperty(String property) {
|
|
this.property = property;
|
|
if(this.value != null){
|
|
this.setLogData(property, value);
|
|
}
|
|
}
|
|
/**
|
|
* Entrega el valor de: operation
|
|
* @return String
|
|
*/
|
|
public String getOperation() {
|
|
return operation;
|
|
}
|
|
/**
|
|
* Fija el valor de: operation
|
|
* @param operation
|
|
*/
|
|
public void setOperation(String operation) {
|
|
this.operation = operation;
|
|
}
|
|
/**
|
|
* Entrega el valor de: value
|
|
* @return Object
|
|
*/
|
|
public Object getValue() {
|
|
if(value instanceof Integer){
|
|
return Long.parseLong(value.toString());
|
|
}
|
|
return value;
|
|
}
|
|
|
|
/**
|
|
* Fija el valor de: value
|
|
* @param value
|
|
*/
|
|
public void setValue(Object value) {
|
|
this.value = value;
|
|
if(this.property != null){
|
|
this.setLogData(property, value);
|
|
}
|
|
}
|
|
/**
|
|
* Entrega el valor de: order
|
|
* @return int
|
|
*/
|
|
public int getOrder() {
|
|
return order;
|
|
}
|
|
/**
|
|
* Fija el valor de: order
|
|
* @param order
|
|
*/
|
|
public void setOrder(int order) {
|
|
this.order = order;
|
|
}
|
|
public QueryCriteria(){
|
|
|
|
}
|
|
|
|
/**
|
|
* Crea una instancia de QueryCriteria.
|
|
* @param property Nombre del campo a aplicar la restriccion.
|
|
* @param operation Condicion =, != , >, >= etc
|
|
* @param value Valor de la restriccion.
|
|
*/
|
|
public QueryCriteria(String property, String operation, Object value) {
|
|
this(property,operation,value,0);
|
|
}
|
|
|
|
/**
|
|
* Crea una instancia de QueryCriteria, la condicion de la restriccion es like.
|
|
* @param property Nombre del campo a aplicar la restriccion.
|
|
* @param value Valor de la restriccion.
|
|
*/
|
|
public QueryCriteria(String property, Object value) {
|
|
this(property,"like",value,0);
|
|
}
|
|
|
|
/**
|
|
* Crea una instancia de QueryCriteria
|
|
* @param property Nombre del campo.
|
|
* @param operation Condicion =, != , >, >= etc
|
|
* @param value Valor de la restriccion.
|
|
* @param order Orden de presentacion en la consulta.
|
|
*/
|
|
public QueryCriteria(String property, String operation, Object value, int order) {
|
|
this.property = property;
|
|
this.operation = operation;
|
|
this.value = value;
|
|
this.order = order;
|
|
this.setLogData(property, value);
|
|
}
|
|
|
|
private void setLogData(String property,Object value) {
|
|
try {
|
|
this.setPersoncode(property, value);
|
|
this.setAccount(property, value);
|
|
this.setSolicitudenumber(property, value);
|
|
} catch (Exception e) {
|
|
//no hacer nada
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Verifica que el nombre del campo sea PERSONCODE, y almacena en los datos de parametros del log el valor del campo.
|
|
* @param property Nombre del campo a verificar.
|
|
* @param value Valor del campo.
|
|
* @throws Exception
|
|
*/
|
|
private void setPersoncode(String property,Object value) throws Exception {
|
|
String field = "PERSONCODE";
|
|
if (!property.toUpperCase().contains(field) ){
|
|
return;
|
|
}
|
|
this.setData(property, field, value);
|
|
}
|
|
|
|
/**
|
|
* Verifica que el nombre del campo sea PERSONCODE, y almacena en los datos de parametros del log el valor del campo.
|
|
* @param property Nombre del campo a verificar.
|
|
* @param value Valor del campo.
|
|
* @throws Exception
|
|
*/
|
|
private void setAccount(String property,Object value) throws Exception {
|
|
String field = "ACCOUNT";
|
|
if (!property.toUpperCase().contains(field) ){
|
|
return;
|
|
}
|
|
this.setData(property, field, value);
|
|
}
|
|
|
|
/**
|
|
* Verifica que el nombre del campo sea PERSONCODE, y almacena en los datos de parametros del log el valor del campo.
|
|
* @param property Nombre del campo a verificar.
|
|
* @param value Valor del campo.
|
|
* @throws Exception
|
|
*/
|
|
private void setSolicitudenumber(String property,Object value) throws Exception {
|
|
String field = "SOLICITUDNUMBER";
|
|
if (!property.toUpperCase().contains(field) ){
|
|
return;
|
|
}
|
|
this.setData(property, field, value);
|
|
}
|
|
|
|
private void setData(String property,String field,Object value) throws Exception {
|
|
if( SaveData.getMap().get(field) != null) {
|
|
return;
|
|
}
|
|
if (property.indexOf('.') > 0) {
|
|
property = property.substring(property.indexOf('.')+1);
|
|
}
|
|
if(property.toUpperCase().compareTo(field) == 0){
|
|
SaveData.getMap().put(field, value);
|
|
}
|
|
}
|
|
|
|
}
|