DriverRegistroServiziDB_soggettiSearchDriver.java
/*
* GovWay - A customizable API Gateway
* https://govway.org
*
* Copyright (c) 2005-2024 Link.it srl (https://link.it).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3, as published by
* the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.openspcoop2.core.registry.driver.db;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.openspcoop2.core.commons.DBUtils;
import org.openspcoop2.core.commons.Filtri;
import org.openspcoop2.core.commons.ISearch;
import org.openspcoop2.core.commons.Liste;
import org.openspcoop2.core.commons.SearchUtils;
import org.openspcoop2.core.config.constants.CostantiConfigurazione;
import org.openspcoop2.core.constants.CostantiDB;
import org.openspcoop2.core.constants.TipoPdD;
import org.openspcoop2.core.id.IDFruizione;
import org.openspcoop2.core.id.IDServizio;
import org.openspcoop2.core.id.IDSoggetto;
import org.openspcoop2.core.registry.CredenzialiSoggetto;
import org.openspcoop2.core.registry.Proprieta;
import org.openspcoop2.core.registry.Soggetto;
import org.openspcoop2.core.registry.constants.CostantiRegistroServizi;
import org.openspcoop2.core.registry.constants.PddTipologia;
import org.openspcoop2.core.registry.driver.DriverRegistroServiziException;
import org.openspcoop2.utils.jdbc.JDBCUtilities;
import org.openspcoop2.utils.sql.ISQLQueryObject;
import org.openspcoop2.utils.sql.LikeConfig;
import org.openspcoop2.utils.sql.SQLObjectFactory;
import org.openspcoop2.utils.sql.SQLQueryObjectException;
/**
* DriverRegistroServiziDB_soggettiDriver
*
*
* @author Sandra Giangrandi (sandra@link.it)
* @author Stefano Corallo (corallo@link.it)
* @author $Author$
* @version $Rev$, $Date$
*/
public class DriverRegistroServiziDB_soggettiSearchDriver {
private DriverRegistroServiziDB driver = null;
protected DriverRegistroServiziDB_soggettiSearchDriver(DriverRegistroServiziDB driver) {
this.driver = driver;
}
protected List<String> soggettiRuoliList(long idSoggetto, ISearch ricerca) throws DriverRegistroServiziException {
String nomeMetodo = "soggettiRuoliList";
int idLista = Liste.SOGGETTI_RUOLI;
int offset;
int limit;
String search;
String queryString;
limit = ricerca.getPageSize(idLista);
offset = ricerca.getIndexIniziale(idLista);
search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));
Connection con = null;
boolean error = false;
PreparedStatement stmt = null;
ResultSet risultato = null;
if (this.driver.atomica) {
try {
con = this.driver.getConnectionFromDatasource("soggettiRuoliList");
con.setAutoCommit(false);
} catch (Exception e) {
throw new DriverRegistroServiziException("[DriverRegistroServiziDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);
}
} else
con = this.driver.globalConnection;
this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);
List<String> listIdRuoli = null;
try {
if (!search.equals("")) {
//query con search
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI_RUOLI);
sqlQueryObject.addFromTable(CostantiDB.RUOLI);
sqlQueryObject.addSelectCountField("*", "cont");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id=?");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id="+CostantiDB.SOGGETTI_RUOLI+".id_soggetto");
sqlQueryObject.addWhereCondition(CostantiDB.RUOLI+".id="+CostantiDB.SOGGETTI_RUOLI+".id_ruolo");
sqlQueryObject.addWhereLikeCondition(CostantiDB.RUOLI+".nome", search, true, true);
sqlQueryObject.setSelectDistinct(true);
sqlQueryObject.setANDLogicOperator(true);
queryString = sqlQueryObject.createSQLQuery();
} else {
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI_RUOLI);
sqlQueryObject.addSelectCountField("*", "cont");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id=?");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id="+CostantiDB.SOGGETTI_RUOLI+".id_soggetto");
sqlQueryObject.setSelectDistinct(true);
sqlQueryObject.setANDLogicOperator(true);
queryString = sqlQueryObject.createSQLQuery();
}
stmt = con.prepareStatement(queryString);
stmt.setLong(1, idSoggetto);
risultato = stmt.executeQuery();
if (risultato.next())
ricerca.setNumEntries(idLista,risultato.getInt(1));
risultato.close();
stmt.close();
// ricavo le entries
if (limit == 0) // con limit
limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
if (!search.equals("")) { // con search
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI_RUOLI);
sqlQueryObject.addFromTable(CostantiDB.RUOLI);
sqlQueryObject.addSelectField(CostantiDB.RUOLI+".nome");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id=?");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id="+CostantiDB.SOGGETTI_RUOLI+".id_soggetto");
sqlQueryObject.addWhereCondition(CostantiDB.RUOLI+".id="+CostantiDB.SOGGETTI_RUOLI+".id_ruolo");
sqlQueryObject.addWhereLikeCondition(CostantiDB.RUOLI+".nome", search, true, true);
sqlQueryObject.setSelectDistinct(true);
sqlQueryObject.setANDLogicOperator(true);
sqlQueryObject.addOrderBy(CostantiDB.RUOLI+".nome");
sqlQueryObject.setSortType(true);
sqlQueryObject.setLimit(limit);
sqlQueryObject.setOffset(offset);
queryString = sqlQueryObject.createSQLQuery();
} else {
// senza search
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI_RUOLI);
sqlQueryObject.addFromTable(CostantiDB.RUOLI);
sqlQueryObject.addSelectField(CostantiDB.RUOLI+".nome");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id=?");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id="+CostantiDB.SOGGETTI_RUOLI+".id_soggetto");
sqlQueryObject.addWhereCondition(CostantiDB.RUOLI+".id="+CostantiDB.SOGGETTI_RUOLI+".id_ruolo");
sqlQueryObject.setSelectDistinct(true);
sqlQueryObject.setANDLogicOperator(true);
sqlQueryObject.addOrderBy(CostantiDB.RUOLI+".nome");
sqlQueryObject.setSortType(true);
sqlQueryObject.setLimit(limit);
sqlQueryObject.setOffset(offset);
queryString = sqlQueryObject.createSQLQuery();
}
stmt = con.prepareStatement(queryString);
stmt.setLong(1, idSoggetto);
risultato = stmt.executeQuery();
listIdRuoli = new ArrayList<>();
while (risultato.next()) {
listIdRuoli.add(risultato.getString(1));
}
} catch (Exception qe) {
error = true;
throw new DriverRegistroServiziException("[DriverRegistroServiziDB::" + nomeMetodo + "] Errore : " + qe.getMessage(),qe);
} finally {
//Chiudo statement and resultset
JDBCUtilities.closeResources(risultato, stmt);
this.driver.closeConnection(error,con);
}
return listIdRuoli;
}
protected List<Proprieta> soggettiProprietaList(long idSoggetto, ISearch ricerca) throws DriverRegistroServiziException {
String nomeMetodo = "soggettiRuoliList";
int idLista = Liste.SOGGETTI_PROP;
int offset;
int limit;
String search;
String queryString;
limit = ricerca.getPageSize(idLista);
offset = ricerca.getIndexIniziale(idLista);
search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));
Connection con = null;
boolean error = false;
PreparedStatement stmt = null;
ResultSet risultato = null;
if (this.driver.atomica) {
try {
con = this.driver.getConnectionFromDatasource("soggettiRuoliList");
con.setAutoCommit(false);
} catch (Exception e) {
throw new DriverRegistroServiziException("[DriverRegistroServiziDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);
}
} else
con = this.driver.globalConnection;
this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);
List<Proprieta> lista = null;
try {
if (!search.equals("")) {
//query con search
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI_PROPS);
sqlQueryObject.addSelectCountField("*", "cont");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id=?");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id="+CostantiDB.SOGGETTI_PROPS+".id_soggetto");
sqlQueryObject.addWhereLikeCondition(CostantiDB.SOGGETTI_PROPS+".nome", search, true, true);
sqlQueryObject.setANDLogicOperator(true);
queryString = sqlQueryObject.createSQLQuery();
} else {
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI_PROPS);
sqlQueryObject.addSelectCountField("*", "cont");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id=?");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id="+CostantiDB.SOGGETTI_PROPS+".id_soggetto");
sqlQueryObject.setANDLogicOperator(true);
queryString = sqlQueryObject.createSQLQuery();
}
stmt = con.prepareStatement(queryString);
stmt.setLong(1, idSoggetto);
risultato = stmt.executeQuery();
if (risultato.next())
ricerca.setNumEntries(idLista,risultato.getInt(1));
risultato.close();
stmt.close();
// ricavo le entries
if (limit == 0) // con limit
limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
if (!search.equals("")) { // con search
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI_PROPS);
sqlQueryObject.addSelectField(CostantiDB.SOGGETTI_PROPS+".id");
sqlQueryObject.addSelectField(CostantiDB.SOGGETTI_PROPS+".nome");
sqlQueryObject.addSelectField(CostantiDB.SOGGETTI_PROPS+".valore");
sqlQueryObject.addSelectField(CostantiDB.SOGGETTI_PROPS+".enc_value");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id=?");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id="+CostantiDB.SOGGETTI_PROPS+".id_soggetto");
sqlQueryObject.addWhereLikeCondition(CostantiDB.SOGGETTI_PROPS+".nome", search, true, true);
sqlQueryObject.setANDLogicOperator(true);
sqlQueryObject.addOrderBy(CostantiDB.SOGGETTI_PROPS+".nome");
sqlQueryObject.setSortType(true);
sqlQueryObject.setLimit(limit);
sqlQueryObject.setOffset(offset);
queryString = sqlQueryObject.createSQLQuery();
} else {
// senza search
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI_PROPS);
sqlQueryObject.addSelectField(CostantiDB.SOGGETTI_PROPS+".id");
sqlQueryObject.addSelectField(CostantiDB.SOGGETTI_PROPS+".nome");
sqlQueryObject.addSelectField(CostantiDB.SOGGETTI_PROPS+".valore");
sqlQueryObject.addSelectField(CostantiDB.SOGGETTI_PROPS+".enc_value");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id=?");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id="+CostantiDB.SOGGETTI_PROPS+".id_soggetto");
sqlQueryObject.setANDLogicOperator(true);
sqlQueryObject.addOrderBy(CostantiDB.SOGGETTI_PROPS+".nome");
sqlQueryObject.setSortType(true);
sqlQueryObject.setLimit(limit);
sqlQueryObject.setOffset(offset);
queryString = sqlQueryObject.createSQLQuery();
}
stmt = con.prepareStatement(queryString);
stmt.setLong(1, idSoggetto);
risultato = stmt.executeQuery();
lista = new ArrayList<>();
while (risultato.next()) {
Proprieta proprieta = new Proprieta();
proprieta.setId(risultato.getLong("id"));
proprieta.setNome(risultato.getString("nome"));
proprieta.setValore(risultato.getString("valore"));
String plainValue = risultato.getString("valore");
String encValue = risultato.getString("enc_value");
if(encValue!=null && StringUtils.isNotEmpty(encValue)) {
proprieta.setValore(encValue);
}
else {
proprieta.setValore(plainValue);
}
lista.add(proprieta);
}
} catch (Exception qe) {
error = true;
throw new DriverRegistroServiziException("[DriverRegistroServiziDB::" + nomeMetodo + "] Errore : " + qe.getMessage(),qe);
} finally {
//Chiudo statement and resultset
JDBCUtilities.closeResources(risultato, stmt);
this.driver.closeConnection(error,con);
}
return lista;
}
protected List<Soggetto> soggettiRegistroListByTipo(String tipoSoggetto,ISearch ricerca) throws DriverRegistroServiziException{
return soggettiRegistroList("", tipoSoggetto, ricerca);
}
protected List<Soggetto> soggettiRegistroList(String superuser, ISearch ricerca) throws DriverRegistroServiziException {
return soggettiRegistroList(superuser, null, ricerca);
}
private List<Soggetto> soggettiRegistroList(String superuser, String tipoSoggetto,ISearch ricerca) throws DriverRegistroServiziException {
String nomeMetodo = "soggettiRegistroList";
int idLista = Liste.SOGGETTI;
int offset;
int limit;
String search;
String queryString;
limit = ricerca.getPageSize(idLista);
offset = ricerca.getIndexIniziale(idLista);
search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));
String filterProtocollo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_PROTOCOLLO);
String filterProtocolli = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_PROTOCOLLI);
List<String> tipoSoggettiProtocollo = null;
try {
tipoSoggettiProtocollo = Filtri.convertToTipiSoggetti(filterProtocollo, filterProtocolli);
}catch(Exception e) {
throw new DriverRegistroServiziException(e.getMessage(),e);
}
String filterDominio = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_DOMINIO);
PddTipologia pddTipologia = null;
if(filterDominio!=null && !"".equals(filterDominio)) {
pddTipologia = PddTipologia.toPddTipologia(filterDominio);
}
String filterSoggettoDefaultTmp = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_SOGGETTO_DEFAULT);
boolean filterSoggettoDefault = false;
if(filterSoggettoDefaultTmp!=null) {
filterSoggettoDefault = "true".equalsIgnoreCase(filterSoggettoDefaultTmp.trim());
}
String filterTipoCredenziali = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_TIPO_CREDENZIALI);
String filterCredenziale = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CREDENZIALE);
String filterCredenzialeIssuer = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CREDENZIALE_ISSUER);
if(filterCredenzialeIssuer!=null && "".equals(filterCredenzialeIssuer)) {
filterCredenzialeIssuer = null;
}
if(filterCredenzialeIssuer!=null && !"ssl".equals(filterTipoCredenziali)) {
filterCredenzialeIssuer = null;
}
String filterRuolo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_RUOLO);
boolean isFilterTipologiaErogatore = true;
boolean isFilterTipologiaFruitore = true;
String filterTipologia = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_TIPO_SOGGETTO);
if(filterTipologia!=null && !"".equals(filterTipologia)) {
if(CostantiRegistroServizi.SOGGETTO_TIPOLOGIA_EROGATORE.equals(filterTipologia)) {
isFilterTipologiaFruitore = false;
}
else if(CostantiRegistroServizi.SOGGETTO_TIPOLOGIA_FRUITORE.equals(filterTipologia)) {
isFilterTipologiaErogatore = false;
}
}
boolean isFilterGruppoErogazione = false;
boolean isFilterGruppoFruizione = false;
String filterGruppo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_GRUPPO);
if(filterGruppo!=null && !"".equals(filterGruppo)) {
isFilterGruppoErogazione = true;
isFilterGruppoFruizione = true;
}
TipoPdD apiContesto = null;
String filterApiContesto = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_API_CONTESTO);
if(filterApiContesto!=null && !"".equals(filterApiContesto)) {
apiContesto = TipoPdD.toTipoPdD(filterApiContesto);
if(TipoPdD.APPLICATIVA.equals(apiContesto)) {
isFilterGruppoFruizione = false;
}
else if(TipoPdD.DELEGATA.equals(apiContesto)) {
isFilterGruppoErogazione = false;
}
else {
apiContesto = null;
}
}
String filterApiImplementazione = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_API_IMPLEMENTAZIONE);
IDServizio apiImplementazioneErogazione = null;
IDFruizione apiImplementazioneFruizione = null;
if(filterApiImplementazione!=null && !"".equals(filterApiImplementazione)) {
if(TipoPdD.APPLICATIVA.equals(apiContesto)) {
try {
apiImplementazioneErogazione = IDServizio.toIDServizio(filterApiImplementazione);
isFilterGruppoErogazione=false; // non ha piu' senso ho selezionato una erogazione puntuale
}catch(Exception e) {
throw new DriverRegistroServiziException("Filtro API Implementazione '"+filterApiImplementazione+"' non valido: "+e.getMessage(),e);
}
}
else if(TipoPdD.DELEGATA.equals(apiContesto)) {
try {
apiImplementazioneFruizione = IDFruizione.toIDFruizione(filterApiImplementazione);
isFilterGruppoFruizione=false; // non ha piu' senso ho selezionato una fruizione puntuale
}catch(Exception e) {
throw new DriverRegistroServiziException("Filtro API Implementazione '"+filterApiImplementazione+"' non valido: "+e.getMessage(),e);
}
}
}
String filtroProprietaNome = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_PROPRIETA_NOME);
String filtroProprietaValore = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_PROPRIETA_VALORE);
if((filtroProprietaNome!=null && "".equals(filtroProprietaNome))) {
filtroProprietaNome=null;
}
if((filtroProprietaValore!=null && "".equals(filtroProprietaValore))) {
filtroProprietaValore=null;
}
boolean filtroProprieta = filtroProprietaNome!=null || filtroProprietaValore!=null;
this.driver.logDebug("search : " + search);
this.driver.logDebug("filterProtocollo : " + filterProtocollo);
this.driver.logDebug("filterProtocolli : " + filterProtocolli);
this.driver.logDebug("filterDominio : " + filterDominio);
this.driver.logDebug("filterSoggettoDefault : " + filterSoggettoDefault);
this.driver.logDebug("filterRuolo : " + filterRuolo);
this.driver.logDebug("filterTipoCredenziali : " + filterTipoCredenziali);
this.driver.logDebug("filterCredenziale : " + filterCredenziale);
this.driver.logDebug("filterCredenzialeIssuer : " + filterCredenzialeIssuer);
this.driver.logDebug("filterTipologiaSoggetto : " + filterTipologia);
this.driver.logDebug("filterGruppo : " + filterGruppo);
this.driver.logDebug("filterApiContesto : " + filterApiContesto);
this.driver.logDebug("filterApiImplementazione : " + filterApiImplementazione);
this.driver.logDebug("filtroProprietaNome : " + filtroProprietaNome);
this.driver.logDebug("filtroProprietaValore : " + filtroProprietaValore);
Connection con = null;
boolean error = false;
PreparedStatement stmt = null;
ResultSet risultato = null;
ArrayList<Soggetto> lista = new ArrayList<Soggetto>();
if (this.driver.atomica) {
try {
con = this.driver.getConnectionFromDatasource("soggettiRegistroList");
con.setAutoCommit(false);
} catch (Exception e) {
throw new DriverRegistroServiziException("[DriverRegistroServiziDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);
}
} else
con = this.driver.globalConnection;
this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);
try {
/* === Filtro Dominio === */
ISQLQueryObject sqlQueryObjectPdd = null;
if(pddTipologia!=null && PddTipologia.ESTERNO.equals(pddTipologia)) {
ISQLQueryObject sqlQueryObjectExistsPdd = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectExistsPdd.addSelectField(CostantiDB.PDD+".nome");
sqlQueryObjectExistsPdd.addFromTable(CostantiDB.PDD);
sqlQueryObjectExistsPdd.setANDLogicOperator(true);
sqlQueryObjectExistsPdd.addWhereCondition(CostantiDB.PDD+".nome="+CostantiDB.SOGGETTI+".server");
sqlQueryObjectExistsPdd.addWhereCondition(CostantiDB.PDD+".tipo=?");
sqlQueryObjectPdd = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectPdd.setANDLogicOperator(false);
sqlQueryObjectPdd.addWhereIsNullCondition(CostantiDB.SOGGETTI+".server");
sqlQueryObjectPdd.addWhereExistsCondition(false, sqlQueryObjectExistsPdd);
}
/* === Filtro Tipologia, Gruppo, Tipo Erogazione/Fruizione, Implementazione API === */
List<String> existsConditions = new ArrayList<>();
List<Object> existsParameters = new ArrayList<>();
String alias_CT = "ct";
String alias_ALLARMI = "alarm";
String alias_PD = "pd";
String alias_PA_SOGGETTI = "pasog";
String alias_PA = "pa";
String alias_PA_TRASFORMAZIONI_SOGGETTI = "patsog";
String alias_PA_TRASFORMAZIONI = "pat";
String alias_SERVIZI = "s";
String alias_ACCORDI = "a";
String alias_ACCORDI_GRUPPI = "ag";
String alias_GRUPPI = "g";
String alias_SOGGETTI = "sProprietario";
// ** erogatore **
if(isFilterTipologiaErogatore) {
// indipedente da fruizione o erogazione
if(apiContesto==null) {
if(!isFilterTipologiaFruitore || (isFilterGruppoFruizione || isFilterGruppoErogazione) ) {
ISQLQueryObject sqlQueryObjectErogatore = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectErogatore.addFromTable(CostantiDB.SERVIZI,alias_SERVIZI);
if(isFilterGruppoFruizione) {
sqlQueryObjectErogatore.addFromTable(CostantiDB.ACCORDI,alias_ACCORDI);
sqlQueryObjectErogatore.addFromTable(CostantiDB.ACCORDI_GRUPPI,alias_ACCORDI_GRUPPI);
sqlQueryObjectErogatore.addFromTable(CostantiDB.GRUPPI,alias_GRUPPI);
}
sqlQueryObjectErogatore.addSelectAliasField(alias_SERVIZI, "id", alias_SERVIZI+"id");
sqlQueryObjectErogatore.setANDLogicOperator(true);
sqlQueryObjectErogatore.addWhereCondition(alias_SERVIZI+".id_soggetto = "+CostantiDB.SOGGETTI+".id");
if(isFilterGruppoFruizione) {
sqlQueryObjectErogatore.addWhereCondition(alias_SERVIZI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectErogatore.addWhereCondition(alias_ACCORDI_GRUPPI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectErogatore.addWhereCondition(alias_ACCORDI_GRUPPI+".id_gruppo = "+alias_GRUPPI+".id");
sqlQueryObjectErogatore.addWhereCondition(alias_GRUPPI+".nome = ?");
existsParameters.add(filterGruppo);
}
existsConditions.add(sqlQueryObjectErogatore.getWhereExistsCondition(false, sqlQueryObjectErogatore));
}
}
else {
// erogatore sulle porte delegate
if(TipoPdD.DELEGATA.equals(apiContesto) || apiImplementazioneFruizione!=null) {
ISQLQueryObject sqlQueryObjectErogatorePorteDelegate = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectErogatorePorteDelegate.addFromTable(CostantiDB.SERVIZI,alias_SERVIZI);
if(isFilterGruppoFruizione) {
sqlQueryObjectErogatorePorteDelegate.addFromTable(CostantiDB.ACCORDI,alias_ACCORDI);
sqlQueryObjectErogatorePorteDelegate.addFromTable(CostantiDB.ACCORDI_GRUPPI,alias_ACCORDI_GRUPPI);
sqlQueryObjectErogatorePorteDelegate.addFromTable(CostantiDB.GRUPPI,alias_GRUPPI);
}
if(TipoPdD.DELEGATA.equals(apiContesto) || apiImplementazioneFruizione!=null) {
sqlQueryObjectErogatorePorteDelegate.addFromTable(CostantiDB.PORTE_DELEGATE,alias_PD);
if(apiImplementazioneFruizione!=null) {
sqlQueryObjectErogatorePorteDelegate.addFromTable(CostantiDB.SOGGETTI,alias_SOGGETTI);
}
}
sqlQueryObjectErogatorePorteDelegate.addSelectAliasField(alias_SERVIZI, "id", alias_SERVIZI+"id");
sqlQueryObjectErogatorePorteDelegate.setANDLogicOperator(true);
sqlQueryObjectErogatorePorteDelegate.addWhereCondition(alias_SERVIZI+".id_soggetto = "+CostantiDB.SOGGETTI+".id");
if(isFilterGruppoFruizione) {
sqlQueryObjectErogatorePorteDelegate.addWhereCondition(alias_SERVIZI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectErogatorePorteDelegate.addWhereCondition(alias_ACCORDI_GRUPPI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectErogatorePorteDelegate.addWhereCondition(alias_ACCORDI_GRUPPI+".id_gruppo = "+alias_GRUPPI+".id");
sqlQueryObjectErogatorePorteDelegate.addWhereCondition(alias_GRUPPI+".nome = ?");
existsParameters.add(filterGruppo);
}
if(TipoPdD.DELEGATA.equals(apiContesto) || apiImplementazioneFruizione!=null) {
sqlQueryObjectErogatorePorteDelegate.addWhereCondition(alias_PD+".id_servizio = "+alias_SERVIZI+".id");
if(apiImplementazioneFruizione!=null) {
sqlQueryObjectErogatorePorteDelegate.addWhereCondition(alias_PD+".id_soggetto = "+alias_SOGGETTI+".id");
sqlQueryObjectErogatorePorteDelegate.addWhereCondition(alias_SOGGETTI+".tipo_soggetto = ?");
sqlQueryObjectErogatorePorteDelegate.addWhereCondition(alias_SOGGETTI+".nome_soggetto = ?");
sqlQueryObjectErogatorePorteDelegate.addWhereCondition(alias_PD+".tipo_soggetto_erogatore = ?");
sqlQueryObjectErogatorePorteDelegate.addWhereCondition(alias_PD+".nome_soggetto_erogatore = ?");
sqlQueryObjectErogatorePorteDelegate.addWhereCondition(alias_PD+".tipo_servizio = ?");
sqlQueryObjectErogatorePorteDelegate.addWhereCondition(alias_PD+".nome_servizio = ?");
sqlQueryObjectErogatorePorteDelegate.addWhereCondition(alias_PD+".versione_servizio = ?");
existsParameters.add(apiImplementazioneFruizione.getIdFruitore().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdFruitore().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getSoggettoErogatore().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getSoggettoErogatore().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getVersione());
}
}
existsConditions.add(sqlQueryObjectErogatorePorteDelegate.getWhereExistsCondition(false, sqlQueryObjectErogatorePorteDelegate));
}
// erogatore sulle porte applicative
else if(TipoPdD.APPLICATIVA.equals(apiContesto) || apiImplementazioneErogazione!=null) {
ISQLQueryObject sqlQueryObjectErogatorePorteApplicative = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectErogatorePorteApplicative.addFromTable(CostantiDB.SERVIZI,alias_SERVIZI);
if(isFilterGruppoErogazione) {
sqlQueryObjectErogatorePorteApplicative.addFromTable(CostantiDB.ACCORDI,alias_ACCORDI);
sqlQueryObjectErogatorePorteApplicative.addFromTable(CostantiDB.ACCORDI_GRUPPI,alias_ACCORDI_GRUPPI);
sqlQueryObjectErogatorePorteApplicative.addFromTable(CostantiDB.GRUPPI,alias_GRUPPI);
}
if(TipoPdD.APPLICATIVA.equals(apiContesto) || apiImplementazioneErogazione!=null) {
sqlQueryObjectErogatorePorteApplicative.addFromTable(CostantiDB.PORTE_APPLICATIVE,alias_PA);
}
sqlQueryObjectErogatorePorteApplicative.addSelectAliasField(alias_SERVIZI, "id", alias_SERVIZI+"id");
sqlQueryObjectErogatorePorteApplicative.setANDLogicOperator(true);
sqlQueryObjectErogatorePorteApplicative.addWhereCondition(alias_SERVIZI+".id_soggetto = "+CostantiDB.SOGGETTI+".id");
if(isFilterGruppoErogazione) {
sqlQueryObjectErogatorePorteApplicative.addWhereCondition(alias_SERVIZI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectErogatorePorteApplicative.addWhereCondition(alias_ACCORDI_GRUPPI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectErogatorePorteApplicative.addWhereCondition(alias_ACCORDI_GRUPPI+".id_gruppo = "+alias_GRUPPI+".id");
sqlQueryObjectErogatorePorteApplicative.addWhereCondition(alias_GRUPPI+".nome = ?");
existsParameters.add(filterGruppo);
}
if(TipoPdD.APPLICATIVA.equals(apiContesto) || apiImplementazioneErogazione!=null) {
sqlQueryObjectErogatorePorteApplicative.addWhereCondition(alias_PA+".id_servizio = "+alias_SERVIZI+".id");
if(apiImplementazioneErogazione!=null) {
sqlQueryObjectErogatorePorteApplicative.addWhereCondition(alias_PA+".id_soggetto = "+CostantiDB.SOGGETTI+".id");
sqlQueryObjectErogatorePorteApplicative.addWhereCondition(CostantiDB.SOGGETTI+".tipo_soggetto = ?");
sqlQueryObjectErogatorePorteApplicative.addWhereCondition(CostantiDB.SOGGETTI+".nome_soggetto = ?");
sqlQueryObjectErogatorePorteApplicative.addWhereCondition(alias_PA+".tipo_servizio = ?");
sqlQueryObjectErogatorePorteApplicative.addWhereCondition(alias_PA+".servizio = ?");
sqlQueryObjectErogatorePorteApplicative.addWhereCondition(alias_PA+".versione_servizio = ?");
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getTipo());
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getNome());
existsParameters.add(apiImplementazioneErogazione.getTipo());
existsParameters.add(apiImplementazioneErogazione.getNome());
existsParameters.add(apiImplementazioneErogazione.getVersione());
}
}
existsConditions.add(sqlQueryObjectErogatorePorteApplicative.getWhereExistsCondition(false, sqlQueryObjectErogatorePorteApplicative));
}
}
}
// ** fruitore **
if(isFilterTipologiaFruitore) {
// porte delegate proprietario
if( (!isFilterTipologiaErogatore && apiContesto==null) || isFilterGruppoFruizione || TipoPdD.DELEGATA.equals(apiContesto) || apiImplementazioneFruizione!=null) {
ISQLQueryObject sqlQueryObjectProprietrioPorteDelegate = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectProprietrioPorteDelegate.addFromTable(CostantiDB.PORTE_DELEGATE,alias_PD);
if(isFilterGruppoFruizione) {
sqlQueryObjectProprietrioPorteDelegate.addFromTable(CostantiDB.SERVIZI,alias_SERVIZI);
sqlQueryObjectProprietrioPorteDelegate.addFromTable(CostantiDB.ACCORDI,alias_ACCORDI);
sqlQueryObjectProprietrioPorteDelegate.addFromTable(CostantiDB.ACCORDI_GRUPPI,alias_ACCORDI_GRUPPI);
sqlQueryObjectProprietrioPorteDelegate.addFromTable(CostantiDB.GRUPPI,alias_GRUPPI);
}
if(apiImplementazioneFruizione!=null) {
sqlQueryObjectProprietrioPorteDelegate.addFromTable(CostantiDB.SOGGETTI,alias_SOGGETTI);
}
sqlQueryObjectProprietrioPorteDelegate.addSelectAliasField(alias_PD, "id", alias_PD+"id");
sqlQueryObjectProprietrioPorteDelegate.setANDLogicOperator(true);
sqlQueryObjectProprietrioPorteDelegate.addWhereCondition(alias_PD+".id_soggetto = "+CostantiDB.SOGGETTI+".id");
if(isFilterGruppoFruizione) {
sqlQueryObjectProprietrioPorteDelegate.addWhereCondition(alias_PD+".id_servizio = "+alias_SERVIZI+".id");
sqlQueryObjectProprietrioPorteDelegate.addWhereCondition(alias_SERVIZI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectProprietrioPorteDelegate.addWhereCondition(alias_ACCORDI_GRUPPI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectProprietrioPorteDelegate.addWhereCondition(alias_ACCORDI_GRUPPI+".id_gruppo = "+alias_GRUPPI+".id");
sqlQueryObjectProprietrioPorteDelegate.addWhereCondition(alias_GRUPPI+".nome = ?");
existsParameters.add(filterGruppo);
}
if(apiImplementazioneFruizione!=null) {
sqlQueryObjectProprietrioPorteDelegate.addWhereCondition(CostantiDB.SOGGETTI+".tipo_soggetto = ?");
sqlQueryObjectProprietrioPorteDelegate.addWhereCondition(CostantiDB.SOGGETTI+".nome_soggetto = ?");
sqlQueryObjectProprietrioPorteDelegate.addWhereCondition(alias_PD+".tipo_soggetto_erogatore = ?");
sqlQueryObjectProprietrioPorteDelegate.addWhereCondition(alias_PD+".nome_soggetto_erogatore = ?");
sqlQueryObjectProprietrioPorteDelegate.addWhereCondition(alias_PD+".tipo_servizio = ?");
sqlQueryObjectProprietrioPorteDelegate.addWhereCondition(alias_PD+".nome_servizio = ?");
sqlQueryObjectProprietrioPorteDelegate.addWhereCondition(alias_PD+".versione_servizio = ?");
existsParameters.add(apiImplementazioneFruizione.getIdFruitore().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdFruitore().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getSoggettoErogatore().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getSoggettoErogatore().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getVersione());
}
existsConditions.add(sqlQueryObjectProprietrioPorteDelegate.getWhereExistsCondition(false, sqlQueryObjectProprietrioPorteDelegate));
}
// autorizzazioni soggetti porte applicative
if( (!isFilterTipologiaErogatore && apiContesto==null) || isFilterGruppoErogazione || TipoPdD.APPLICATIVA.equals(apiContesto) || apiImplementazioneErogazione!=null) {
ISQLQueryObject sqlQueryObjectAutorizzazioniPorteApplicative = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectAutorizzazioniPorteApplicative.addFromTable(CostantiDB.PORTE_APPLICATIVE_SOGGETTI,alias_PA_SOGGETTI);
sqlQueryObjectAutorizzazioniPorteApplicative.addFromTable(CostantiDB.PORTE_APPLICATIVE,alias_PA);
if(isFilterGruppoErogazione) {
sqlQueryObjectAutorizzazioniPorteApplicative.addFromTable(CostantiDB.SERVIZI,alias_SERVIZI);
sqlQueryObjectAutorizzazioniPorteApplicative.addFromTable(CostantiDB.ACCORDI,alias_ACCORDI);
sqlQueryObjectAutorizzazioniPorteApplicative.addFromTable(CostantiDB.ACCORDI_GRUPPI,alias_ACCORDI_GRUPPI);
sqlQueryObjectAutorizzazioniPorteApplicative.addFromTable(CostantiDB.GRUPPI,alias_GRUPPI);
}
if(apiImplementazioneErogazione!=null) {
sqlQueryObjectAutorizzazioniPorteApplicative.addFromTable(CostantiDB.SOGGETTI,alias_SOGGETTI);
}
sqlQueryObjectAutorizzazioniPorteApplicative.addSelectAliasField(alias_PA_SOGGETTI, "id", alias_PA_SOGGETTI+"id");
sqlQueryObjectAutorizzazioniPorteApplicative.setANDLogicOperator(true);
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(alias_PA_SOGGETTI+".tipo_soggetto = "+CostantiDB.SOGGETTI+".tipo_soggetto");
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(alias_PA_SOGGETTI+".nome_soggetto = "+CostantiDB.SOGGETTI+".nome_soggetto");
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(alias_PA_SOGGETTI+".id_porta = "+alias_PA+".id");
if(isFilterGruppoErogazione) {
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(alias_PA+".id_servizio = "+alias_SERVIZI+".id");
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(alias_SERVIZI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(alias_ACCORDI_GRUPPI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(alias_ACCORDI_GRUPPI+".id_gruppo = "+alias_GRUPPI+".id");
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(alias_GRUPPI+".nome = ?");
existsParameters.add(filterGruppo);
}
if(apiImplementazioneErogazione!=null) {
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(alias_PA+".id_soggetto = "+alias_SOGGETTI+".id");
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(alias_SOGGETTI+".tipo_soggetto = ?");
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(alias_SOGGETTI+".nome_soggetto = ?");
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(alias_PA+".tipo_servizio = ?");
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(alias_PA+".servizio = ?");
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(alias_PA+".versione_servizio = ?");
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getTipo());
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getNome());
existsParameters.add(apiImplementazioneErogazione.getTipo());
existsParameters.add(apiImplementazioneErogazione.getNome());
existsParameters.add(apiImplementazioneErogazione.getVersione());
}
existsConditions.add(sqlQueryObjectAutorizzazioniPorteApplicative.getWhereExistsCondition(false, sqlQueryObjectAutorizzazioniPorteApplicative));
}
// controllo del traffico (fruitore)
// Controllo del traffico sulle porte delegate
// e' cablato il soggetto fruitore e il proprietrio della porta delegata
/*
if( (!isFilterTipologiaErogatore && apiContesto==null) || isFilterGruppoFruizione || TipoPdD.DELEGATA.equals(apiContesto) || apiImplementazioneFruizione!=null) {
ISQLQueryObject sqlQueryObjectControlloTrafficoPorteDelegate = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectControlloTrafficoPorteDelegate.addFromTable(CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY,alias_CT);
if(isFilterGruppoFruizione || apiImplementazioneFruizione!=null) {
sqlQueryObjectControlloTrafficoPorteDelegate.addFromTable(CostantiDB.PORTE_DELEGATE,alias_PD);
if(isFilterGruppoFruizione) {
sqlQueryObjectControlloTrafficoPorteDelegate.addFromTable(CostantiDB.SERVIZI,alias_SERVIZI);
sqlQueryObjectControlloTrafficoPorteDelegate.addFromTable(CostantiDB.ACCORDI,alias_ACCORDI);
sqlQueryObjectControlloTrafficoPorteDelegate.addFromTable(CostantiDB.ACCORDI_GRUPPI,alias_ACCORDI_GRUPPI);
sqlQueryObjectControlloTrafficoPorteDelegate.addFromTable(CostantiDB.GRUPPI,alias_GRUPPI);
}
if(apiImplementazioneFruizione!=null) {
sqlQueryObjectControlloTrafficoPorteDelegate.addFromTable(CostantiDB.SOGGETTI,alias_SOGGETTI);
}
}
sqlQueryObjectControlloTrafficoPorteDelegate.addSelectAliasField(alias_CT, "id", alias_CT+"id");
sqlQueryObjectControlloTrafficoPorteDelegate.setANDLogicOperator(true);
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(alias_CT+".filtro_tipo_fruitore = "+CostantiDB.SOGGETTI+".tipo_soggetto");
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(alias_CT+".filtro_nome_fruitore = "+CostantiDB.SOGGETTI+".nome_soggetto");
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(alias_CT+".filtro_ruolo = 'delegata'");
if(isFilterGruppoFruizione || apiImplementazioneFruizione!=null) {
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(alias_CT+".filtro_porta = "+alias_PD+".nome_porta");
if(isFilterGruppoFruizione) {
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(alias_PD+".id_servizio = "+alias_SERVIZI+".id");
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(alias_SERVIZI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(alias_ACCORDI_GRUPPI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(alias_ACCORDI_GRUPPI+".id_gruppo = "+alias_GRUPPI+".id");
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(alias_GRUPPI+".nome = ?");
existsParameters.add(filterGruppo);
}
if(apiImplementazioneFruizione!=null) {
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(alias_PD+".id_soggetto = "+alias_SOGGETTI+".id");
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(alias_SOGGETTI+".tipo_soggetto = ?");
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(alias_SOGGETTI+".nome_soggetto = ?");
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(alias_PD+".tipo_soggetto_erogatore = ?");
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(alias_PD+".nome_soggetto_erogatore = ?");
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(alias_PD+".tipo_servizio = ?");
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(alias_PD+".nome_servizio = ?");
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(alias_PD+".versione_servizio = ?");
existsParameters.add(apiImplementazioneFruizione.getIdFruitore().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdFruitore().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getSoggettoErogatore().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getSoggettoErogatore().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getVersione());
}
}
existsConditions.add(sqlQueryObjectControlloTrafficoPorteDelegate.getWhereExistsCondition(false, sqlQueryObjectControlloTrafficoPorteDelegate));
}
*/
// Controllo del traffico sulle porte applicative
if( (!isFilterTipologiaErogatore && apiContesto==null) || isFilterGruppoErogazione || TipoPdD.APPLICATIVA.equals(apiContesto) || apiImplementazioneErogazione!=null) {
ISQLQueryObject sqlQueryObjectControlloTrafficoPorteApplicative = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectControlloTrafficoPorteApplicative.addFromTable(CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY,alias_CT);
if(isFilterGruppoErogazione || apiImplementazioneErogazione!=null) {
sqlQueryObjectControlloTrafficoPorteApplicative.addFromTable(CostantiDB.PORTE_APPLICATIVE,alias_PA);
if(isFilterGruppoErogazione) {
sqlQueryObjectControlloTrafficoPorteApplicative.addFromTable(CostantiDB.SERVIZI,alias_SERVIZI);
sqlQueryObjectControlloTrafficoPorteApplicative.addFromTable(CostantiDB.ACCORDI,alias_ACCORDI);
sqlQueryObjectControlloTrafficoPorteApplicative.addFromTable(CostantiDB.ACCORDI_GRUPPI,alias_ACCORDI_GRUPPI);
sqlQueryObjectControlloTrafficoPorteApplicative.addFromTable(CostantiDB.GRUPPI,alias_GRUPPI);
}
if(apiImplementazioneErogazione!=null) {
sqlQueryObjectControlloTrafficoPorteApplicative.addFromTable(CostantiDB.SOGGETTI,alias_SOGGETTI);
}
}
sqlQueryObjectControlloTrafficoPorteApplicative.addSelectAliasField(alias_CT, "id", alias_CT+"id");
sqlQueryObjectControlloTrafficoPorteApplicative.setANDLogicOperator(true);
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(alias_CT+".filtro_tipo_fruitore = "+CostantiDB.SOGGETTI+".tipo_soggetto");
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(alias_CT+".filtro_nome_fruitore = "+CostantiDB.SOGGETTI+".nome_soggetto");
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(alias_CT+".filtro_ruolo = 'applicativa'");
if(isFilterGruppoErogazione || apiImplementazioneErogazione!=null) {
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(alias_CT+".filtro_porta = "+alias_PA+".nome_porta");
if(isFilterGruppoErogazione) {
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(alias_PA+".id_servizio = "+alias_SERVIZI+".id");
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(alias_SERVIZI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(alias_ACCORDI_GRUPPI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(alias_ACCORDI_GRUPPI+".id_gruppo = "+alias_GRUPPI+".id");
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(alias_GRUPPI+".nome = ?");
existsParameters.add(filterGruppo);
}
if(apiImplementazioneErogazione!=null) {
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(alias_PA+".id_soggetto = "+alias_SOGGETTI+".id");
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(alias_SOGGETTI+".tipo_soggetto = ?");
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(alias_SOGGETTI+".nome_soggetto = ?");
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(alias_PA+".tipo_servizio = ?");
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(alias_PA+".servizio = ?");
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(alias_PA+".versione_servizio = ?");
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getTipo());
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getNome());
existsParameters.add(apiImplementazioneErogazione.getTipo());
existsParameters.add(apiImplementazioneErogazione.getNome());
existsParameters.add(apiImplementazioneErogazione.getVersione());
}
}
existsConditions.add(sqlQueryObjectControlloTrafficoPorteApplicative.getWhereExistsCondition(false, sqlQueryObjectControlloTrafficoPorteApplicative));
}
if(CostantiDB.isAllarmiEnabled()) {
// allarmi (fruitore)
// Allarmi sulle porte delegate
// e' cablato il soggetto fruitore e il proprietrio della porta delegata
/*
if( (!isFilterTipologiaErogatore && apiContesto==null) || isFilterGruppoFruizione || TipoPdD.DELEGATA.equals(apiContesto) || apiImplementazioneFruizione!=null) {
ISQLQueryObject sqlQueryObjectPorteDelegate = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectPorteDelegate.addFromTable(CostantiDB.ALLARMI,alias_ALLARMI);
if(isFilterGruppoFruizione || apiImplementazioneFruizione!=null) {
sqlQueryObjectPorteDelegate.addFromTable(CostantiDB.PORTE_DELEGATE,alias_PD);
if(isFilterGruppoFruizione) {
sqlQueryObjectPorteDelegate.addFromTable(CostantiDB.SERVIZI,alias_SERVIZI);
sqlQueryObjectPorteDelegate.addFromTable(CostantiDB.ACCORDI,alias_ACCORDI);
sqlQueryObjectPorteDelegate.addFromTable(CostantiDB.ACCORDI_GRUPPI,alias_ACCORDI_GRUPPI);
sqlQueryObjectPorteDelegate.addFromTable(CostantiDB.GRUPPI,alias_GRUPPI);
}
if(apiImplementazioneFruizione!=null) {
sqlQueryObjectPorteDelegate.addFromTable(CostantiDB.SOGGETTI,alias_SOGGETTI);
}
}
sqlQueryObjectPorteDelegate.addSelectAliasField(alias_ALLARMI, "id", alias_ALLARMI+"id");
sqlQueryObjectPorteDelegate.setANDLogicOperator(true);
sqlQueryObjectPorteDelegate.addWhereCondition(alias_ALLARMI+".filtro_tipo_fruitore = "+CostantiDB.SOGGETTI+".tipo_soggetto");
sqlQueryObjectPorteDelegate.addWhereCondition(alias_ALLARMI+".filtro_nome_fruitore = "+CostantiDB.SOGGETTI+".nome_soggetto");
sqlQueryObjectPorteDelegate.addWhereCondition(alias_ALLARMI+".filtro_ruolo = 'delegata'");
if(isFilterGruppoFruizione || apiImplementazioneFruizione!=null) {
sqlQueryObjectPorteDelegate.addWhereCondition(alias_ALLARMI+".filtro_porta = "+alias_PD+".nome_porta");
if(isFilterGruppoFruizione) {
sqlQueryObjectPorteDelegate.addWhereCondition(alias_PD+".id_servizio = "+alias_SERVIZI+".id");
sqlQueryObjectPorteDelegate.addWhereCondition(alias_SERVIZI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectPorteDelegate.addWhereCondition(alias_ACCORDI_GRUPPI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectPorteDelegate.addWhereCondition(alias_ACCORDI_GRUPPI+".id_gruppo = "+alias_GRUPPI+".id");
sqlQueryObjectPorteDelegate.addWhereCondition(alias_GRUPPI+".nome = ?");
existsParameters.add(filterGruppo);
}
if(apiImplementazioneFruizione!=null) {
sqlQueryObjectPorteDelegate.addWhereCondition(alias_PD+".id_soggetto = "+alias_SOGGETTI+".id");
sqlQueryObjectPorteDelegate.addWhereCondition(alias_SOGGETTI+".tipo_soggetto = ?");
sqlQueryObjectPorteDelegate.addWhereCondition(alias_SOGGETTI+".nome_soggetto = ?");
sqlQueryObjectPorteDelegate.addWhereCondition(alias_PD+".tipo_soggetto_erogatore = ?");
sqlQueryObjectPorteDelegate.addWhereCondition(alias_PD+".nome_soggetto_erogatore = ?");
sqlQueryObjectPorteDelegate.addWhereCondition(alias_PD+".tipo_servizio = ?");
sqlQueryObjectPorteDelegate.addWhereCondition(alias_PD+".nome_servizio = ?");
sqlQueryObjectPorteDelegate.addWhereCondition(alias_PD+".versione_servizio = ?");
existsParameters.add(apiImplementazioneFruizione.getIdFruitore().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdFruitore().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getSoggettoErogatore().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getSoggettoErogatore().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getVersione());
}
}
existsConditions.add(sqlQueryObjectPorteDelegate.getWhereExistsCondition(false, sqlQueryObjectPorteDelegate));
}
*/
// Allarmi sulle porte applicative
if( (!isFilterTipologiaErogatore && apiContesto==null) || isFilterGruppoErogazione || TipoPdD.APPLICATIVA.equals(apiContesto) || apiImplementazioneErogazione!=null) {
ISQLQueryObject sqlQueryObjectPorteApplicative = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectPorteApplicative.addFromTable(CostantiDB.ALLARMI,alias_ALLARMI);
if(isFilterGruppoErogazione || apiImplementazioneErogazione!=null) {
sqlQueryObjectPorteApplicative.addFromTable(CostantiDB.PORTE_APPLICATIVE,alias_PA);
if(isFilterGruppoErogazione) {
sqlQueryObjectPorteApplicative.addFromTable(CostantiDB.SERVIZI,alias_SERVIZI);
sqlQueryObjectPorteApplicative.addFromTable(CostantiDB.ACCORDI,alias_ACCORDI);
sqlQueryObjectPorteApplicative.addFromTable(CostantiDB.ACCORDI_GRUPPI,alias_ACCORDI_GRUPPI);
sqlQueryObjectPorteApplicative.addFromTable(CostantiDB.GRUPPI,alias_GRUPPI);
}
if(apiImplementazioneErogazione!=null) {
sqlQueryObjectPorteApplicative.addFromTable(CostantiDB.SOGGETTI,alias_SOGGETTI);
}
}
sqlQueryObjectPorteApplicative.addSelectAliasField(alias_ALLARMI, "id", alias_ALLARMI+"id");
sqlQueryObjectPorteApplicative.setANDLogicOperator(true);
sqlQueryObjectPorteApplicative.addWhereCondition(alias_ALLARMI+".filtro_tipo_fruitore = "+CostantiDB.SOGGETTI+".tipo_soggetto");
sqlQueryObjectPorteApplicative.addWhereCondition(alias_ALLARMI+".filtro_nome_fruitore = "+CostantiDB.SOGGETTI+".nome_soggetto");
sqlQueryObjectPorteApplicative.addWhereCondition(alias_ALLARMI+".filtro_ruolo = 'applicativa'");
if(isFilterGruppoErogazione || apiImplementazioneErogazione!=null) {
sqlQueryObjectPorteApplicative.addWhereCondition(alias_ALLARMI+".filtro_porta = "+alias_PA+".nome_porta");
if(isFilterGruppoErogazione) {
sqlQueryObjectPorteApplicative.addWhereCondition(alias_PA+".id_servizio = "+alias_SERVIZI+".id");
sqlQueryObjectPorteApplicative.addWhereCondition(alias_SERVIZI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectPorteApplicative.addWhereCondition(alias_ACCORDI_GRUPPI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectPorteApplicative.addWhereCondition(alias_ACCORDI_GRUPPI+".id_gruppo = "+alias_GRUPPI+".id");
sqlQueryObjectPorteApplicative.addWhereCondition(alias_GRUPPI+".nome = ?");
existsParameters.add(filterGruppo);
}
if(apiImplementazioneErogazione!=null) {
sqlQueryObjectPorteApplicative.addWhereCondition(alias_PA+".id_soggetto = "+alias_SOGGETTI+".id");
sqlQueryObjectPorteApplicative.addWhereCondition(alias_SOGGETTI+".tipo_soggetto = ?");
sqlQueryObjectPorteApplicative.addWhereCondition(alias_SOGGETTI+".nome_soggetto = ?");
sqlQueryObjectPorteApplicative.addWhereCondition(alias_PA+".tipo_servizio = ?");
sqlQueryObjectPorteApplicative.addWhereCondition(alias_PA+".servizio = ?");
sqlQueryObjectPorteApplicative.addWhereCondition(alias_PA+".versione_servizio = ?");
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getTipo());
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getNome());
existsParameters.add(apiImplementazioneErogazione.getTipo());
existsParameters.add(apiImplementazioneErogazione.getNome());
existsParameters.add(apiImplementazioneErogazione.getVersione());
}
}
existsConditions.add(sqlQueryObjectPorteApplicative.getWhereExistsCondition(false, sqlQueryObjectPorteApplicative));
}
}
// porte_applicative trasformazioni
if((!isFilterTipologiaErogatore && apiContesto==null) || isFilterGruppoErogazione || TipoPdD.APPLICATIVA.equals(apiContesto) || apiImplementazioneErogazione!=null) {
ISQLQueryObject sqlQueryObjectTrasformazioniPorteApplicative = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectTrasformazioniPorteApplicative.addFromTable(CostantiDB.PORTE_APPLICATIVE_TRASFORMAZIONI_SOGGETTI,alias_PA_TRASFORMAZIONI_SOGGETTI);
sqlQueryObjectTrasformazioniPorteApplicative.addFromTable(CostantiDB.PORTE_APPLICATIVE_TRASFORMAZIONI,alias_PA_TRASFORMAZIONI);
sqlQueryObjectTrasformazioniPorteApplicative.addFromTable(CostantiDB.PORTE_APPLICATIVE,alias_PA);
if(isFilterGruppoErogazione) {
sqlQueryObjectTrasformazioniPorteApplicative.addFromTable(CostantiDB.SERVIZI,alias_SERVIZI);
sqlQueryObjectTrasformazioniPorteApplicative.addFromTable(CostantiDB.ACCORDI,alias_ACCORDI);
sqlQueryObjectTrasformazioniPorteApplicative.addFromTable(CostantiDB.ACCORDI_GRUPPI,alias_ACCORDI_GRUPPI);
sqlQueryObjectTrasformazioniPorteApplicative.addFromTable(CostantiDB.GRUPPI,alias_GRUPPI);
}
if(apiImplementazioneErogazione!=null) {
sqlQueryObjectTrasformazioniPorteApplicative.addFromTable(CostantiDB.SOGGETTI,alias_SOGGETTI);
}
sqlQueryObjectTrasformazioniPorteApplicative.addSelectAliasField(alias_PA_TRASFORMAZIONI_SOGGETTI, "id", alias_PA_TRASFORMAZIONI_SOGGETTI+"id");
sqlQueryObjectTrasformazioniPorteApplicative.setANDLogicOperator(true);
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(alias_PA_TRASFORMAZIONI_SOGGETTI+".tipo_soggetto = "+CostantiDB.SOGGETTI+".tipo_soggetto");
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(alias_PA_TRASFORMAZIONI_SOGGETTI+".nome_soggetto = "+CostantiDB.SOGGETTI+".nome_soggetto");
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(alias_PA_TRASFORMAZIONI_SOGGETTI+".id_trasformazione = "+alias_PA_TRASFORMAZIONI+".id");
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(alias_PA_TRASFORMAZIONI+".id_porta = "+alias_PA+".id");
if(isFilterGruppoErogazione) {
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(alias_PA+".id_servizio = "+alias_SERVIZI+".id");
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(alias_SERVIZI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(alias_ACCORDI_GRUPPI+".id_accordo = "+alias_ACCORDI+".id");
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(alias_ACCORDI_GRUPPI+".id_gruppo = "+alias_GRUPPI+".id");
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(alias_GRUPPI+".nome = ?");
existsParameters.add(filterGruppo);
}
if(apiImplementazioneErogazione!=null) {
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(alias_PA+".id_soggetto = "+alias_SOGGETTI+".id");
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(alias_SOGGETTI+".tipo_soggetto = ?");
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(alias_SOGGETTI+".nome_soggetto = ?");
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(alias_PA+".tipo_servizio = ?");
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(alias_PA+".servizio = ?");
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(alias_PA+".versione_servizio = ?");
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getTipo());
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getNome());
existsParameters.add(apiImplementazioneErogazione.getTipo());
existsParameters.add(apiImplementazioneErogazione.getNome());
existsParameters.add(apiImplementazioneErogazione.getVersione());
}
existsConditions.add(sqlQueryObjectTrasformazioniPorteApplicative.getWhereExistsCondition(false, sqlQueryObjectTrasformazioniPorteApplicative));
}
}
if (!search.equals("")) {
//query con search
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addSelectCountField("*", "cont");
if(filterSoggettoDefault) {
sqlQueryObject.addWhereCondition("is_default = ?");
}
if(this.driver.useSuperUser && superuser!=null && (!superuser.equals("")))
sqlQueryObject.addWhereCondition("superuser = ?");
if(tipoSoggetto!=null){
sqlQueryObject.addWhereCondition("tipo_soggetto=?");
sqlQueryObject.addWhereLikeCondition("nome_soggetto", search, true, true);
}
else{
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition("tipo_soggetto", search, true, true),
sqlQueryObject.getWhereLikeCondition("nome_soggetto", search, true, true));
}
if(tipoSoggetto==null && tipoSoggettiProtocollo!=null && tipoSoggettiProtocollo.size()>0) {
sqlQueryObject.addWhereINCondition("tipo_soggetto", true, tipoSoggettiProtocollo.toArray(new String[1]));
}
if(pddTipologia!=null) {
if(PddTipologia.ESTERNO.equals(pddTipologia)) {
sqlQueryObject.addWhereCondition(sqlQueryObjectPdd.createSQLConditions());
}
else {
sqlQueryObject.addFromTable(CostantiDB.PDD);
sqlQueryObject.addWhereCondition(true,CostantiDB.PDD+".nome="+CostantiDB.SOGGETTI+".server",CostantiDB.PDD+".tipo=?");
}
}
if(filterRuolo!=null && !"".equals(filterRuolo)) {
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI_RUOLI);
sqlQueryObject.addFromTable(CostantiDB.RUOLI);
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id="+CostantiDB.SOGGETTI_RUOLI+".id_soggetto");
sqlQueryObject.addWhereCondition(CostantiDB.RUOLI+".id="+CostantiDB.SOGGETTI_RUOLI+".id_ruolo");
sqlQueryObject.addWhereCondition(CostantiDB.RUOLI+".nome=?");
}
if(filterTipoCredenziali!=null && !"".equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".tipoauth = ?");
if(filterCredenziale!=null && !"".equals(filterCredenziale)) {
if(CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI+".cn_subject", filterCredenziale,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI+".subject", filterCredenziale,
LikeConfig.contains(true,true)));
}
else if(CostantiConfigurazione.CREDENZIALE_BASIC.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_PRINCIPAL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereLikeCondition(CostantiDB.SOGGETTI+".utente",
filterCredenziale, LikeConfig.contains(true,true));
}
}
if(filterCredenzialeIssuer!=null && !"".equals(filterCredenzialeIssuer)) {
if(CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI+".cn_issuer", filterCredenzialeIssuer,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI+".issuer", filterCredenzialeIssuer,
LikeConfig.contains(true,true)));
}
}
}
if(!existsConditions.isEmpty()) {
sqlQueryObject.addWhereCondition(false, existsConditions.toArray(new String[1]));
}
if(filtroProprieta) {
DBUtils.setFiltriProprietaSoggetto(sqlQueryObject, this.driver.tipoDB,
filtroProprietaNome, filtroProprietaValore);
}
sqlQueryObject.setANDLogicOperator(true);
queryString = sqlQueryObject.createSQLQuery();
} else {
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addSelectCountField("*", "cont");
if(filterSoggettoDefault) {
sqlQueryObject.addWhereCondition("is_default = ?");
}
if(this.driver.useSuperUser && superuser!=null && (!superuser.equals("")))
sqlQueryObject.addWhereCondition("superuser = ?");
if(tipoSoggetto!=null)
sqlQueryObject.addWhereCondition("tipo_soggetto=?");
if(tipoSoggetto==null && tipoSoggettiProtocollo!=null && tipoSoggettiProtocollo.size()>0) {
sqlQueryObject.addWhereINCondition("tipo_soggetto", true, tipoSoggettiProtocollo.toArray(new String[1]));
}
if(pddTipologia!=null) {
if(PddTipologia.ESTERNO.equals(pddTipologia)) {
sqlQueryObject.addWhereCondition(sqlQueryObjectPdd.createSQLConditions());
}
else {
sqlQueryObject.addFromTable(CostantiDB.PDD);
sqlQueryObject.addWhereCondition(true,CostantiDB.PDD+".nome="+CostantiDB.SOGGETTI+".server",CostantiDB.PDD+".tipo=?");
}
}
if(filterRuolo!=null && !"".equals(filterRuolo)) {
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI_RUOLI);
sqlQueryObject.addFromTable(CostantiDB.RUOLI);
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id="+CostantiDB.SOGGETTI_RUOLI+".id_soggetto");
sqlQueryObject.addWhereCondition(CostantiDB.RUOLI+".id="+CostantiDB.SOGGETTI_RUOLI+".id_ruolo");
sqlQueryObject.addWhereCondition(CostantiDB.RUOLI+".nome=?");
}
if(filterTipoCredenziali!=null && !"".equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".tipoauth = ?");
if(filterCredenziale!=null && !"".equals(filterCredenziale)) {
if(CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI+".cn_subject", filterCredenziale,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI+".subject", filterCredenziale,
LikeConfig.contains(true,true)));
}
else if(CostantiConfigurazione.CREDENZIALE_BASIC.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_PRINCIPAL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereLikeCondition(CostantiDB.SOGGETTI+".utente",
filterCredenziale, LikeConfig.contains(true,true));
}
}
if(filterCredenzialeIssuer!=null && !"".equals(filterCredenzialeIssuer)) {
if(CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI+".cn_issuer", filterCredenzialeIssuer,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI+".issuer", filterCredenzialeIssuer,
LikeConfig.contains(true,true)));
}
}
}
if(!existsConditions.isEmpty()) {
sqlQueryObject.addWhereCondition(false, existsConditions.toArray(new String[1]));
}
if(filtroProprieta) {
DBUtils.setFiltriProprietaSoggetto(sqlQueryObject, this.driver.tipoDB,
filtroProprietaNome, filtroProprietaValore);
}
sqlQueryObject.setANDLogicOperator(true);
queryString = sqlQueryObject.createSQLQuery();
}
stmt = con.prepareStatement(queryString);
int index = 1;
if(filterSoggettoDefault) {
stmt.setInt(index++, 1);
}
if(this.driver.useSuperUser && superuser!=null && (!superuser.equals(""))){
stmt.setString(index++, superuser);
}
if (!search.equals("")) {
if(tipoSoggetto!=null){
stmt.setString(index++, tipoSoggetto);
}
}else{
if(tipoSoggetto!=null)
stmt.setString(index++, tipoSoggetto);
}
if(pddTipologia!=null) {
stmt.setString(index++, pddTipologia.toString());
}
if(filterRuolo!=null && !"".equals(filterRuolo)) {
stmt.setString(index++, filterRuolo);
}
if(filterTipoCredenziali!=null && !"".equals(filterTipoCredenziali)) {
stmt.setString(index++, filterTipoCredenziali);
// if(filterCredenziale!=null && !"".equals(filterCredenziale)) {
// // like
// }
}
if(existsParameters!=null && !existsParameters.isEmpty()) {
for (Object object : existsParameters) {
if(object instanceof String) {
stmt.setString(index++, (String) object);
}
else {
stmt.setInt(index++, (Integer) object);
}
}
}
risultato = stmt.executeQuery();
if (risultato.next())
ricerca.setNumEntries(idLista,risultato.getInt(1));
risultato.close();
stmt.close();
// ricavo le entries
if (limit == 0) // con limit
limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
if (!search.equals("")) { // con search
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addSelectAliasField(CostantiDB.SOGGETTI,"id","identificativoSoggetto");
sqlQueryObject.addSelectField("nome_soggetto");
sqlQueryObject.addSelectField("tipo_soggetto");
sqlQueryObject.addSelectAliasField(CostantiDB.SOGGETTI,"descrizione","descrizioneSoggetto");
sqlQueryObject.addSelectField("identificativo_porta");
sqlQueryObject.addSelectField("server");
sqlQueryObject.addSelectField("id_connettore");
sqlQueryObject.addSelectField("codice_ipa");
sqlQueryObject.addSelectField("tipoauth");
if(filterSoggettoDefault) {
sqlQueryObject.addWhereCondition("is_default = ?");
}
if(this.driver.useSuperUser && superuser!=null && (!superuser.equals("")))
sqlQueryObject.addWhereCondition("superuser = ?");
if(tipoSoggetto!=null){
sqlQueryObject.addWhereCondition("tipo_soggetto=?");
sqlQueryObject.addWhereLikeCondition("nome_soggetto", search, true, true);
}
else{
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition("tipo_soggetto", search, true, true),
sqlQueryObject.getWhereLikeCondition("nome_soggetto", search, true, true));
}
if(tipoSoggetto==null && tipoSoggettiProtocollo!=null && tipoSoggettiProtocollo.size()>0) {
sqlQueryObject.addWhereINCondition("tipo_soggetto", true, tipoSoggettiProtocollo.toArray(new String[1]));
}
if(pddTipologia!=null) {
if(PddTipologia.ESTERNO.equals(pddTipologia)) {
sqlQueryObject.addWhereCondition(sqlQueryObjectPdd.createSQLConditions());
}
else {
sqlQueryObject.addFromTable(CostantiDB.PDD);
sqlQueryObject.addWhereCondition(true,CostantiDB.PDD+".nome="+CostantiDB.SOGGETTI+".server",CostantiDB.PDD+".tipo=?");
}
}
if(filterRuolo!=null && !"".equals(filterRuolo)) {
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI_RUOLI);
sqlQueryObject.addFromTable(CostantiDB.RUOLI);
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id="+CostantiDB.SOGGETTI_RUOLI+".id_soggetto");
sqlQueryObject.addWhereCondition(CostantiDB.RUOLI+".id="+CostantiDB.SOGGETTI_RUOLI+".id_ruolo");
sqlQueryObject.addWhereCondition(CostantiDB.RUOLI+".nome=?");
}
if(filterTipoCredenziali!=null && !"".equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".tipoauth = ?");
if(filterCredenziale!=null && !"".equals(filterCredenziale)) {
if(CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI+".cn_subject", filterCredenziale,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI+".subject", filterCredenziale,
LikeConfig.contains(true,true)));
}
else if(CostantiConfigurazione.CREDENZIALE_BASIC.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_PRINCIPAL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereLikeCondition(CostantiDB.SOGGETTI+".utente",
filterCredenziale, LikeConfig.contains(true,true));
}
}
if(filterCredenzialeIssuer!=null && !"".equals(filterCredenzialeIssuer)) {
if(CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI+".cn_issuer", filterCredenzialeIssuer,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI+".issuer", filterCredenzialeIssuer,
LikeConfig.contains(true,true)));
}
}
}
if(!existsConditions.isEmpty()) {
sqlQueryObject.addWhereCondition(false, existsConditions.toArray(new String[1]));
}
if(filtroProprieta) {
DBUtils.setFiltriProprietaSoggetto(sqlQueryObject, this.driver.tipoDB,
filtroProprietaNome, filtroProprietaValore);
}
sqlQueryObject.setANDLogicOperator(true);
sqlQueryObject.addOrderBy("nome_soggetto");
sqlQueryObject.addOrderBy("tipo_soggetto");
sqlQueryObject.setSortType(true);
sqlQueryObject.setLimit(limit);
sqlQueryObject.setOffset(offset);
queryString = sqlQueryObject.createSQLQuery();
} else {
// senza search
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addSelectAliasField(CostantiDB.SOGGETTI,"id","identificativoSoggetto");
sqlQueryObject.addSelectField("nome_soggetto");
sqlQueryObject.addSelectField("tipo_soggetto");
sqlQueryObject.addSelectAliasField(CostantiDB.SOGGETTI,"descrizione","descrizioneSoggetto");
sqlQueryObject.addSelectField("identificativo_porta");
sqlQueryObject.addSelectField("server");
sqlQueryObject.addSelectField("id_connettore");
sqlQueryObject.addSelectField("codice_ipa");
sqlQueryObject.addSelectField("tipoauth");
if(filterSoggettoDefault) {
sqlQueryObject.addWhereCondition("is_default = ?");
}
if(this.driver.useSuperUser && superuser!=null && (!superuser.equals("")))
sqlQueryObject.addWhereCondition("superuser = ?");
if(tipoSoggetto!=null)
sqlQueryObject.addWhereCondition("tipo_soggetto=?");
if(tipoSoggetto==null && tipoSoggettiProtocollo!=null && tipoSoggettiProtocollo.size()>0) {
sqlQueryObject.addWhereINCondition("tipo_soggetto", true, tipoSoggettiProtocollo.toArray(new String[1]));
}
if(pddTipologia!=null) {
if(PddTipologia.ESTERNO.equals(pddTipologia)) {
sqlQueryObject.addWhereCondition(sqlQueryObjectPdd.createSQLConditions());
}
else {
sqlQueryObject.addFromTable(CostantiDB.PDD);
sqlQueryObject.addWhereCondition(true,CostantiDB.PDD+".nome="+CostantiDB.SOGGETTI+".server",CostantiDB.PDD+".tipo=?");
}
}
if(filterRuolo!=null && !"".equals(filterRuolo)) {
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI_RUOLI);
sqlQueryObject.addFromTable(CostantiDB.RUOLI);
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".id="+CostantiDB.SOGGETTI_RUOLI+".id_soggetto");
sqlQueryObject.addWhereCondition(CostantiDB.RUOLI+".id="+CostantiDB.SOGGETTI_RUOLI+".id_ruolo");
sqlQueryObject.addWhereCondition(CostantiDB.RUOLI+".nome=?");
}
if(filterTipoCredenziali!=null && !"".equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".tipoauth = ?");
if(filterCredenziale!=null && !"".equals(filterCredenziale)) {
if(CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI+".cn_subject", filterCredenziale,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI+".subject", filterCredenziale,
LikeConfig.contains(true,true)));
}
else if(CostantiConfigurazione.CREDENZIALE_BASIC.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_PRINCIPAL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereLikeCondition(CostantiDB.SOGGETTI+".utente",
filterCredenziale, LikeConfig.contains(true,true));
}
}
if(filterCredenzialeIssuer!=null && !"".equals(filterCredenzialeIssuer)) {
if(CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI+".cn_issuer", filterCredenzialeIssuer,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI+".issuer", filterCredenzialeIssuer,
LikeConfig.contains(true,true)));
}
}
}
if(!existsConditions.isEmpty()) {
sqlQueryObject.addWhereCondition(false, existsConditions.toArray(new String[1]));
}
if(filtroProprieta) {
DBUtils.setFiltriProprietaSoggetto(sqlQueryObject, this.driver.tipoDB,
filtroProprietaNome, filtroProprietaValore);
}
sqlQueryObject.setANDLogicOperator(true);
sqlQueryObject.addOrderBy("nome_soggetto");
sqlQueryObject.addOrderBy("tipo_soggetto");
sqlQueryObject.setSortType(true);
sqlQueryObject.setLimit(limit);
sqlQueryObject.setOffset(offset);
queryString = sqlQueryObject.createSQLQuery();
}
stmt = con.prepareStatement(queryString);
index = 1;
if(filterSoggettoDefault) {
stmt.setInt(index++, 1);
}
if(this.driver.useSuperUser && superuser!=null && (!superuser.equals(""))){
stmt.setString(index++, superuser);
}
if (!search.equals("")) {
if(tipoSoggetto!=null){
stmt.setString(index++, tipoSoggetto);
}
}else{
if(tipoSoggetto!=null)
stmt.setString(index++, tipoSoggetto);
}
if(pddTipologia!=null) {
stmt.setString(index++, pddTipologia.toString());
}
if(filterRuolo!=null && !"".equals(filterRuolo)) {
stmt.setString(index++, filterRuolo);
}
if(filterTipoCredenziali!=null && !"".equals(filterTipoCredenziali)) {
stmt.setString(index++, filterTipoCredenziali);
// if(filterCredenziale!=null && !"".equals(filterCredenziale)) {
// // like
// }
}
if(existsParameters!=null && !existsParameters.isEmpty()) {
for (Object object : existsParameters) {
if(object instanceof String) {
stmt.setString(index++, (String) object);
}
else {
stmt.setInt(index++, (Integer) object);
}
}
}
risultato = stmt.executeQuery();
Soggetto sog;
while (risultato.next()) {
sog = new Soggetto();
sog.setId(risultato.getLong("identificativoSoggetto"));
sog.setNome(risultato.getString("nome_soggetto"));
sog.setTipo(risultato.getString("tipo_soggetto"));
sog.setDescrizione(risultato.getString("descrizioneSoggetto"));
sog.setIdentificativoPorta(risultato.getString("identificativo_porta"));
sog.setPortaDominio(risultato.getString("server"));
sog.setCodiceIpa(risultato.getString("codice_ipa"));
long idConnettore = risultato.getLong("id_connettore");
sog.setConnettore(this.driver.getConnettore(idConnettore, con));
String tipoAuth = risultato.getString("tipoauth");
if(tipoAuth != null && !tipoAuth.equals("")){
CredenzialiSoggetto credenziali = new CredenzialiSoggetto();
credenziali.setTipo(DriverRegistroServiziDB_LIB.getEnumCredenzialeTipo(tipoAuth));
sog.addCredenziali( credenziali );
}
lista.add(sog);
}
return lista;
} catch (Exception qe) {
error = true;
throw new DriverRegistroServiziException("[DriverRegistroServiziDB::" + nomeMetodo + "] Errore : " + qe.getMessage(),qe);
} finally {
//Chiudo statement and resultset
JDBCUtilities.closeResources(risultato, stmt);
this.driver.closeConnection(error,con);
}
}
protected List<IDSoggetto> idSoggettiRegistroListByTipo(String tipoSoggetto,ISearch ricerca) throws DriverRegistroServiziException{
return idSoggettiRegistroList("", tipoSoggetto, ricerca);
}
protected List<IDSoggetto> idSoggettiRegistroList(String superuser, ISearch ricerca) throws DriverRegistroServiziException {
return idSoggettiRegistroList(superuser, null, ricerca);
}
private List<IDSoggetto> idSoggettiRegistroList(String superuser, String tipoSoggetto, ISearch ricerca) throws DriverRegistroServiziException {
String nomeMetodo = "idSoggettiRegistroList";
int idLista = Liste.SOGGETTI;
int offset;
int limit;
String search;
String queryString;
limit = ricerca.getPageSize(idLista);
offset = ricerca.getIndexIniziale(idLista);
search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));
String filterProtocollo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_PROTOCOLLO);
String filterProtocolli = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_PROTOCOLLI);
List<String> tipoSoggettiProtocollo = null;
try {
tipoSoggettiProtocollo = Filtri.convertToTipiSoggetti(filterProtocollo, filterProtocolli);
}catch(Exception e) {
throw new DriverRegistroServiziException(e.getMessage(),e);
}
String filterDominio = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_DOMINIO);
PddTipologia pddTipologia = null;
if(filterDominio!=null && !"".equals(filterDominio)) {
pddTipologia = PddTipologia.toPddTipologia(filterDominio);
}
this.driver.logDebug("search : " + search);
this.driver.logDebug("filterProtocollo : " + filterProtocollo);
this.driver.logDebug("filterProtocolli : " + filterProtocolli);
Connection con = null;
boolean error = false;
PreparedStatement stmt = null;
ResultSet risultato = null;
ArrayList<IDSoggetto> lista = new ArrayList<>();
if (this.driver.atomica) {
try {
con = this.driver.getConnectionFromDatasource(nomeMetodo);
con.setAutoCommit(false);
} catch (Exception e) {
throw new DriverRegistroServiziException("[DriverRegistroServiziDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);
}
} else
con = this.driver.globalConnection;
this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);
try {
/* === Filtro Dominio === */
ISQLQueryObject sqlQueryObjectPdd = null;
if(pddTipologia!=null && PddTipologia.ESTERNO.equals(pddTipologia)) {
ISQLQueryObject sqlQueryObjectExistsPdd = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectExistsPdd.addSelectField(CostantiDB.PDD+".nome");
sqlQueryObjectExistsPdd.addFromTable(CostantiDB.PDD);
sqlQueryObjectExistsPdd.setANDLogicOperator(true);
sqlQueryObjectExistsPdd.addWhereCondition(CostantiDB.PDD+".nome="+CostantiDB.SOGGETTI+".server");
sqlQueryObjectExistsPdd.addWhereCondition(CostantiDB.PDD+".tipo=?");
sqlQueryObjectPdd = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectPdd.setANDLogicOperator(false);
sqlQueryObjectPdd.addWhereIsNullCondition(CostantiDB.SOGGETTI+".server");
sqlQueryObjectPdd.addWhereExistsCondition(false, sqlQueryObjectExistsPdd);
}
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addSelectCountField("*", "cont");
// creazione sqlQueryObject
impostaFiltriRicercaSqlQueryObjectIdSoggettiList(superuser, tipoSoggetto, search, tipoSoggettiProtocollo, sqlQueryObject, pddTipologia, sqlQueryObjectPdd);
sqlQueryObject.setANDLogicOperator(true);
queryString = sqlQueryObject.createSQLQuery();
stmt = con.prepareStatement(queryString);
// setParameters
setParametersIdSoggettiList(superuser, tipoSoggetto, search, pddTipologia, stmt);
risultato = stmt.executeQuery();
if (risultato.next())
ricerca.setNumEntries(idLista,risultato.getInt(1));
risultato.close();
stmt.close();
// ricavo le entries
if (limit == 0) // con limit
limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addSelectField("nome_soggetto");
sqlQueryObject.addSelectField("tipo_soggetto");
// creazione sqlQueryObject
impostaFiltriRicercaSqlQueryObjectIdSoggettiList(superuser, tipoSoggetto, search, tipoSoggettiProtocollo, sqlQueryObject, pddTipologia, sqlQueryObjectPdd);
sqlQueryObject.setANDLogicOperator(true);
sqlQueryObject.addOrderBy("nome_soggetto");
sqlQueryObject.addOrderBy("tipo_soggetto");
sqlQueryObject.setSortType(true);
sqlQueryObject.setLimit(limit);
sqlQueryObject.setOffset(offset);
queryString = sqlQueryObject.createSQLQuery();
stmt = con.prepareStatement(queryString);
// setParameters
setParametersIdSoggettiList(superuser, tipoSoggetto, search, pddTipologia, stmt);
risultato = stmt.executeQuery();
IDSoggetto sog;
while (risultato.next()) {
sog = new IDSoggetto();
sog.setNome(risultato.getString("nome_soggetto"));
sog.setTipo(risultato.getString("tipo_soggetto"));
lista.add(sog);
}
return lista;
} catch (Exception qe) {
error = true;
throw new DriverRegistroServiziException("[DriverRegistroServiziDB::" + nomeMetodo + "] Errore : " + qe.getMessage(),qe);
} finally {
//Chiudo statement and resultset
JDBCUtilities.closeResources(risultato, stmt);
this.driver.closeConnection(error,con);
}
}
private void setParametersIdSoggettiList(String superuser, String tipoSoggetto, String search, PddTipologia pddTipologia, PreparedStatement stmt) throws SQLException {
int index = 1;
// superuser
if(this.driver.useSuperUser && superuser!=null && (!superuser.equals(""))){
stmt.setString(index++, superuser);
}
// tipoSoggettiProtocollo in like
// pddTipologia
if(pddTipologia!=null && !PddTipologia.ESTERNO.equals(pddTipologia)) {
stmt.setString(index++, pddTipologia.toString());
}
// tipoSoggetto
if (!search.equals("")) {
if(tipoSoggetto!=null){
stmt.setString(index, tipoSoggetto); // index++ eliminato per segnalazione sonar
}
}else{
if(tipoSoggetto!=null)
stmt.setString(index, tipoSoggetto); // index++ eliminato per segnalazione sonar
}
}
private void impostaFiltriRicercaSqlQueryObjectIdSoggettiList(String superuser, String tipoSoggetto, String search, List<String> tipoSoggettiProtocollo,
ISQLQueryObject sqlQueryObject, PddTipologia pddTipologia, ISQLQueryObject sqlQueryObjectPdd) throws SQLQueryObjectException {
// superuser
if(this.driver.useSuperUser && superuser!=null && (!superuser.equals("")))
sqlQueryObject.addWhereCondition("superuser = ?");
// tipoSoggettiProtocollo
if(tipoSoggetto==null && tipoSoggettiProtocollo!=null && !tipoSoggettiProtocollo.isEmpty()) {
sqlQueryObject.addWhereINCondition("tipo_soggetto", true, tipoSoggettiProtocollo.toArray(new String[1]));
}
// pddTipologia
if(pddTipologia!=null) {
if(PddTipologia.ESTERNO.equals(pddTipologia)) {
sqlQueryObject.addWhereCondition(sqlQueryObjectPdd.createSQLConditions());
}
else {
sqlQueryObject.addFromTable(CostantiDB.PDD);
sqlQueryObject.addWhereCondition(true,CostantiDB.PDD+".nome="+CostantiDB.SOGGETTI+".server",CostantiDB.PDD+".tipo=?");
}
}
// tipoSoggetto
if (!search.equals("")) {
//query con search
if(tipoSoggetto!=null){
sqlQueryObject.addWhereCondition("tipo_soggetto=?");
sqlQueryObject.addWhereLikeCondition("nome_soggetto", search, true, true);
}
else{
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition("tipo_soggetto", search, true, true),
sqlQueryObject.getWhereLikeCondition("nome_soggetto", search, true, true));
}
} else {
if(tipoSoggetto!=null)
sqlQueryObject.addWhereCondition("tipo_soggetto=?");
}
}
}