maia_modificado/.svn/pristine/eb/ebd4706e18ca70ed09ac4e40132...

123 lines
2.6 KiB
Plaintext
Executable File

package com.fp.dto.query;
import java.io.Serializable;
/**
* Objeto que contiene la definicion de un subquery asociado a un bean.
*
* @author Jorge Vaca.
* @version 2.1
*/
public class SubQuery implements Serializable {
private static final long serialVersionUID = 1L;
/**
* Nombre del bean, asociado a una tabla a utilziar en el subquery.
*/
private String beanname;
/**
* Campo a consultar en el subquery.
*/
private String field;
/**
* Nombre con el cual se entrega la respuesta, si el alias es null toma el valor de campo.
*/
private String alias;
/**
* Where con el cual se ejecuta el subquery. <br>
* Ejemplo considera i.pk.pais = t.pk.pais and i.provincia = t.provincia.<br>
* siempre va (i) para el bean del subquery y (t) para la tabla externa.
*/
private String where;
/**
* Crea una instancia de SubQuery.
* @param beanname Nombre del bean con el que se realiza el subquery.
* @param campo Nombre de campo a consultar.
* @param alias Alias con el cual se entrega la respuesta.
* @param filtro Filtro a utilziar en el subquery.
* @throws Exception
*/
public SubQuery(String beanname, String field, String alias, String joinFields) throws Exception {
this.beanname = beanname;
this.field = field;
this.alias = alias;
if (this.alias == null) {
this.alias = this.field;
}
where = " where " + joinFields;
}
public String getSubQuery() throws Exception {
return "(select i." + field + " from " + beanname + " i " + where + ")";
}
/**
* Entrega el valor de: beanname
* @return String
*/
public String getBeanname() {
return beanname;
}
/**
* Fija el valor de: beanname
* @param Valor a fijar en el atributo.
*/
public void setBeanname(String beanname) {
this.beanname = beanname;
}
/**
* 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: alias
* @return String
*/
public String getAlias() {
return alias;
}
/**
* Fija el valor de: alias
* @param Valor a fijar en el atributo.
*/
public void setAlias(String alias) {
this.alias = alias;
}
/**
* Entrega el valor de: where
* @return String
*/
public String getWhere() {
return where;
}
/**
* Fija el valor de: where
* @param Valor a fijar en el atributo.
*/
public void setWhere(String where) {
this.where = where;
}
}