package br.com.centralit.citcorpore.metainfo.negocio;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.lang.StringEscapeUtils;
import br.com.centralit.citcorpore.metainfo.bean.CamposObjetoNegocioDTO;
import br.com.centralit.citcorpore.metainfo.bean.GrupoVisaoCamposNegocioDTO;
import br.com.centralit.citcorpore.metainfo.bean.GrupoVisaoCamposNegocioLigacaoDTO;
import br.com.centralit.citcorpore.metainfo.bean.LookupDTO;
import br.com.centralit.citcorpore.metainfo.bean.ObjetoNegocioDTO;
import br.com.centralit.citcorpore.metainfo.bean.ReturnLookupDTO;
import br.com.centralit.citcorpore.metainfo.integracao.CamposObjetoNegocioDao;
import br.com.centralit.citcorpore.metainfo.integracao.GrupoVisaoCamposNegocioDao;
import br.com.centralit.citcorpore.metainfo.integracao.GrupoVisaoCamposNegocioLigacaoDao;
import br.com.centralit.citcorpore.metainfo.integracao.LookupDao;
import br.com.centralit.citcorpore.metainfo.integracao.ObjetoNegocioDao;
import br.com.centralit.citcorpore.metainfo.util.MetaUtil;
import br.com.citframework.service.CrudServiceImpl;
public class LookupServiceEjb extends CrudServiceImpl implements LookupService {
private LookupDao lookupDao;
protected LookupDao getDao() {
if(lookupDao == null) {
lookupDao = new LookupDao();
}
return lookupDao;
}
public Collection findSimple(LookupDTO parm) throws Exception{
GrupoVisaoCamposNegocioDao grupoVisaoCamposNegocioDao = new GrupoVisaoCamposNegocioDao();
GrupoVisaoCamposNegocioDTO grupoVisaoCamposNegocioDTO = new GrupoVisaoCamposNegocioDTO();
GrupoVisaoCamposNegocioLigacaoDao grupoVisaoCamposNegocioLigacaoDao = new GrupoVisaoCamposNegocioLigacaoDao();
GrupoVisaoCamposNegocioLigacaoDTO grupoVisaoCamposNegocioLigacaoDTO = new GrupoVisaoCamposNegocioLigacaoDTO();
CamposObjetoNegocioDao camposObjetoNegocioDao = new CamposObjetoNegocioDao();
CamposObjetoNegocioDTO camposObjetoNegocioDTO = new CamposObjetoNegocioDTO();
grupoVisaoCamposNegocioDTO.setIdGrupoVisao(parm.getIdGrupoVisao());
grupoVisaoCamposNegocioDTO.setIdCamposObjetoNegocio(parm.getIdCamposObjetoNegocio());
grupoVisaoCamposNegocioDTO = (GrupoVisaoCamposNegocioDTO) grupoVisaoCamposNegocioDao.restore(grupoVisaoCamposNegocioDTO);
if (grupoVisaoCamposNegocioDTO == null){
return null;
}
if (grupoVisaoCamposNegocioDTO.getTipoLigacao() == null){
grupoVisaoCamposNegocioDTO.setTipoLigacao(GrupoVisaoCamposNegocioDTO.RELATION_SIMPLE);
}
if (!grupoVisaoCamposNegocioDTO.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioDTO.RELATION_SIMPLE) &&
!grupoVisaoCamposNegocioDTO.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioDTO.RELATION_COMBO)){
grupoVisaoCamposNegocioDTO.setTipoLigacao(GrupoVisaoCamposNegocioDTO.RELATION_COMBO);
}
Collection colPresentation = new ArrayList();
Collection colValue = new ArrayList();
Collection colOrder = new ArrayList();
Collection colFilter = new ArrayList();
String sql = "";
if (grupoVisaoCamposNegocioDTO.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioDTO.RELATION_SIMPLE) ||
grupoVisaoCamposNegocioDTO.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioDTO.RELATION_COMBO)){
Collection colItens = grupoVisaoCamposNegocioLigacaoDao.findByIdGrupoVisaoAndIdCamposObjetoNegocio(parm.getIdGrupoVisao(),
parm.getIdCamposObjetoNegocio());
if (colItens != null){
for(Iterator it = colItens.iterator(); it.hasNext();){
GrupoVisaoCamposNegocioLigacaoDTO grupoVisaoCamposNegocioLigacaoAux = (GrupoVisaoCamposNegocioLigacaoDTO)it.next();
if (grupoVisaoCamposNegocioLigacaoAux.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioLigacaoDTO.PRESENTATION)){
camposObjetoNegocioDTO.setIdCamposObjetoNegocio(grupoVisaoCamposNegocioLigacaoAux.getIdCamposObjetoNegocioLigacao());
camposObjetoNegocioDTO = (CamposObjetoNegocioDTO) camposObjetoNegocioDao.restore(camposObjetoNegocioDTO);
if (camposObjetoNegocioDTO != null){
camposObjetoNegocioDTO.setDescricao(grupoVisaoCamposNegocioLigacaoAux.getDescricao());
colPresentation.add(camposObjetoNegocioDTO);
}
}
if (grupoVisaoCamposNegocioLigacaoAux.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioLigacaoDTO.VALUE)){
camposObjetoNegocioDTO.setIdCamposObjetoNegocio(grupoVisaoCamposNegocioLigacaoAux.getIdCamposObjetoNegocioLigacao());
camposObjetoNegocioDTO = (CamposObjetoNegocioDTO) camposObjetoNegocioDao.restore(camposObjetoNegocioDTO);
if (camposObjetoNegocioDTO != null){
colValue.add(camposObjetoNegocioDTO);
}
}
if (grupoVisaoCamposNegocioLigacaoAux.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioLigacaoDTO.ORDER)){
camposObjetoNegocioDTO.setIdCamposObjetoNegocio(grupoVisaoCamposNegocioLigacaoAux.getIdCamposObjetoNegocioLigacao());
camposObjetoNegocioDTO = (CamposObjetoNegocioDTO) camposObjetoNegocioDao.restore(camposObjetoNegocioDTO);
if (camposObjetoNegocioDTO != null){
colOrder.add(camposObjetoNegocioDTO);
}
}
if (grupoVisaoCamposNegocioLigacaoAux.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioLigacaoDTO.FILTER)){
camposObjetoNegocioDTO.setIdCamposObjetoNegocio(grupoVisaoCamposNegocioLigacaoAux.getIdCamposObjetoNegocioLigacao());
camposObjetoNegocioDTO = (CamposObjetoNegocioDTO) camposObjetoNegocioDao.restore(camposObjetoNegocioDTO);
if (camposObjetoNegocioDTO != null){
camposObjetoNegocioDTO.setFiltro(grupoVisaoCamposNegocioLigacaoAux.getFiltro().replace("\"", "\'") );
colFilter.add(camposObjetoNegocioDTO);
}
}
}
}
sql = generateSQL(colPresentation, colValue, colFilter, colOrder, parm.getTermoPesquisa());
}
Collection colRetorno = null;
if (!sql.trim().equalsIgnoreCase("SELECT FROM")){
colRetorno = this.getDao().execSQL(sql, null);
}
Collection colRetornoLookup = new ArrayList();
if (colRetorno != null){
int tamCamposValue = colValue.size();
for(Iterator it = colRetorno.iterator(); it.hasNext();){
String lineLabel = "";
String lineValue = "";
ReturnLookupDTO returnLookupDTO = new ReturnLookupDTO();
Object[] objs = (Object[])it.next();
for(int i = 0; i < objs.length; i++){
if(objs[i] != null){
if (i >= tamCamposValue){
if (!lineLabel.equalsIgnoreCase("")){
lineLabel += ", ";
}
lineLabel += objs[i].toString();
}else{
if (!lineValue.equalsIgnoreCase("")){
lineValue += "#";
}
lineValue += objs[i].toString();
}
}
}
returnLookupDTO.setLabel(lineLabel);
returnLookupDTO.setValue(lineValue);
colRetornoLookup.add(returnLookupDTO);
}
}
return colRetornoLookup;
}
public String findSimpleString(LookupDTO parm) throws Exception{
GrupoVisaoCamposNegocioDao grupoVisaoCamposNegocioDao = new GrupoVisaoCamposNegocioDao();
GrupoVisaoCamposNegocioDTO grupoVisaoCamposNegocioDTO = new GrupoVisaoCamposNegocioDTO();
GrupoVisaoCamposNegocioLigacaoDao grupoVisaoCamposNegocioLigacaoDao = new GrupoVisaoCamposNegocioLigacaoDao();
GrupoVisaoCamposNegocioLigacaoDTO grupoVisaoCamposNegocioLigacaoDTO = new GrupoVisaoCamposNegocioLigacaoDTO();
CamposObjetoNegocioDao camposObjetoNegocioDao = new CamposObjetoNegocioDao();
CamposObjetoNegocioDTO camposObjetoNegocioDTO = new CamposObjetoNegocioDTO();
grupoVisaoCamposNegocioDTO.setIdGrupoVisao(parm.getIdGrupoVisao());
grupoVisaoCamposNegocioDTO.setIdCamposObjetoNegocio(parm.getIdCamposObjetoNegocio());
grupoVisaoCamposNegocioDTO = (GrupoVisaoCamposNegocioDTO) grupoVisaoCamposNegocioDao.restore(grupoVisaoCamposNegocioDTO);
if (grupoVisaoCamposNegocioDTO == null){
return null;
}
if (grupoVisaoCamposNegocioDTO.getTipoLigacao() == null){
grupoVisaoCamposNegocioDTO.setTipoLigacao(GrupoVisaoCamposNegocioDTO.RELATION_SIMPLE);
}
Collection colPresentation = new ArrayList();
Collection colValue = new ArrayList();
Collection colOrder = new ArrayList();
Collection colFilter = new ArrayList();
String sql = "";
if (grupoVisaoCamposNegocioDTO.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioDTO.RELATION_SIMPLE) ||
grupoVisaoCamposNegocioDTO.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioDTO.RELATION_COMBO) ||
grupoVisaoCamposNegocioDTO.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioDTO.RELATION_NONE)){
Collection colItens = grupoVisaoCamposNegocioLigacaoDao.findByIdGrupoVisaoAndIdCamposObjetoNegocio(parm.getIdGrupoVisao(),
parm.getIdCamposObjetoNegocio());
if (colItens != null){
for(Iterator it = colItens.iterator(); it.hasNext();){
GrupoVisaoCamposNegocioLigacaoDTO grupoVisaoCamposNegocioLigacaoAux = (GrupoVisaoCamposNegocioLigacaoDTO)it.next();
if (grupoVisaoCamposNegocioLigacaoAux.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioLigacaoDTO.PRESENTATION)){
camposObjetoNegocioDTO.setIdCamposObjetoNegocio(grupoVisaoCamposNegocioLigacaoAux.getIdCamposObjetoNegocioLigacao());
camposObjetoNegocioDTO = (CamposObjetoNegocioDTO) camposObjetoNegocioDao.restore(camposObjetoNegocioDTO);
if (camposObjetoNegocioDTO != null){
camposObjetoNegocioDTO.setDescricao(grupoVisaoCamposNegocioLigacaoAux.getDescricao());
colPresentation.add(camposObjetoNegocioDTO);
}
}
if (grupoVisaoCamposNegocioLigacaoAux.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioLigacaoDTO.VALUE)){
camposObjetoNegocioDTO.setIdCamposObjetoNegocio(grupoVisaoCamposNegocioLigacaoAux.getIdCamposObjetoNegocioLigacao());
camposObjetoNegocioDTO = (CamposObjetoNegocioDTO) camposObjetoNegocioDao.restore(camposObjetoNegocioDTO);
if (camposObjetoNegocioDTO != null){
colValue.add(camposObjetoNegocioDTO);
}
}
if (grupoVisaoCamposNegocioLigacaoAux.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioLigacaoDTO.ORDER)){
camposObjetoNegocioDTO.setIdCamposObjetoNegocio(grupoVisaoCamposNegocioLigacaoAux.getIdCamposObjetoNegocioLigacao());
camposObjetoNegocioDTO = (CamposObjetoNegocioDTO) camposObjetoNegocioDao.restore(camposObjetoNegocioDTO);
if (camposObjetoNegocioDTO != null){
colOrder.add(camposObjetoNegocioDTO);
}
}
if (grupoVisaoCamposNegocioLigacaoAux.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioLigacaoDTO.FILTER)){
camposObjetoNegocioDTO.setIdCamposObjetoNegocio(grupoVisaoCamposNegocioLigacaoAux.getIdCamposObjetoNegocioLigacao());
camposObjetoNegocioDTO = (CamposObjetoNegocioDTO) camposObjetoNegocioDao.restore(camposObjetoNegocioDTO);
if (camposObjetoNegocioDTO != null){
camposObjetoNegocioDTO.setFiltro(grupoVisaoCamposNegocioLigacaoAux.getFiltro().replace("\"", "'"));
colFilter.add(camposObjetoNegocioDTO);
}
}
}
}
sql = generateSQL(colPresentation, colValue, colFilter, colOrder, parm.getTermoPesquisa());
}
Collection colGeral = new ArrayList();
if (colValue != null){
colGeral.addAll(colValue);
}
if (colPresentation != null){
colGeral.addAll(colPresentation);
}
Collection colRetorno = this.getDao().execSQL(sql, null);
Collection colRetornoLookup = new ArrayList();
String retorno = "";
boolean prim = true;
if (colRetorno != null){
int tamCamposValue = colValue.size();
for(Iterator it = colRetorno.iterator(); it.hasNext();){
Object[] objs = (Object[])it.next();
if (!prim){
retorno += ",";
}
retorno += "{";
Iterator it2 = colGeral.iterator();
for(int i = 0; i < objs.length; i++){
if (i > 0){
retorno += ",";
}
if (it2.hasNext()){
camposObjetoNegocioDTO = (CamposObjetoNegocioDTO)it2.next();
retorno += "\"" + camposObjetoNegocioDTO.getNomeDB() + "\":";
retorno += "\"" + StringEscapeUtils.escapeJava(objs[i].toString()) + "\"";
}
}
retorno += "}";
prim = false;
}
}
return retorno;
}
public ReturnLookupDTO restoreSimple(LookupDTO parm) throws Exception{
GrupoVisaoCamposNegocioDao grupoVisaoCamposNegocioDao = new GrupoVisaoCamposNegocioDao();
GrupoVisaoCamposNegocioDTO grupoVisaoCamposNegocioDTO = new GrupoVisaoCamposNegocioDTO();
GrupoVisaoCamposNegocioLigacaoDao grupoVisaoCamposNegocioLigacaoDao = new GrupoVisaoCamposNegocioLigacaoDao();
GrupoVisaoCamposNegocioLigacaoDTO grupoVisaoCamposNegocioLigacaoDTO = new GrupoVisaoCamposNegocioLigacaoDTO();
CamposObjetoNegocioDao camposObjetoNegocioDao = new CamposObjetoNegocioDao();
CamposObjetoNegocioDTO camposObjetoNegocioDTO = new CamposObjetoNegocioDTO();
grupoVisaoCamposNegocioDTO.setIdGrupoVisao(parm.getIdGrupoVisao());
grupoVisaoCamposNegocioDTO.setIdCamposObjetoNegocio(parm.getIdCamposObjetoNegocio());
grupoVisaoCamposNegocioDTO = (GrupoVisaoCamposNegocioDTO) grupoVisaoCamposNegocioDao.restore(grupoVisaoCamposNegocioDTO);
if (grupoVisaoCamposNegocioDTO == null){
return null;
}
if (grupoVisaoCamposNegocioDTO.getTipoLigacao() == null){
grupoVisaoCamposNegocioDTO.setTipoLigacao(GrupoVisaoCamposNegocioDTO.RELATION_SIMPLE);
}
Collection colPresentation = new ArrayList();
Collection colValue = new ArrayList();
Collection colOrder = new ArrayList();
Collection colFilter = new ArrayList();
String sql = "";
Collection colItens = grupoVisaoCamposNegocioLigacaoDao.findByIdGrupoVisaoAndIdCamposObjetoNegocio(parm.getIdGrupoVisao(),
parm.getIdCamposObjetoNegocio());
if (colItens != null){
for(Iterator it = colItens.iterator(); it.hasNext();){
GrupoVisaoCamposNegocioLigacaoDTO grupoVisaoCamposNegocioLigacaoAux = (GrupoVisaoCamposNegocioLigacaoDTO)it.next();
if (grupoVisaoCamposNegocioLigacaoAux.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioLigacaoDTO.PRESENTATION)){
camposObjetoNegocioDTO.setIdCamposObjetoNegocio(grupoVisaoCamposNegocioLigacaoAux.getIdCamposObjetoNegocioLigacao());
camposObjetoNegocioDTO = (CamposObjetoNegocioDTO) camposObjetoNegocioDao.restore(camposObjetoNegocioDTO);
if (camposObjetoNegocioDTO != null){
camposObjetoNegocioDTO.setDescricao(grupoVisaoCamposNegocioLigacaoAux.getDescricao());
colPresentation.add(camposObjetoNegocioDTO);
}
}
if (grupoVisaoCamposNegocioLigacaoAux.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioLigacaoDTO.VALUE)){
camposObjetoNegocioDTO.setIdCamposObjetoNegocio(grupoVisaoCamposNegocioLigacaoAux.getIdCamposObjetoNegocioLigacao());
camposObjetoNegocioDTO = (CamposObjetoNegocioDTO) camposObjetoNegocioDao.restore(camposObjetoNegocioDTO);
if (camposObjetoNegocioDTO != null){
camposObjetoNegocioDTO.setFiltro("${TERMO_PESQUISA}");
colValue.add(camposObjetoNegocioDTO);
colFilter.add(camposObjetoNegocioDTO);
}
}
if (grupoVisaoCamposNegocioLigacaoAux.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioLigacaoDTO.ORDER)){
camposObjetoNegocioDTO.setIdCamposObjetoNegocio(grupoVisaoCamposNegocioLigacaoAux.getIdCamposObjetoNegocioLigacao());
camposObjetoNegocioDTO = (CamposObjetoNegocioDTO) camposObjetoNegocioDao.restore(camposObjetoNegocioDTO);
if (camposObjetoNegocioDTO != null){
colOrder.add(camposObjetoNegocioDTO);
}
}
}
}
sql = generateSQL(colPresentation, colValue, colFilter, colOrder, parm.getTermoPesquisa());
Collection colRetorno = this.getDao().execSQL(sql, null);
Collection colRetornoLookup = new ArrayList();
if (colRetorno != null){
int tamCamposValue = colValue.size();
for(Iterator it = colRetorno.iterator(); it.hasNext();){
String lineLabel = "";
String lineValue = "";
ReturnLookupDTO returnLookupDTO = new ReturnLookupDTO();
Object[] objs = (Object[])it.next();
for(int i = 0; i < objs.length; i++){
if (i >= tamCamposValue){
if (!lineLabel.equalsIgnoreCase("")){
lineLabel += ", ";
}
lineLabel += objs[i].toString();
}else{
if (!lineValue.equalsIgnoreCase("")){
lineValue += "#";
}
lineValue += objs[i].toString();
}
}
returnLookupDTO.setLabel(lineLabel);
returnLookupDTO.setValue(lineValue);
colRetornoLookup.add(returnLookupDTO);
}
}
if (colRetornoLookup == null){
return null;
}
if (colRetornoLookup.size() == 0){
return null;
}
return (ReturnLookupDTO) ((List)colRetornoLookup).get(0);
}
private String generateSQL(Collection colPresentation, Collection colValue, Collection colFilter, Collection colOrder, String termoPesquisa) throws Exception{
String sql = "SELECT ";
sql += generateFields(colPresentation, colValue);
sql += " FROM ";
sql += generateFromWithRelatios(colPresentation, colFilter);
String strFilter = generateFilter(colFilter, termoPesquisa);
if (!strFilter.equalsIgnoreCase("")){
sql += " WHERE " + strFilter;
}
String strOrder = generateOrder(colOrder);
if (!strOrder.equalsIgnoreCase("")){
sql += " ORDER BY " + strOrder;
}
return sql;
}
private String generateFields(Collection colPresentation, Collection colValue) throws Exception{
ObjetoNegocioDao objetoNegocioDao = new ObjetoNegocioDao();
String sqlFields = "";
if (colPresentation != null){
int i = 1;
for(Iterator it = colValue.iterator(); it.hasNext();){
CamposObjetoNegocioDTO camposObjetoNegocioDTO = (CamposObjetoNegocioDTO)it.next();
ObjetoNegocioDTO objetoNegocioDTO = new ObjetoNegocioDTO();
objetoNegocioDTO.setIdObjetoNegocio(camposObjetoNegocioDTO.getIdObjetoNegocio());
objetoNegocioDTO = (ObjetoNegocioDTO) objetoNegocioDao.restore(objetoNegocioDTO);
if (objetoNegocioDTO != null){
if (!sqlFields.equalsIgnoreCase("")){
sqlFields += ", ";
}
sqlFields += objetoNegocioDTO.getNomeTabelaDB() + "." + camposObjetoNegocioDTO.getNomeDB() + " Val_" + i;
}
i++;
}
i = 1;
for(Iterator it = colPresentation.iterator(); it.hasNext();){
CamposObjetoNegocioDTO camposObjetoNegocioDTO = (CamposObjetoNegocioDTO)it.next();
ObjetoNegocioDTO objetoNegocioDTO = new ObjetoNegocioDTO();
objetoNegocioDTO.setIdObjetoNegocio(camposObjetoNegocioDTO.getIdObjetoNegocio());
objetoNegocioDTO = (ObjetoNegocioDTO) objetoNegocioDao.restore(objetoNegocioDTO);
if (objetoNegocioDTO != null){
if (!sqlFields.equalsIgnoreCase("")){
sqlFields += ", ";
}
sqlFields += objetoNegocioDTO.getNomeTabelaDB() + "." + camposObjetoNegocioDTO.getNomeDB() + " Fld_" + i;
}
i++;
}
}
return sqlFields;
}
private String generateFromWithRelatios(Collection colPresentation, Collection colFilter) throws Exception{
ObjetoNegocioDao objetoNegocioDao = new ObjetoNegocioDao();
HashMap map = new HashMap();
Collection colGeral = new ArrayList();
if (colPresentation != null){
colGeral.addAll(colPresentation);
}
if (colFilter != null){
colGeral.addAll(colFilter);
}
if (colGeral != null){
for(Iterator it = colGeral.iterator(); it.hasNext();){
CamposObjetoNegocioDTO camposObjetoNegocioDTO = (CamposObjetoNegocioDTO)it.next();
ObjetoNegocioDTO objetoNegocioDTO = new ObjetoNegocioDTO();
objetoNegocioDTO.setIdObjetoNegocio(camposObjetoNegocioDTO.getIdObjetoNegocio());
objetoNegocioDTO = (ObjetoNegocioDTO) objetoNegocioDao.restore(objetoNegocioDTO);
if (objetoNegocioDTO != null){
if (!map.containsKey(objetoNegocioDTO.getNomeTabelaDB())){
map.put(objetoNegocioDTO.getNomeTabelaDB(), objetoNegocioDTO.getNomeTabelaDB());
}
}
}
}
Set set = map.entrySet();
Iterator i = set.iterator();
String fromSql = "";
while(i.hasNext()) {
Map.Entry me = (Map.Entry)i.next();
if (!fromSql.equalsIgnoreCase("")){
fromSql += ",";
}
fromSql += me.getKey();
}
return fromSql;
}
private String generateFilter(Collection colFilter, String termoPesquisa) throws Exception{
ObjetoNegocioDao objetoNegocioDao = new ObjetoNegocioDao();
String sqlFilter = "";
if (colFilter != null){
for(Iterator it = colFilter.iterator(); it.hasNext();){
CamposObjetoNegocioDTO camposObjetoNegocioDTO = (CamposObjetoNegocioDTO)it.next();
ObjetoNegocioDTO objetoNegocioDTO = new ObjetoNegocioDTO();
objetoNegocioDTO.setIdObjetoNegocio(camposObjetoNegocioDTO.getIdObjetoNegocio());
objetoNegocioDTO = (ObjetoNegocioDTO) objetoNegocioDao.restore(objetoNegocioDTO);
if (objetoNegocioDTO != null){
if (!sqlFilter.equalsIgnoreCase("")){
sqlFilter += " AND ";
}
String pref = "";
String suf = "";
String comp = "=";
if (MetaUtil.isStringType(camposObjetoNegocioDTO.getTipoDB())){
pref = "'%";
suf = "%'";
comp = "LIKE";
}
if (camposObjetoNegocioDTO.getFiltro() != null && (camposObjetoNegocioDTO.getFiltro().equalsIgnoreCase("${TERMO_PESQUISA}") ||
camposObjetoNegocioDTO.getFiltro().equalsIgnoreCase("${termo_pesquisa}"))){
if (termoPesquisa != null && !termoPesquisa.trim().equalsIgnoreCase("")){
sqlFilter += objetoNegocioDTO.getNomeTabelaDB() + "." + camposObjetoNegocioDTO.getNomeDB() + " " + comp + " " +
pref + termoPesquisa.trim() + suf;
}
}else{
if (camposObjetoNegocioDTO.getFiltro() != null){
if (!camposObjetoNegocioDTO.getFiltro().trim().equalsIgnoreCase("")){
sqlFilter += camposObjetoNegocioDTO.getFiltro();
}
if (termoPesquisa != null && !termoPesquisa.trim().equalsIgnoreCase("")){
String strAnd = "";
if (!sqlFilter.trim().equalsIgnoreCase("")){
strAnd = " AND ";
}
sqlFilter = sqlFilter.replaceAll("\\$\\{TERMO_PESQUISA\\}", strAnd + objetoNegocioDTO.getNomeTabelaDB() + "." + camposObjetoNegocioDTO.getNomeDB() + " " + comp + " " +
pref + termoPesquisa.trim() + suf);
sqlFilter = sqlFilter.replaceAll("\\$\\{termo_pesquisa\\}", strAnd + objetoNegocioDTO.getNomeTabelaDB() + "." + camposObjetoNegocioDTO.getNomeDB() + " " + comp + " " +
pref + termoPesquisa.trim() + suf);
}
}
}
}
}
}
sqlFilter = sqlFilter.replaceAll("\\$\\{TERMO_PESQUISA\\}", "");
sqlFilter = sqlFilter.replaceAll("\\$\\{termo_pesquisa\\}", "");
return sqlFilter;
}
private String generateOrder(Collection colOrder) throws Exception{
ObjetoNegocioDao objetoNegocioDao = new ObjetoNegocioDao();
String sqlOrder = "";
if (colOrder != null){
for(Iterator it = colOrder.iterator(); it.hasNext();){
CamposObjetoNegocioDTO camposObjetoNegocioDTO = (CamposObjetoNegocioDTO)it.next();
ObjetoNegocioDTO objetoNegocioDTO = new ObjetoNegocioDTO();
objetoNegocioDTO.setIdObjetoNegocio(camposObjetoNegocioDTO.getIdObjetoNegocio());
objetoNegocioDTO = (ObjetoNegocioDTO) objetoNegocioDao.restore(objetoNegocioDTO);
if (objetoNegocioDTO != null){
if (!sqlOrder.equalsIgnoreCase("")){
sqlOrder += ", ";
}
sqlOrder += objetoNegocioDTO.getNomeTabelaDB() + "." + camposObjetoNegocioDTO.getNomeDB();
}
}
}
return sqlOrder;
}
}