package gcom.util.filtro;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.TreeSet;
/**
* Representa o filtro b�sico do sistema
*
* @author rodrigo
*/
public abstract class Filtro implements Serializable {
private static final long serialVersionUID = 1L;
public final static String ID = "id";
public final static String INDICADORUSO = "indicadorUso";
/**
* Cole��o dos par�metros que fazem parte do filtro
*/
protected Collection parametros = new ArrayList();
/**
* Description of the Field
*/
protected Collection colecaoCaminhosParaCarregamentoEntidades = new TreeSet();
/**
* Description of the Field
*/
protected boolean consultaSemLimites = false;
protected boolean initializeLazy = false;
/**
* Ordena��o do filtro
*/
protected List<String> camposOrderBy = new ArrayList();
protected String campoOrderBy;
protected String campoDistinct;
/**
* Retorna o valor de parametros
*
* @return O valor de parametros
*/
public Collection getParametros() {
return parametros;
}
/**
* M�todo para adicionar par�metros no filtro
*
* @param filtroParametro
* Descri��o do par�metro
*/
public void adicionarParametro(FiltroParametro filtroParametro) {
this.parametros.add(filtroParametro);
}
/**
* M�todo para adicionar um campo de cole��o � lista das cole��es que ser�o
* carregadas pelo sistema
*
* @param campoColecao
* nome do campo
*/
public void adicionarCaminhoParaCarregamentoEntidade(String campoColecao) {
this.colecaoCaminhosParaCarregamentoEntidades.add(campoColecao);
}
/**
* Seta o valor de parametros
*
* @param parametros
* O novo valor de parametros
*/
public void setParametros(Collection parametros) {
this.parametros = parametros;
}
/**
* Retorna o valor de campoOrderBy
*
* @return O valor de campoOrderBy
*/
public List<String> getCamposOrderBy() {
ArrayList<String> list = new ArrayList();
list.addAll(camposOrderBy);
if (campoOrderBy != null && !campoOrderBy.trim().equals("")) {
list.add(campoOrderBy);
}
return list;
}
/**
* Seta o valor de campoOrderBy
*
* @param campoOrderBy
* O novo valor de campoOrderBy
*/
public void setCampoOrderBy(String... campoOrderBy) {
camposOrderBy.addAll(Arrays.asList(campoOrderBy));
}
public void setCampoOrderBy(String campoOrderBy) {
camposOrderBy.add(campoOrderBy);
}
public void limparCamposOrderBy() {
campoOrderBy = null;
camposOrderBy.clear();
}
public void limparColecaoCaminhosParaCarregamentoEntidades() {
colecaoCaminhosParaCarregamentoEntidades.clear();
}
/**
* @return Returns the colecaoCaminhosParaCarregamentoEntidades.
*/
public Collection getColecaoCaminhosParaCarregamentoEntidades() {
Collection colecao = new TreeSet();
colecao.addAll(colecaoCaminhosParaCarregamentoEntidades);
return colecao;
}
public void setColecaoCaminhosParaCarregamentoEntidades(Collection colecaoCaminhosParaCarregamentoEntidades) {
this.colecaoCaminhosParaCarregamentoEntidades.addAll(colecaoCaminhosParaCarregamentoEntidades);
}
/**
* < <Descri��o do m�todo>>
*/
public void limparListaParametros() {
parametros.clear();
}
/**
* Retorna o valor de consultaSemLimites
*
* @return O valor de consultaSemLimites
*/
public boolean isConsultaSemLimites() {
return consultaSemLimites;
}
/**
* Seta o valor de consultaSemLimites
*
* @param consultaSemLimites
* O novo valor de consultaSemLimites
*/
public void setConsultaSemLimites(boolean consultaSemLimites) {
this.consultaSemLimites = consultaSemLimites;
}
public String getCampoDistinct() {
return campoDistinct;
}
public void setCampoDistinct(String campoDistinct) {
this.campoDistinct = campoDistinct;
}
public boolean isInitializeLazy() {
return initializeLazy;
}
public void setInitializeLazy(boolean initializeLazy) {
this.initializeLazy = initializeLazy;
}
}