DriverRegistroServiziDB_accordiFindAllDriver.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.Timestamp;
import java.util.ArrayList;
import java.util.List;
import org.openspcoop2.core.commons.DBUtils;
import org.openspcoop2.core.commons.Filtri;
import org.openspcoop2.core.constants.CostantiDB;
import org.openspcoop2.core.constants.ProprietariProtocolProperty;
import org.openspcoop2.core.id.IDAccordo;
import org.openspcoop2.core.id.IDAccordoAzione;
import org.openspcoop2.core.id.IDPortType;
import org.openspcoop2.core.id.IDPortTypeAzione;
import org.openspcoop2.core.id.IDResource;
import org.openspcoop2.core.id.IDSoggetto;
import org.openspcoop2.core.registry.driver.DriverRegistroServiziException;
import org.openspcoop2.core.registry.driver.DriverRegistroServiziNotFound;
import org.openspcoop2.core.registry.driver.FiltroRicercaAccordi;
import org.openspcoop2.core.registry.driver.FiltroRicercaAzioni;
import org.openspcoop2.core.registry.driver.FiltroRicercaOperations;
import org.openspcoop2.core.registry.driver.FiltroRicercaPortTypes;
import org.openspcoop2.core.registry.driver.FiltroRicercaResources;
import org.openspcoop2.utils.jdbc.JDBCUtilities;
import org.openspcoop2.utils.sql.ISQLQueryObject;
import org.openspcoop2.utils.sql.SQLObjectFactory;
/**
* DriverRegistroServiziDB_accordiFindAllDriver
*
*
* @author Sandra Giangrandi (sandra@link.it)
* @author Stefano Corallo (corallo@link.it)
* @author $Author$
* @version $Rev$, $Date$
*/
public class DriverRegistroServiziDB_accordiFindAllDriver {
private DriverRegistroServiziDB driver = null;
private DriverRegistroServiziDB_protocolPropertiesDriver protocolPropertiesDriver = null;
protected DriverRegistroServiziDB_accordiFindAllDriver(DriverRegistroServiziDB driver) {
this.driver = driver;
this.protocolPropertiesDriver = new DriverRegistroServiziDB_protocolPropertiesDriver(driver);
}
protected List<IDAccordo> getAllIdAccordiServizioParteComune(FiltroRicercaAccordi filtroRicerca) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
List<IDAccordo> list = new ArrayList<IDAccordo>();
_fillAllIdAccordiServizioParteComuneEngine("getAllIdAccordiServizioParteComune", filtroRicerca, null, null, null, null, list);
return list;
}
protected List<IDPortType> getAllIdPortType(FiltroRicercaPortTypes filtroRicerca) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
List<IDPortType> list = new ArrayList<IDPortType>();
_fillAllIdAccordiServizioParteComuneEngine("getAllIdPortType", filtroRicerca, filtroRicerca, null, null, null, list);
return list;
}
protected List<IDPortTypeAzione> getAllIdAzionePortType(FiltroRicercaOperations filtroRicerca) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
List<IDPortTypeAzione> list = new ArrayList<IDPortTypeAzione>();
_fillAllIdAccordiServizioParteComuneEngine("getAllIdAzionePortType", filtroRicerca, null, filtroRicerca, null, null, list);
return list;
}
protected List<IDAccordoAzione> getAllIdAzioneAccordo(FiltroRicercaAzioni filtroRicerca) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
List<IDAccordoAzione> list = new ArrayList<IDAccordoAzione>();
_fillAllIdAccordiServizioParteComuneEngine("getAllIdAzioneAccordo", filtroRicerca, null, null, filtroRicerca, null, list);
return list;
}
protected List<IDResource> getAllIdResource(FiltroRicercaResources filtroRicerca) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
List<IDResource> list = new ArrayList<IDResource>();
_fillAllIdAccordiServizioParteComuneEngine("getAllIdResource", filtroRicerca, null, null, null, filtroRicerca, list);
return list;
}
@SuppressWarnings("unchecked")
private <T> void _fillAllIdAccordiServizioParteComuneEngine(String nomeMetodo,
FiltroRicercaAccordi filtroRicercaBase,
FiltroRicercaPortTypes filtroPT, FiltroRicercaOperations filtroOP, FiltroRicercaAzioni filtroAZ,
FiltroRicercaResources filtroResource,
List<T> listReturn) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
Connection con = null;
PreparedStatement stm = null;
ResultSet rs = null;
this.driver.logDebug(nomeMetodo+"...");
if(listReturn==null){
throw new DriverRegistroServiziException("Lista per collezionare i risultati non definita");
}
try {
this.driver.logDebug("operazione atomica = " + this.driver.atomica);
// prendo la connessione dal pool
if (this.driver.atomica)
con = this.driver.getConnectionFromDatasource(nomeMetodo);
else
con = this.driver.globalConnection;
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
List<String> tipoSoggettiProtocollo = null;
try {
if(filtroRicercaBase!=null && (filtroRicercaBase.getProtocollo()!=null || (filtroRicercaBase.getProtocolli()!=null && !filtroRicercaBase.getProtocolli().isEmpty()))){
tipoSoggettiProtocollo = Filtri.convertToTipiSoggetti(filtroRicercaBase.getProtocollo(), Filtri.convertToString(filtroRicercaBase.getProtocolli()));
}
}catch(Exception e) {
throw new DriverRegistroServiziException(e.getMessage(),e);
}
boolean searchByTipoSoggetto = (tipoSoggettiProtocollo!=null && tipoSoggettiProtocollo.size()>0);
// from
sqlQueryObject.addFromTable(CostantiDB.ACCORDI);
if(filtroRicercaBase!=null){
if( searchByTipoSoggetto || filtroRicercaBase.getTipoSoggettoReferente()!=null || filtroRicercaBase.getNomeSoggettoReferente()!=null){
sqlQueryObject.addFromTable(this.driver.tabellaSoggetti);
}
}
if(filtroPT!=null){
sqlQueryObject.addFromTable(CostantiDB.PORT_TYPE);
sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".id="+CostantiDB.PORT_TYPE+".id_accordo");
}
if(filtroOP!=null){
sqlQueryObject.addFromTable(CostantiDB.PORT_TYPE);
sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".id="+CostantiDB.PORT_TYPE+".id_accordo");
sqlQueryObject.addFromTable(CostantiDB.PORT_TYPE_AZIONI);
sqlQueryObject.addWhereCondition(CostantiDB.PORT_TYPE+".id="+CostantiDB.PORT_TYPE_AZIONI+".id_port_type");
}
if(filtroAZ!=null){
sqlQueryObject.addFromTable(CostantiDB.ACCORDI_AZIONI);
sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".id="+CostantiDB.ACCORDI_AZIONI+".id_accordo");
}
if(filtroResource!=null){
sqlQueryObject.addFromTable(CostantiDB.API_RESOURCES);
sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".id="+CostantiDB.API_RESOURCES+".id_accordo");
}
if(filtroRicercaBase!=null){
if(filtroRicercaBase.getIdGruppo()!=null && filtroRicercaBase.getIdGruppo().getNome()!=null) {
sqlQueryObject.addFromTable(CostantiDB.GRUPPI);
sqlQueryObject.addFromTable(CostantiDB.ACCORDI_GRUPPI);
sqlQueryObject.addWhereCondition(CostantiDB.GRUPPI+".id="+CostantiDB.ACCORDI_GRUPPI+".id_gruppo");
sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".id="+CostantiDB.ACCORDI_GRUPPI+".id_accordo");
}
}
// select field
sqlQueryObject.addSelectAliasField(CostantiDB.ACCORDI,"nome","nomeAccordo");
sqlQueryObject.addSelectField(CostantiDB.ACCORDI,"versione");
sqlQueryObject.addSelectField(CostantiDB.ACCORDI,"id_referente");
if(filtroPT!=null){
sqlQueryObject.addSelectAliasField(CostantiDB.PORT_TYPE,"nome","nomePT");
}
if(filtroOP!=null){
sqlQueryObject.addSelectAliasField(CostantiDB.PORT_TYPE,"nome","nomePT");
sqlQueryObject.addSelectAliasField(CostantiDB.PORT_TYPE_AZIONI,"nome","nomeOP");
}
if(filtroAZ!=null){
sqlQueryObject.addSelectAliasField(CostantiDB.ACCORDI_AZIONI,"nome","nomeAZ");
}
if(filtroResource!=null){
sqlQueryObject.addSelectAliasField(CostantiDB.API_RESOURCES,"nome","nomeResource");
}
sqlQueryObject.setSelectDistinct(true);
// order
if(filtroRicercaBase!=null && filtroRicercaBase.isOrder()) {
sqlQueryObject.addOrderBy("nomeAccordo");
sqlQueryObject.addOrderBy("versione");
if(searchByTipoSoggetto){
sqlQueryObject.addSelectAliasField(this.driver.tabellaSoggetti,"tipo_soggetto","tipoSoggettoReferente");
sqlQueryObject.addSelectAliasField(this.driver.tabellaSoggetti,"nome_soggetto","nomeSoggettoReferente");
sqlQueryObject.addOrderBy("tipoSoggettoReferente");
sqlQueryObject.addOrderBy("nomeSoggettoReferente");
}
if(filtroPT!=null){
sqlQueryObject.addOrderBy("nomePT");
}
else if(filtroOP!=null){
sqlQueryObject.addOrderBy("nomePT");
sqlQueryObject.addOrderBy("nomeOP");
}
else if(filtroAZ!=null){
sqlQueryObject.addOrderBy("nomeAZ");
}
else if(filtroResource!=null){
sqlQueryObject.addOrderBy("nomeResource");
}
}
if(filtroRicercaBase!=null){
// Filtro Base
if(filtroRicercaBase.getMinDate()!=null)
sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".ora_registrazione > ?");
if(filtroRicercaBase.getMaxDate()!=null)
sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".ora_registrazione < ?");
if(filtroRicercaBase.getNomeAccordo()!=null)
sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".nome = ?");
if(filtroRicercaBase.getVersione()!=null)
sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".versione = ?");
if(searchByTipoSoggetto || filtroRicercaBase.getTipoSoggettoReferente()!=null || filtroRicercaBase.getNomeSoggettoReferente()!=null){
sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".id_referente="+this.driver.tabellaSoggetti+".id");
if(filtroRicercaBase.getTipoSoggettoReferente()!=null) {
sqlQueryObject.addWhereCondition(this.driver.tabellaSoggetti+".tipo_soggetto=?");
}
else if(searchByTipoSoggetto) {
sqlQueryObject.addWhereINCondition(this.driver.tabellaSoggetti+".tipo_soggetto", true, tipoSoggettiProtocollo.toArray(new String[1]));
}
if(filtroRicercaBase.getNomeSoggettoReferente()!=null)
sqlQueryObject.addWhereCondition(this.driver.tabellaSoggetti+".nome_soggetto=?");
}
if(filtroRicercaBase.getServiceBinding()!=null)
sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".service_binding = ?");
if(filtroRicercaBase.getIdGruppo()!=null && filtroRicercaBase.getIdGruppo().getNome()!=null) {
sqlQueryObject.addWhereCondition(CostantiDB.GRUPPI+".nome = ?");
}
if( (filtroRicercaBase.getIdAccordoCooperazione()!=null &&
(filtroRicercaBase.getIdAccordoCooperazione().getNome()!=null ||
filtroRicercaBase.getIdAccordoCooperazione().getSoggettoReferente()!=null ||
filtroRicercaBase.getIdAccordoCooperazione().getVersione()!=null)) ){
ISQLQueryObject sqlQueryObjectASComposti = sqlQueryObject.newSQLQueryObject();
sqlQueryObjectASComposti.addFromTable(CostantiDB.ACCORDI_SERVIZI_COMPOSTO);
sqlQueryObjectASComposti.addFromTable(CostantiDB.ACCORDI_COOPERAZIONE);
sqlQueryObjectASComposti.addSelectField(CostantiDB.ACCORDI_SERVIZI_COMPOSTO+".id");
sqlQueryObjectASComposti.setANDLogicOperator(true);
sqlQueryObjectASComposti.addWhereCondition(CostantiDB.ACCORDI+".id="+CostantiDB.ACCORDI_SERVIZI_COMPOSTO+".id_accordo");
sqlQueryObjectASComposti.addWhereCondition(CostantiDB.ACCORDI_COOPERAZIONE+".id="+CostantiDB.ACCORDI_SERVIZI_COMPOSTO+".id_accordo_cooperazione");
if(filtroRicercaBase.getIdAccordoCooperazione().getNome()!=null){
sqlQueryObjectASComposti.addWhereCondition(CostantiDB.ACCORDI_COOPERAZIONE+".nome=?");
}
if(filtroRicercaBase.getIdAccordoCooperazione().getSoggettoReferente()!=null){
sqlQueryObjectASComposti.addWhereCondition(CostantiDB.ACCORDI_COOPERAZIONE+".id_referente=?");
}
if(filtroRicercaBase.getIdAccordoCooperazione().getVersione()!=null){
sqlQueryObjectASComposti.addWhereCondition(CostantiDB.ACCORDI_COOPERAZIONE+".versione=?");
}
sqlQueryObject.addWhereExistsCondition(false, sqlQueryObjectASComposti);
}
else if(filtroRicercaBase.isServizioComposto()!=null){
ISQLQueryObject sqlQueryObjectASComposti = sqlQueryObject.newSQLQueryObject();
sqlQueryObjectASComposti.addFromTable(CostantiDB.ACCORDI_SERVIZI_COMPOSTO);
sqlQueryObjectASComposti.addSelectField("id");
sqlQueryObjectASComposti.setANDLogicOperator(true);
sqlQueryObjectASComposti.addWhereCondition(CostantiDB.ACCORDI+".id="+CostantiDB.ACCORDI_SERVIZI_COMPOSTO+".id_accordo");
sqlQueryObject.addWhereExistsCondition(!filtroRicercaBase.isServizioComposto(), sqlQueryObjectASComposti);
}
this.protocolPropertiesDriver.setProtocolPropertiesForSearch(sqlQueryObject, filtroRicercaBase, CostantiDB.ACCORDI);
}
if(filtroPT!=null){
if(filtroPT.getNomePortType()!=null)
sqlQueryObject.addWhereCondition(CostantiDB.PORT_TYPE+".nome=?");
this.protocolPropertiesDriver.setProtocolPropertiesForSearch(sqlQueryObject, filtroPT, CostantiDB.PORT_TYPE);
}
if(filtroOP!=null){
if(filtroOP.getNomePortType()!=null)
sqlQueryObject.addWhereCondition(CostantiDB.PORT_TYPE+".nome=?");
this.protocolPropertiesDriver.setProtocolPropertiesForSearch(sqlQueryObject, filtroOP, CostantiDB.PORT_TYPE);
if(filtroOP.getNomeAzione()!=null)
sqlQueryObject.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".nome=?");
this.protocolPropertiesDriver.setProtocolPropertiesForSearch(sqlQueryObject, filtroOP, CostantiDB.PORT_TYPE_AZIONI);
}
if(filtroAZ!=null){
if(filtroAZ.getNomeAzione()!=null)
sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI_AZIONI+".nome=?");
this.protocolPropertiesDriver.setProtocolPropertiesForSearch(sqlQueryObject, filtroAZ, CostantiDB.ACCORDI_AZIONI);
}
if(filtroResource!=null){
if(filtroResource.getResourceName()!=null)
sqlQueryObject.addWhereCondition(CostantiDB.API_RESOURCES+".nome=?");
this.protocolPropertiesDriver.setProtocolPropertiesForSearch(sqlQueryObject, filtroResource, CostantiDB.API_RESOURCES);
}
sqlQueryObject.setANDLogicOperator(true);
String sqlQuery = sqlQueryObject.createSQLQuery();
this.driver.logDebug("eseguo query : " + sqlQuery );
stm = con.prepareStatement(sqlQuery);
int indexStmt = 1;
if(filtroRicercaBase!=null){
if(filtroRicercaBase.getMinDate()!=null){
this.driver.logDebug("minDate stmt.setTimestamp("+filtroRicercaBase.getMinDate()+")");
stm.setTimestamp(indexStmt, new Timestamp(filtroRicercaBase.getMinDate().getTime()));
indexStmt++;
}
if(filtroRicercaBase.getMaxDate()!=null){
this.driver.logDebug("maxDate stmt.setTimestamp("+filtroRicercaBase.getMaxDate()+")");
stm.setTimestamp(indexStmt, new Timestamp(filtroRicercaBase.getMaxDate().getTime()));
indexStmt++;
}
if(filtroRicercaBase.getNomeAccordo()!=null){
this.driver.logDebug("nomeAccordo stmt.setString("+filtroRicercaBase.getNomeAccordo()+")");
stm.setString(indexStmt, filtroRicercaBase.getNomeAccordo());
indexStmt++;
}
if(filtroRicercaBase.getVersione()!=null){
this.driver.logDebug("versioneAccordo stmt.setString("+filtroRicercaBase.getVersione()+")");
stm.setInt(indexStmt, filtroRicercaBase.getVersione());
indexStmt++;
}
if(filtroRicercaBase.getTipoSoggettoReferente()!=null || filtroRicercaBase.getNomeSoggettoReferente()!=null){
if(filtroRicercaBase.getTipoSoggettoReferente()!=null){
this.driver.logDebug("tipoSoggettoReferenteAccordo stmt.setString("+filtroRicercaBase.getTipoSoggettoReferente()+")");
stm.setString(indexStmt, filtroRicercaBase.getTipoSoggettoReferente());
indexStmt++;
}
if(filtroRicercaBase.getNomeSoggettoReferente()!=null){
this.driver.logDebug("nomeSoggettoReferenteAccordo stmt.setString("+filtroRicercaBase.getNomeSoggettoReferente()+")");
stm.setString(indexStmt, filtroRicercaBase.getNomeSoggettoReferente());
indexStmt++;
}
}
if(filtroRicercaBase.getServiceBinding()!=null) {
this.driver.logDebug("serviceBinding stmt.setString("+filtroRicercaBase.getServiceBinding().getValue()+")");
stm.setString(indexStmt, filtroRicercaBase.getServiceBinding().getValue());
indexStmt++;
}
if(filtroRicercaBase.getIdGruppo()!=null && filtroRicercaBase.getIdGruppo().getNome()!=null) {
this.driver.logDebug("gruppo stmt.setString("+filtroRicercaBase.getIdGruppo().getNome()+")");
stm.setString(indexStmt, filtroRicercaBase.getIdGruppo().getNome());
indexStmt++;
}
if(filtroRicercaBase.getIdAccordoCooperazione()!=null &&
(filtroRicercaBase.getIdAccordoCooperazione().getNome()!=null ||
filtroRicercaBase.getIdAccordoCooperazione().getSoggettoReferente()!=null ||
filtroRicercaBase.getIdAccordoCooperazione().getVersione()!=null) ){
if(filtroRicercaBase.getIdAccordoCooperazione().getNome()!=null){
this.driver.logDebug("nomeAccordoCooperazione stmt.setString("+filtroRicercaBase.getIdAccordoCooperazione().getNome()+")");
stm.setString(indexStmt, filtroRicercaBase.getIdAccordoCooperazione().getNome());
indexStmt++;
}
if(filtroRicercaBase.getIdAccordoCooperazione().getSoggettoReferente()!=null){
long idReferenteAccordoCooperazione = DBUtils.getIdSoggetto(filtroRicercaBase.getIdAccordoCooperazione().getSoggettoReferente().getNome(),
filtroRicercaBase.getIdAccordoCooperazione().getSoggettoReferente().getTipo(), con, this.driver.tipoDB, this.driver.tabellaSoggetti);
this.driver.logDebug("referenteAccordoCooperazione stmt.setLong("+idReferenteAccordoCooperazione+")");
stm.setLong(indexStmt, idReferenteAccordoCooperazione);
indexStmt++;
}
if(filtroRicercaBase.getIdAccordoCooperazione().getVersione()!=null){
this.driver.logDebug("versioneAccordoCooperazione stmt.setString("+filtroRicercaBase.getIdAccordoCooperazione().getVersione()+")");
stm.setInt(indexStmt, filtroRicercaBase.getIdAccordoCooperazione().getVersione());
indexStmt++;
}
}
this.protocolPropertiesDriver.setProtocolPropertiesForSearch(stm, indexStmt, filtroRicercaBase, ProprietariProtocolProperty.ACCORDO_SERVIZIO_PARTE_COMUNE);
}
if(filtroPT!=null){
if(filtroPT.getNomePortType()!=null){
stm.setString(indexStmt, filtroPT.getNomePortType());
indexStmt++;
}
this.protocolPropertiesDriver.setProtocolPropertiesForSearch(stm, indexStmt, filtroPT, ProprietariProtocolProperty.PORT_TYPE);
}
if(filtroOP!=null){
if(filtroOP.getNomePortType()!=null){
stm.setString(indexStmt, filtroOP.getNomePortType());
indexStmt++;
}
this.protocolPropertiesDriver.setProtocolPropertiesForSearch(stm, indexStmt, filtroOP, ProprietariProtocolProperty.PORT_TYPE);
if(filtroOP.getNomeAzione()!=null){
stm.setString(indexStmt, filtroOP.getNomeAzione());
indexStmt++;
}
this.protocolPropertiesDriver.setProtocolPropertiesForSearch(stm, indexStmt, filtroOP, ProprietariProtocolProperty.OPERATION);
}
if(filtroAZ!=null){
if(filtroAZ.getNomeAzione()!=null){
stm.setString(indexStmt, filtroAZ.getNomeAzione());
indexStmt++;
}
this.protocolPropertiesDriver.setProtocolPropertiesForSearch(stm, indexStmt, filtroAZ, ProprietariProtocolProperty.AZIONE_ACCORDO);
}
if(filtroResource!=null){
if(filtroResource.getResourceName()!=null){
stm.setString(indexStmt, filtroResource.getResourceName());
indexStmt++;
}
this.protocolPropertiesDriver.setProtocolPropertiesForSearch(stm, indexStmt, filtroResource, ProprietariProtocolProperty.RESOURCE);
}
rs = stm.executeQuery();
while (rs.next()) {
long idReferente = rs.getLong("id_referente");
IDSoggetto idSoggettoReferente = null;
Exception excp = null;
if(idReferente>0){
try {
idSoggettoReferente = this.driver.getIdSoggetto(idReferente,con);
if(idSoggettoReferente==null){
throw new DriverRegistroServiziNotFound ("non esiste");
}
}catch(DriverRegistroServiziNotFound notFound) {
try{
excp = new Exception("Soggetto referente ["+idReferente+"] presente nell'accordo ["+rs.getString("nome")+"] (versione ["+rs.getInt("versione")+"]) non presente?");
}finally{
try{
if(rs!=null){
rs.close();
rs = null;
}
}catch (Exception e) {
// close
}
try{
if(stm!=null){
stm.close();
stm=null;
}
}catch (Exception e) {
// close
}
}
}
}
if(excp!=null) {
throw excp;
}
if(rs==null) {
throw new Exception("Ricerca referente non riuscita");
}
IDAccordo idAccordo = this.driver.idAccordoFactory.getIDAccordoFromValues(rs.getString("nomeAccordo"),idSoggettoReferente,rs.getInt("versione"));
if(filtroPT!=null){
IDPortType idPT = new IDPortType();
idPT.setIdAccordo(idAccordo);
idPT.setNome(rs.getString("nomePT"));
listReturn.add((T) idPT);
}
else if(filtroOP!=null){
IDPortTypeAzione idAzione = new IDPortTypeAzione();
IDPortType idPT = new IDPortType();
idPT.setIdAccordo(idAccordo);
idPT.setNome(rs.getString("nomePT"));
idAzione.setIdPortType(idPT);
idAzione.setNome(rs.getString("nomeOP"));
listReturn.add((T) idAzione);
}
else if(filtroAZ!=null){
IDAccordoAzione idAzione = new IDAccordoAzione();
idAzione.setIdAccordo(idAccordo);
idAzione.setNome(rs.getString("nomeAZ"));
listReturn.add((T) idAzione);
}
else if(filtroResource!=null){
IDResource idResource = new IDResource();
idResource.setIdAccordo(idAccordo);
idResource.setNome(rs.getString("nomeResource"));
listReturn.add((T) idResource);
}
else{
listReturn.add((T) idAccordo);
}
}
if(listReturn.size()<=0){
String msgFiltro = "Elementi non trovati che rispettano il filtro di ricerca selezionato: ";
if(filtroPT!=null){
throw new DriverRegistroServiziNotFound(msgFiltro+filtroPT.toString());
}
else if(filtroOP!=null){
throw new DriverRegistroServiziNotFound(msgFiltro+filtroOP.toString());
}
else if(filtroAZ!=null){
throw new DriverRegistroServiziNotFound(msgFiltro+filtroAZ.toString());
}
else if(filtroResource!=null){
throw new DriverRegistroServiziNotFound(msgFiltro+filtroResource.toString());
}
else if(filtroRicercaBase!=null){
throw new DriverRegistroServiziNotFound(msgFiltro+filtroRicercaBase.toString());
}
else{
throw new DriverRegistroServiziNotFound("Elementi non trovati");
}
}
}catch(DriverRegistroServiziNotFound de){
throw de;
}
catch(Exception e){
throw new DriverRegistroServiziException(nomeMetodo+" error",e);
} finally {
JDBCUtilities.closeResources(rs, stm);
this.driver.closeConnection(con);
}
}
}