DriverConfigurazioneDB.java

  1. /*
  2.  * GovWay - A customizable API Gateway
  3.  * https://govway.org
  4.  *
  5.  * Copyright (c) 2005-2025 Link.it srl (https://link.it).
  6.  *
  7.  * This program is free software: you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License version 3, as published by
  9.  * the Free Software Foundation.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  *
  19.  */


  20. package org.openspcoop2.core.config.driver.db;

  21. import java.sql.Connection;
  22. import java.util.List;
  23. import java.util.Map;

  24. import javax.sql.DataSource;

  25. import org.openspcoop2.core.allarmi.Allarme;
  26. import org.openspcoop2.core.allarmi.constants.StatoAllarme;
  27. import org.openspcoop2.core.byok.IDriverBYOK;
  28. import org.openspcoop2.core.byok.IDriverBYOKConfig;
  29. import org.openspcoop2.core.commons.CoreException;
  30. import org.openspcoop2.core.commons.DBUtils;
  31. import org.openspcoop2.core.commons.ErrorsHandlerCostant;
  32. import org.openspcoop2.core.commons.IDriverWS;
  33. import org.openspcoop2.core.commons.IMonitoraggioRisorsa;
  34. import org.openspcoop2.core.commons.ISearch;
  35. import org.openspcoop2.core.config.AccessoConfigurazione;
  36. import org.openspcoop2.core.config.AccessoDatiAttributeAuthority;
  37. import org.openspcoop2.core.config.AccessoDatiAutenticazione;
  38. import org.openspcoop2.core.config.AccessoDatiAutorizzazione;
  39. import org.openspcoop2.core.config.AccessoDatiConsegnaApplicativi;
  40. import org.openspcoop2.core.config.AccessoDatiGestioneToken;
  41. import org.openspcoop2.core.config.AccessoDatiKeystore;
  42. import org.openspcoop2.core.config.AccessoDatiRichieste;
  43. import org.openspcoop2.core.config.AccessoRegistro;
  44. import org.openspcoop2.core.config.AccessoRegistroRegistro;
  45. import org.openspcoop2.core.config.CanaleConfigurazione;
  46. import org.openspcoop2.core.config.CanaleConfigurazioneNodo;
  47. import org.openspcoop2.core.config.CanaliConfigurazione;
  48. import org.openspcoop2.core.config.Configurazione;
  49. import org.openspcoop2.core.config.ConfigurazioneGestioneErrore;
  50. import org.openspcoop2.core.config.ConfigurazioneUrlInvocazioneRegola;
  51. import org.openspcoop2.core.config.Connettore;
  52. import org.openspcoop2.core.config.CorrelazioneApplicativaElemento;
  53. import org.openspcoop2.core.config.CorrelazioneApplicativaRispostaElemento;
  54. import org.openspcoop2.core.config.GenericProperties;
  55. import org.openspcoop2.core.config.GestioneErrore;
  56. import org.openspcoop2.core.config.MessageSecurityFlowParameter;
  57. import org.openspcoop2.core.config.MtomProcessorFlowParameter;
  58. import org.openspcoop2.core.config.Openspcoop2;
  59. import org.openspcoop2.core.config.PortaApplicativa;
  60. import org.openspcoop2.core.config.PortaApplicativaAutorizzazioneServizioApplicativo;
  61. import org.openspcoop2.core.config.PortaApplicativaAutorizzazioneSoggetto;
  62. import org.openspcoop2.core.config.PortaApplicativaAzione;
  63. import org.openspcoop2.core.config.PortaDelegata;
  64. import org.openspcoop2.core.config.Property;
  65. import org.openspcoop2.core.config.Proprieta;
  66. import org.openspcoop2.core.config.ProprietaOggetto;
  67. import org.openspcoop2.core.config.ProtocolProperty;
  68. import org.openspcoop2.core.config.RegistroPlugin;
  69. import org.openspcoop2.core.config.RegistroPluginArchivio;
  70. import org.openspcoop2.core.config.RegistroPlugins;
  71. import org.openspcoop2.core.config.ResponseCachingConfigurazioneRegola;
  72. import org.openspcoop2.core.config.RoutingTable;
  73. import org.openspcoop2.core.config.RoutingTableDestinazione;
  74. import org.openspcoop2.core.config.ServizioApplicativo;
  75. import org.openspcoop2.core.config.Soggetto;
  76. import org.openspcoop2.core.config.StatoServiziPdd;
  77. import org.openspcoop2.core.config.SystemProperties;
  78. import org.openspcoop2.core.config.TrasformazioneRegola;
  79. import org.openspcoop2.core.config.TrasformazioneRegolaApplicabilitaServizioApplicativo;
  80. import org.openspcoop2.core.config.TrasformazioneRegolaApplicabilitaSoggetto;
  81. import org.openspcoop2.core.config.TrasformazioneRegolaParametro;
  82. import org.openspcoop2.core.config.TrasformazioneRegolaRisposta;
  83. import org.openspcoop2.core.config.constants.CostantiConfigurazione;
  84. import org.openspcoop2.core.config.constants.CredenzialeTipo;
  85. import org.openspcoop2.core.config.constants.PluginSorgenteArchivio;
  86. import org.openspcoop2.core.config.constants.RicercaTipologiaErogazione;
  87. import org.openspcoop2.core.config.constants.RicercaTipologiaFruizione;
  88. import org.openspcoop2.core.config.constants.TipologiaErogazione;
  89. import org.openspcoop2.core.config.driver.BeanUtilities;
  90. import org.openspcoop2.core.config.driver.DriverConfigurazioneException;
  91. import org.openspcoop2.core.config.driver.DriverConfigurazioneNotFound;
  92. import org.openspcoop2.core.config.driver.FiltroRicercaPorteApplicative;
  93. import org.openspcoop2.core.config.driver.FiltroRicercaPorteDelegate;
  94. import org.openspcoop2.core.config.driver.FiltroRicercaServiziApplicativi;
  95. import org.openspcoop2.core.config.driver.FiltroRicercaSoggetti;
  96. import org.openspcoop2.core.config.driver.IDriverConfigurazioneCRUD;
  97. import org.openspcoop2.core.config.driver.IDriverConfigurazioneGet;
  98. import org.openspcoop2.core.config.driver.TipologiaServizioApplicativo;
  99. import org.openspcoop2.core.constants.Costanti;
  100. import org.openspcoop2.core.constants.CostantiDB;
  101. import org.openspcoop2.core.constants.ProprietariProtocolProperty;
  102. import org.openspcoop2.core.id.IDConnettore;
  103. import org.openspcoop2.core.id.IDPortaApplicativa;
  104. import org.openspcoop2.core.id.IDPortaDelegata;
  105. import org.openspcoop2.core.id.IDServizio;
  106. import org.openspcoop2.core.id.IDServizioApplicativo;
  107. import org.openspcoop2.core.id.IDSoggetto;
  108. import org.openspcoop2.core.mapping.MappingErogazionePortaApplicativa;
  109. import org.openspcoop2.core.mapping.MappingFruizionePortaDelegata;
  110. import org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject;
  111. import org.openspcoop2.utils.LoggerWrapperFactory;
  112. import org.openspcoop2.utils.UtilsAlreadyExistsException;
  113. import org.openspcoop2.utils.UtilsException;
  114. import org.openspcoop2.utils.certificate.CertificateInfo;
  115. import org.openspcoop2.utils.crypt.CryptConfig;
  116. import org.openspcoop2.utils.datasource.DataSourceFactory;
  117. import org.openspcoop2.utils.datasource.DataSourceParams;
  118. import org.openspcoop2.utils.jdbc.JDBCUtilities;
  119. import org.openspcoop2.utils.resources.GestoreJNDI;
  120. import org.openspcoop2.utils.sql.ISQLQueryObject;
  121. import org.slf4j.Logger;

  122. /**
  123.  * Contiene l'implementazione dell'interfaccia {@link CostantiConfigurazione}.
  124.  * Viene definito un 'reader' della configurazione dell'infrastruttura
  125.  * OpenSPCoop.
  126.  * <p>
  127.  * Sono forniti metodi per la lettura della configurazione la quale contiene i
  128.  * seguenti soggetti :
  129.  * <ul>
  130.  * <li>Porte Delegate
  131.  * <li>Porte Applicative
  132.  * <li>SIL-Mittenti
  133.  * <li>Porta di Dominio
  134.  * </ul>get
  135.  *
  136.  * @author Stefano Corallo (corallo@link.it)
  137.  * @author Sandra Giangrandi (sandra@link.it)
  138.  * @author Lorenzo Nardi (nardi@link.it)
  139.  *
  140.  * @author $Author$
  141.  * @version $Rev$, $Date$
  142.  */

  143. public class DriverConfigurazioneDB extends BeanUtilities
  144. implements IDriverConfigurazioneGet, IDriverConfigurazioneCRUD, IDriverWS, IMonitoraggioRisorsa, IDriverBYOKConfig {

  145.     /* ******** F I E L D S P R I V A T I ******** */

  146.     /** Indicazione di una corretta creazione */
  147.     public boolean create = false;

  148.     // Datasource per la connessione al DB
  149.     private DataSource datasource = null;

  150.     // Connection passata al momento della creazione dell'oggetto
  151.     protected Connection globalConnection = null;
  152.     // Variabile di controllo del tipo di operazione da effettuare
  153.     // l'autoCommit viene gestito internamente a questa classe
  154.     protected boolean atomica = true;
  155.     public boolean isAtomica() {
  156.         return this.atomica;
  157.     }

  158.     private static Logger checkLogger = null;
  159.     private static boolean checkIsClosed = true;
  160.     private static boolean checkAutocommit = true;
  161.     public static boolean isCheckIsClosed() {
  162.         return checkIsClosed;
  163.     }
  164.     public static void setCheckIsClosed(boolean checkIsClosed) {
  165.         DriverConfigurazioneDB.checkIsClosed = checkIsClosed;
  166.     }
  167.     public static boolean isCheckAutocommit() {
  168.         return checkAutocommit;
  169.     }
  170.     public static void setCheckAutocommit(boolean checkAutocommit) {
  171.         DriverConfigurazioneDB.checkAutocommit = checkAutocommit;
  172.     }
  173.     public static Logger getCheckLogger() {
  174.         return checkLogger;
  175.     }
  176.     public static void setCheckLogger(Logger checkLogger) {
  177.         DriverConfigurazioneDB.checkLogger = checkLogger;
  178.     }
  179.    
  180.     /** Logger utilizzato per debug. */
  181.     protected org.slf4j.Logger log = null;
  182.     void logDebug(String msg) {
  183.         if(this.log!=null) {
  184.             this.log.debug(msg);
  185.         }
  186.     }
  187.     void logDebug(String msg, Exception e) {
  188.         if(this.log!=null) {
  189.             this.log.debug(msg,e);
  190.         }
  191.     }
  192.     void logInfo(String msg) {
  193.         if(this.log!=null) {
  194.             this.log.info(msg);
  195.         }
  196.     }
  197.     void logError(String msg) {
  198.         if(this.log!=null) {
  199.             this.log.error(msg);
  200.         }
  201.     }
  202.     void logError(String msg, Exception e) {
  203.         if(this.log!=null) {
  204.             this.log.error(msg,e);
  205.         }
  206.     }

  207.     // Tipo database passato al momento della creazione dell'oggetto
  208.     protected String tipoDB = null;
  209.     public String getTipoDB() {
  210.         return this.tipoDB;
  211.     }

  212.     /** Tabella soggetti */
  213.     protected String tabellaSoggetti = CostantiDB.SOGGETTI;
  214.    
  215.     protected boolean useSuperUser = true;
  216.     public boolean isUseSuperUser() {
  217.         return this.useSuperUser;
  218.     }
  219.     public void setUseSuperUser(boolean useSuperUser) {
  220.         this.useSuperUser = useSuperUser;
  221.     }

  222.     // Driver
  223.    
  224.     private DriverConfigurazioneDBSoggetti soggettiDriver = null;
  225.     private DriverConfigurazioneDBSoggettiSearch soggettiSearchDriver = null;
  226.    
  227.     private DriverConfigurazioneDB_connettoriDriver connettoriDriver = null;
  228.    
  229.     private DriverConfigurazioneDB_porteDelegateDriver porteDelegateDriver = null;
  230.     private DriverConfigurazioneDB_porteDelegateSearchDriver porteDelegateSearchDriver = null;
  231.     private DriverConfigurazioneDB_porteApplicativeDriver porteApplicativeDriver = null;
  232.     private DriverConfigurazioneDB_porteApplicativeSearchDriver porteApplicativeSearchDriver = null;
  233.     private DriverConfigurazioneDB_porteTrasformazioniDriver porteTrasformazioniDriver = null;
  234.     private DriverConfigurazioneDB_porteDriver porteDriver = null;
  235.    
  236.     private DriverConfigurazioneDB_serviziApplicativiDriver serviziApplicativiDriver = null;
  237.     private DriverConfigurazioneDBServiziApplicativiSearch serviziApplicativiSearchDriver = null;
  238.    
  239.     private DriverConfigurazioneDB_protocolPropertiesDriver protocolPropertiesDriver = null;
  240.    
  241.     private DriverConfigurazioneDB_routingTableDriver routingTableDriver = null;
  242.     private DriverConfigurazioneDB_gestioneErroreDriver gestioneErroreDriver = null;
  243.     private DriverConfigurazioneDB_genericPropertiesDriver genericPropertiesDriver = null;
  244.     private DriverConfigurazioneDB_configDriver configDriver = null;
  245.     private DriverConfigurazioneDB_configSearchDriver configSearchDriver = null;
  246.    
  247.     private DriverConfigurazioneDB_pluginsDriver pluginsDriver = null;
  248.    
  249.     private DriverConfigurazioneDB_allarmiDriver allarmiDriver = null;
  250.    
  251.     private DriverConfigurazioneDBUtils utilsDriver = null;
  252.    
  253.    
  254.    
  255.    
  256.    
  257.     /* ******** COSTRUTTORI e METODI DI RELOAD ******** */

  258.     public DriverConfigurazioneDB() {
  259.        
  260.         this.soggettiDriver = new DriverConfigurazioneDBSoggetti(this);
  261.         this.soggettiSearchDriver = new DriverConfigurazioneDBSoggettiSearch(this);
  262.        
  263.         this.connettoriDriver = new DriverConfigurazioneDB_connettoriDriver(this);
  264.        
  265.         this.porteDelegateDriver = new DriverConfigurazioneDB_porteDelegateDriver(this);
  266.         this.porteDelegateSearchDriver = new DriverConfigurazioneDB_porteDelegateSearchDriver(this);
  267.         this.porteApplicativeDriver = new DriverConfigurazioneDB_porteApplicativeDriver(this);
  268.         this.porteApplicativeSearchDriver = new DriverConfigurazioneDB_porteApplicativeSearchDriver(this);
  269.         this.porteTrasformazioniDriver = new DriverConfigurazioneDB_porteTrasformazioniDriver(this);
  270.         this.porteDriver = new DriverConfigurazioneDB_porteDriver(this);
  271.        
  272.         this.serviziApplicativiDriver = new DriverConfigurazioneDB_serviziApplicativiDriver(this);
  273.         this.serviziApplicativiSearchDriver = new DriverConfigurazioneDBServiziApplicativiSearch(this);
  274.        
  275.         this.protocolPropertiesDriver = new DriverConfigurazioneDB_protocolPropertiesDriver(this);
  276.        
  277.         this.routingTableDriver = new DriverConfigurazioneDB_routingTableDriver(this);
  278.         this.gestioneErroreDriver = new DriverConfigurazioneDB_gestioneErroreDriver(this);
  279.         this.genericPropertiesDriver = new DriverConfigurazioneDB_genericPropertiesDriver(this);
  280.         this.configDriver = new DriverConfigurazioneDB_configDriver(this);
  281.         this.configSearchDriver = new DriverConfigurazioneDB_configSearchDriver(this);
  282.        
  283.         this.pluginsDriver = new DriverConfigurazioneDB_pluginsDriver(this);
  284.        
  285.         this.allarmiDriver = new DriverConfigurazioneDB_allarmiDriver(this);
  286.        
  287.         this.utilsDriver = new DriverConfigurazioneDBUtils(this);
  288.        
  289.     }
  290.     /**
  291.      * Viene chiamato in causa per istanziare il contesto di unmarshall
  292.      * all'istanziazione dell'oggetto, ed inoltre viene effettuato l'unmarshall
  293.      * del file di configurazione.
  294.      *
  295.      * @param nomeDataSource
  296.      *                Nome del Datasource da utilizzare per prelevare le
  297.      *                connessioni
  298.      * @param context
  299.      *                Contesto di lookup del Datasource
  300.      *
  301.      */
  302.     public DriverConfigurazioneDB(String nomeDataSource, java.util.Properties context,String tipoDB) {
  303.         this(nomeDataSource,context,null,tipoDB);
  304.     }
  305.     public DriverConfigurazioneDB(String nomeDataSource, java.util.Properties context,Logger alog,String tipoDB) {
  306.         this(nomeDataSource,context,alog,tipoDB,false);
  307.     }
  308.     public DriverConfigurazioneDB(String nomeDataSource, java.util.Properties context,Logger alog,String tipoDB, boolean tabellaSoggettiPDD) {
  309.         initDriverConfigurazioneDB(nomeDataSource, context, alog, tipoDB, tabellaSoggettiPDD, false, false);
  310.     }
  311.     public DriverConfigurazioneDB(String nomeDataSource, java.util.Properties context,Logger alog,String tipoDB, boolean tabellaSoggettiPDD,
  312.             boolean useOp2UtilsDatasource, boolean bindJMX) {
  313.         initDriverConfigurazioneDB(nomeDataSource, context, alog, tipoDB, tabellaSoggettiPDD, useOp2UtilsDatasource, bindJMX);
  314.     }

  315.     public void initDriverConfigurazioneDB(String nomeDataSource, java.util.Properties context,Logger alog,String tipoDB,
  316.             boolean tabellaSoggettiPDD, boolean useOp2UtilsDatasource, boolean bindJMX) {
  317.         try {
  318.             if(alog==null)
  319.                 this.log = LoggerWrapperFactory.getLogger(CostantiConfigurazione.DRIVER_DB_LOGGER);
  320.             else{
  321.                 this.log = alog;
  322.                 DriverConfigurazioneDBLib.initStaticLogger(this.log);
  323.             }

  324.             if(useOp2UtilsDatasource){
  325.                 DataSourceParams dsParams = Costanti.getDataSourceParamsPdD(bindJMX, tipoDB);
  326.                 try{
  327.                     this.datasource = DataSourceFactory.newInstance(nomeDataSource, context, dsParams);
  328.                 }catch(UtilsAlreadyExistsException exists){
  329.                     this.datasource = DataSourceFactory.getInstance(nomeDataSource);
  330.                     if(this.datasource==null){
  331.                         throw new DriverConfigurazioneException("Lookup datasource non riuscita ("+exists.getMessage()+")",exists);
  332.                     }
  333.                 }
  334.             }
  335.             else{
  336.                 GestoreJNDI gestoreJNDI = new GestoreJNDI(context);
  337.                 this.datasource = (DataSource) gestoreJNDI.lookup(nomeDataSource);
  338.             }
  339.             if (this.datasource != null)
  340.                 this.create = true;
  341.         } catch (Exception ne) {
  342.             this.create = false;
  343.             this.log.error("Impossibile recuperare il context: " + ne.getMessage(),ne);
  344.         }

  345.         if (tipoDB == null) {
  346.             this.log.error("Il tipoDatabase non puo essere null.");
  347.             this.create = false;
  348.         }

  349.         this.atomica = true;
  350.         this.tipoDB = tipoDB;
  351.         if(tabellaSoggettiPDD){
  352.             this.tabellaSoggetti = CostantiDB.SOGGETTI_PDD;
  353.         }else{
  354.             this.tabellaSoggetti = CostantiDB.SOGGETTI;
  355.         }
  356.         // Setto il tipoDB anche in DriverConfigurazioneDB_LIB
  357.         DriverConfigurazioneDBLib.setTipoDB(tipoDB);
  358.         DriverConfigurazioneDBLib.setTabellaSoggetti(this.tabellaSoggetti);
  359.        
  360.         // driver
  361.        
  362.         this.soggettiDriver = new DriverConfigurazioneDBSoggetti(this);
  363.         this.soggettiSearchDriver = new DriverConfigurazioneDBSoggettiSearch(this);
  364.        
  365.         this.connettoriDriver = new DriverConfigurazioneDB_connettoriDriver(this);
  366.        
  367.         this.porteDelegateDriver = new DriverConfigurazioneDB_porteDelegateDriver(this);
  368.         this.porteDelegateSearchDriver = new DriverConfigurazioneDB_porteDelegateSearchDriver(this);
  369.         this.porteApplicativeDriver = new DriverConfigurazioneDB_porteApplicativeDriver(this);
  370.         this.porteApplicativeSearchDriver = new DriverConfigurazioneDB_porteApplicativeSearchDriver(this);
  371.         this.porteTrasformazioniDriver = new DriverConfigurazioneDB_porteTrasformazioniDriver(this);
  372.         this.porteDriver = new DriverConfigurazioneDB_porteDriver(this);
  373.        
  374.         this.serviziApplicativiDriver = new DriverConfigurazioneDB_serviziApplicativiDriver(this);
  375.         this.serviziApplicativiSearchDriver = new DriverConfigurazioneDBServiziApplicativiSearch(this);
  376.        
  377.         this.protocolPropertiesDriver = new DriverConfigurazioneDB_protocolPropertiesDriver(this);
  378.        
  379.         this.routingTableDriver = new DriverConfigurazioneDB_routingTableDriver(this);
  380.         this.gestioneErroreDriver = new DriverConfigurazioneDB_gestioneErroreDriver(this);
  381.         this.genericPropertiesDriver = new DriverConfigurazioneDB_genericPropertiesDriver(this);
  382.         this.configDriver = new DriverConfigurazioneDB_configDriver(this);
  383.         this.configSearchDriver = new DriverConfigurazioneDB_configSearchDriver(this);
  384.        
  385.         this.pluginsDriver = new DriverConfigurazioneDB_pluginsDriver(this);
  386.        
  387.         this.allarmiDriver = new DriverConfigurazioneDB_allarmiDriver(this);
  388.        
  389.         this.utilsDriver = new DriverConfigurazioneDBUtils(this);
  390.     }

  391.     public DriverConfigurazioneDB(Connection connection,String tipoDB) throws DriverConfigurazioneException {
  392.         this(connection,null,tipoDB);
  393.     }
  394.     public DriverConfigurazioneDB(Connection connection,Logger alog,String tipoDB) throws DriverConfigurazioneException {
  395.         this(connection,alog,tipoDB,false);
  396.     }
  397.     public DriverConfigurazioneDB(Connection connection,Logger alog,String tipoDB,boolean tabellaSoggettiPDD) throws DriverConfigurazioneException {

  398.         if(alog==null)
  399.             this.log = LoggerWrapperFactory.getLogger(CostantiConfigurazione.DRIVER_DB_LOGGER);
  400.         else{
  401.             this.log = alog;
  402.             DriverConfigurazioneDBLib.initStaticLogger(this.log);
  403.         }

  404.         if (connection == null) {
  405.             this.create = false;
  406.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::DriverConfigurazioneDB(Connection con, Properties context) La connection non puo essere null.");
  407.         }

  408.         if (tipoDB == null) {
  409.             this.create = false;
  410.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::DriverConfigurazioneDB(Connection ) Il tipoDatabase non puo essere null.");
  411.         }

  412.         this.globalConnection = connection;
  413.         this.create = true;
  414.         this.atomica = false;
  415.         this.tipoDB = tipoDB;
  416.         if(tabellaSoggettiPDD){
  417.             this.tabellaSoggetti = CostantiDB.SOGGETTI_PDD;
  418.         }else{
  419.             this.tabellaSoggetti = CostantiDB.SOGGETTI;
  420.         }
  421.        
  422.         // Setto il tipoDB anche in DriverConfigurazioneDB_LIB
  423.         DriverConfigurazioneDBLib.setTipoDB(tipoDB);
  424.         DriverConfigurazioneDBLib.setTabellaSoggetti(this.tabellaSoggetti);

  425.         // driver
  426.        
  427.         this.soggettiDriver = new DriverConfigurazioneDBSoggetti(this);
  428.         this.soggettiSearchDriver = new DriverConfigurazioneDBSoggettiSearch(this);
  429.        
  430.         this.connettoriDriver = new DriverConfigurazioneDB_connettoriDriver(this);
  431.        
  432.         this.porteDelegateDriver = new DriverConfigurazioneDB_porteDelegateDriver(this);
  433.         this.porteDelegateSearchDriver = new DriverConfigurazioneDB_porteDelegateSearchDriver(this);
  434.         this.porteApplicativeDriver = new DriverConfigurazioneDB_porteApplicativeDriver(this);
  435.         this.porteApplicativeSearchDriver = new DriverConfigurazioneDB_porteApplicativeSearchDriver(this);
  436.         this.porteTrasformazioniDriver = new DriverConfigurazioneDB_porteTrasformazioniDriver(this);
  437.         this.porteDriver = new DriverConfigurazioneDB_porteDriver(this);
  438.        
  439.         this.serviziApplicativiDriver = new DriverConfigurazioneDB_serviziApplicativiDriver(this);
  440.         this.serviziApplicativiSearchDriver = new DriverConfigurazioneDBServiziApplicativiSearch(this);
  441.        
  442.         this.protocolPropertiesDriver = new DriverConfigurazioneDB_protocolPropertiesDriver(this);
  443.        
  444.         this.routingTableDriver = new DriverConfigurazioneDB_routingTableDriver(this);
  445.         this.gestioneErroreDriver = new DriverConfigurazioneDB_gestioneErroreDriver(this);
  446.         this.genericPropertiesDriver = new DriverConfigurazioneDB_genericPropertiesDriver(this);
  447.         this.configDriver = new DriverConfigurazioneDB_configDriver(this);
  448.         this.configSearchDriver = new DriverConfigurazioneDB_configSearchDriver(this);
  449.        
  450.         this.pluginsDriver = new DriverConfigurazioneDB_pluginsDriver(this);
  451.        
  452.         this.allarmiDriver = new DriverConfigurazioneDB_allarmiDriver(this);
  453.        
  454.         this.utilsDriver = new DriverConfigurazioneDBUtils(this);
  455.     }

  456.    
  457.    
  458.     public Connection getConnection(String methodName) throws DriverConfigurazioneException{
  459.         Connection con = null;
  460.        
  461.         if (this.atomica) {
  462.             try {
  463.                 /**System.out.println("GET FROM DS ["+methodName+"]");*/
  464.                 con = getConnectionFromDatasource(methodName);
  465.             } catch (Exception e) {
  466.                 throw new DriverConfigurazioneException("[DriverConfigurazioneDB::getConnection] Exception accedendo al datasource :" + e.getMessage(),e);

  467.             }

  468.         } else {
  469.             /**System.out.println("GET GLOBAL ["+methodName+"]");*/
  470.             con = this.globalConnection;
  471.         }
  472.        
  473.         return con;
  474.     }
  475.    
  476.     public void releaseConnection(Connection con){
  477.         releaseConnection(null, con);
  478.     }
  479.     public void releaseConnection(String methodName, Connection con){
  480.         if (this.atomica) {
  481.             try {
  482.                 if(methodName!=null) {
  483.                     // nop
  484.                 }
  485.                 /**System.out.println("RELEASE ["+methodName+"]");*/
  486.                 JDBCUtilities.closeConnection(checkLogger, con, checkAutocommit, checkIsClosed);
  487.             } catch (Exception e) {
  488.                 // ignore
  489.             }
  490.         }
  491.     }
  492.    
  493.     protected Connection getConnectionFromDatasource(String methodName) throws DriverConfigurazioneException{
  494.         try {
  495.             if(this.datasource instanceof org.openspcoop2.utils.datasource.DataSource){
  496.                 return ((org.openspcoop2.utils.datasource.DataSource)this.datasource).getWrappedConnection(null, "DriverConfigurazione."+methodName);
  497.             }
  498.             else{
  499.                 return this.datasource.getConnection();
  500.             }
  501.         }catch(Exception e) {
  502.             throw new DriverConfigurazioneException(e.getMessage(),e);
  503.         }
  504.     }

  505.    
  506.    
  507.     public List<List<Object>> readCustom(ISQLQueryObject sqlQueryObject, List<Class<?>> returnTypes, List<JDBCObject> paramTypes) throws DriverConfigurazioneException
  508.     {
  509.         Connection con = null;
  510.         try {

  511.             this.logDebug("operazione atomica = " + this.atomica);
  512.             // prendo la connessione dal pool
  513.             if (this.atomica)
  514.                 con = getConnectionFromDatasource("readCustom");
  515.             else
  516.                 con = this.globalConnection;
  517.        
  518.             return DBUtils.readCustom(this.log, con, this.tipoDB, sqlQueryObject, returnTypes, paramTypes);
  519.            
  520.         }catch (Exception se) {
  521.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::readCustom]: " + se.getMessage(),se);
  522.         } finally {

  523.             this.closeConnection(con);

  524.         }
  525.     }
  526.    
  527.     public void closeConnection(Connection conParam, Connection con) {
  528.         try {
  529.             if (conParam==null && this.atomica) {
  530.                 this.log.debug("rilascio connessione al db...");
  531.                 JDBCUtilities.closeConnection(checkLogger, con, checkAutocommit, checkIsClosed);
  532.             }
  533.         } catch (Exception e) {
  534.             // ignore
  535.         }
  536.     }
  537.    
  538.     public void closeConnection(Connection con) {
  539.         try {
  540.             if (this.atomica) {
  541.                 this.log.debug("rilascio connessioni al db...");
  542.                 JDBCUtilities.closeConnection(checkLogger, con, checkAutocommit, checkIsClosed);
  543.             }
  544.         } catch (Exception e) {
  545.             // ignore exception
  546.         }
  547.     }
  548.    
  549.     public void closeConnection(boolean error, Connection con) {
  550.         try {
  551.             if (error && this.atomica) {
  552.                 this.log.debug("eseguo rollback a causa di errori e rilascio connessioni...");
  553.                 if(con!=null) {
  554.                     con.rollback();
  555.                     con.setAutoCommit(true);
  556.                     JDBCUtilities.closeConnection(checkLogger, con, checkAutocommit, checkIsClosed);
  557.                 }

  558.             } else if (!error && this.atomica) {
  559.                 this.log.debug("eseguo commit e rilascio connessioni...");
  560.                 if(con!=null) {
  561.                     con.commit();
  562.                     con.setAutoCommit(true);
  563.                     JDBCUtilities.closeConnection(checkLogger, con, checkAutocommit, checkIsClosed);
  564.                 }
  565.             }

  566.         } catch (Exception e) {
  567.             // ignore exception
  568.         }
  569.     }
  570.    
  571.    
  572.    
  573.    
  574.     // *** BYOK ***
  575.    
  576.     private IDriverBYOK driverBYOK = null;
  577.     private boolean wrapBYOK;
  578.     private boolean unwrapBYOK;
  579.    
  580.     @Override
  581.     public void initialize(IDriverBYOK driver,
  582.             boolean wrap, boolean unwrap) throws UtilsException{
  583.         this.driverBYOK = driver;
  584.         this.wrapBYOK = wrap;
  585.         this.unwrapBYOK = unwrap;
  586.     }

  587.     public IDriverBYOK getDriverWrapBYOK() {
  588.         return this.wrapBYOK ? this.driverBYOK : null;
  589.     }
  590.     public IDriverBYOK getDriverUnwrapBYOK() {
  591.         return this.unwrapBYOK ? this.driverBYOK : null;
  592.     }
  593.    
  594.    
  595.     // *** Soggetti ***
  596.    
  597.     public IDSoggetto getIdSoggetto(long idSoggetto) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  598.         return this.soggettiDriver.getIdSoggetto(idSoggetto);
  599.     }
  600.     public IDSoggetto getIdSoggetto(long idSoggetto,Connection conParam) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  601.         return this.soggettiDriver.getIdSoggetto(idSoggetto, conParam);
  602.     }
  603.    
  604.     /**
  605.      * Restituisce Il soggetto identificato da <var>idSoggetto</var>
  606.      *
  607.      * @param aSoggetto
  608.      *                Identificatore di un soggetto
  609.      * @return Il Soggetto identificato dal parametro.
  610.      *
  611.      */
  612.     @Override
  613.     public Soggetto getSoggetto(IDSoggetto aSoggetto) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  614.         return this.soggettiDriver.getSoggetto(aSoggetto);
  615.     }

  616.     /**
  617.      * Crea un nuovo Soggetto
  618.      *
  619.      * @param soggetto
  620.      * @throws DriverConfigurazioneException
  621.      */
  622.     @Override
  623.     public void createSoggetto(org.openspcoop2.core.config.Soggetto soggetto) throws DriverConfigurazioneException {
  624.         this.soggettiDriver.createSoggetto(soggetto);
  625.     }

  626.     /**
  627.      * Aggiorna un Soggetto e il Connettore con i nuovi dati passati
  628.      *
  629.      * @param soggetto
  630.      * @throws DriverConfigurazioneException
  631.      */
  632.     @Override
  633.     public void updateSoggetto(org.openspcoop2.core.config.Soggetto soggetto) throws DriverConfigurazioneException {
  634.         this.soggettiDriver.updateSoggetto(soggetto);
  635.     }
  636.    
  637.     /**
  638.      * Cancella un Soggetto e il Connettore
  639.      *
  640.      * @param soggetto
  641.      * @throws DriverConfigurazioneException
  642.      */
  643.     @Override
  644.     public void deleteSoggetto(org.openspcoop2.core.config.Soggetto soggetto) throws DriverConfigurazioneException {
  645.         this.soggettiDriver.deleteSoggetto(soggetto);
  646.     }
  647.    
  648.     /**
  649.      * Restituisce il soggetto configurato come router, se esiste nella Porta di
  650.      * Dominio un soggetto registrato come Router
  651.      *
  652.      * @return il soggetto configurato come router, se esiste nella Porta di
  653.      *         Dominio un soggetto registrato come Router
  654.      *
  655.      */
  656.     @Override
  657.     public Soggetto getRouter() throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  658.         return this.soggettiDriver.getRouter();
  659.     }

  660.     public List<IDSoggetto> getSoggettiWithSuperuser(String user) throws DriverConfigurazioneException {
  661.         return this.soggettiDriver.getSoggettiWithSuperuser(user);
  662.     }

  663.     /**
  664.      * Restituisce la lista dei soggetti virtuali gestiti dalla PdD
  665.      *
  666.      * @return Restituisce la lista dei soggetti virtuali gestiti dalla PdD
  667.      * @throws DriverConfigurazioneException
  668.      */
  669.     @Override
  670.     public List<IDSoggetto> getSoggettiVirtuali() throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  671.         return this.soggettiDriver.getSoggettiVirtuali();
  672.     }

  673.     /**
  674.      * Ritorna il {@linkplain Soggetto} utilizzando il {@link DriverConfigurazioneDB} che ha l'id passato come parametro
  675.      */
  676.     public Soggetto getSoggetto(long idSoggetto) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  677.         return this.soggettiDriver.getSoggetto(idSoggetto);
  678.     }
  679.     public Soggetto getSoggetto(long idSoggetto,Connection conParam) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  680.         return this.soggettiDriver.getSoggetto(idSoggetto, conParam);
  681.     }
  682.    
  683.     public List<Soggetto> soggettiList(String superuser, ISearch ricerca) throws DriverConfigurazioneException {
  684.         return this.soggettiSearchDriver.soggettiList(superuser, ricerca);
  685.     }

  686.     public List<Soggetto> soggettiWithServiziList(ISearch ricerca) throws DriverConfigurazioneException {
  687.         return this.soggettiSearchDriver.soggettiWithServiziList(ricerca);
  688.     }
  689.     public List<Soggetto> soggettiWithServiziList(String superuser,ISearch ricerca) throws DriverConfigurazioneException {
  690.         return this.soggettiSearchDriver.soggettiWithServiziList(superuser, ricerca);
  691.     }
  692.    
  693.     @Override
  694.     public List<IDServizio> getServiziSoggettiVirtuali() throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  695.         return this.soggettiDriver.getServiziSoggettiVirtuali();
  696.     }
  697.    
  698.     @Override
  699.     public boolean existsSoggetto(IDSoggetto idSoggetto) throws DriverConfigurazioneException {
  700.         return this.soggettiDriver.existsSoggetto(idSoggetto);
  701.     }
  702.    
  703.     public List<Soggetto> getAllSoggetti() throws DriverConfigurazioneException {
  704.         return this.soggettiDriver.getAllSoggetti();
  705.     }
  706.    
  707.     /**
  708.      * Restituisce la lista degli identificativi dei soggetti
  709.      *
  710.      * @param filtroRicerca
  711.      * @return lista degli identificativi dei soggetti
  712.      * @throws DriverConfigurazioneException
  713.      * @throws DriverConfigurazioneNotFound
  714.      */
  715.     @Override
  716.     public List<IDSoggetto> getAllIdSoggetti(FiltroRicercaSoggetti filtroRicerca) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  717.         return this.soggettiDriver.getAllIdSoggetti(filtroRicerca);
  718.     }
  719.    
  720.    
  721.    
  722.    
  723.     // *** Connettori ***
  724.    
  725.     /**
  726.      * Crea un nuovo Connettore
  727.      *
  728.      * @param connettore
  729.      * @throws DriverConfigurazioneException
  730.      */
  731.     public void createConnettore(Connettore connettore) throws DriverConfigurazioneException {
  732.         this.connettoriDriver.createConnettore(connettore);
  733.     }

  734.     /**
  735.      * Aggiorna un Connettore
  736.      *
  737.      * @param connettore
  738.      * @throws DriverConfigurazioneException
  739.      */
  740.     public void updateConnettore(Connettore connettore) throws DriverConfigurazioneException {
  741.         this.connettoriDriver.updateConnettore(connettore);
  742.     }

  743.     /**
  744.      * Elimina un Connettore
  745.      *
  746.      * @param connettore
  747.      * @throws DriverConfigurazioneException
  748.      */
  749.     public void deleteConnettore(Connettore connettore) throws DriverConfigurazioneException {
  750.         this.connettoriDriver.deleteConnettore(connettore);
  751.     }
  752.    
  753.     public List<String> connettoriList() throws DriverConfigurazioneException {
  754.         return this.connettoriDriver.connettoriList();
  755.     }
  756.    
  757.     /**
  758.      * Accede alla tabella connettori_properties, recupera le properties del connettore con nomeConnettore
  759.      * in caso di errore lancia un'eccezione.
  760.      *
  761.      * @param nomeConnettore -
  762.      *                nome da prelevare
  763.      * @return ConnettoreProperty[]
  764.      *
  765.      */
  766.     public Property[] getPropertiesConnettore(String nomeConnettore) throws DriverConfigurazioneException {
  767.         return this.connettoriDriver.getPropertiesConnettore(nomeConnettore);
  768.     }
  769.     public Property[] getPropertiesConnettore(String nomeConnettore, Connection connection) throws DriverConfigurazioneException {
  770.         return this.connettoriDriver.getPropertiesConnettore(nomeConnettore, connection);
  771.     }

  772.     public boolean isPolicyNegoziazioneTokenUsedInConnettore(String nome) throws DriverConfigurazioneException{
  773.         return this.connettoriDriver.isPolicyNegoziazioneTokenUsedInConnettore(nome);
  774.     }
  775.    
  776.     public Connettore getConnettore(long idConnettore) throws DriverConfigurazioneException, DriverConfigurazioneNotFound {
  777.         return this.connettoriDriver.getConnettore(idConnettore);
  778.     }
  779.     public Connettore getConnettore(String nomeConnettore) throws DriverConfigurazioneException {
  780.         return this.connettoriDriver.getConnettore(nomeConnettore);
  781.     }



  782.    
  783.     // *** Porte Delegate ***
  784.    
  785.     @Override
  786.     public IDPortaDelegata getIDPortaDelegata(String nome) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  787.         return this.porteDelegateDriver.getIDPortaDelegata(nome);
  788.     }
  789.    
  790.     @Override
  791.     public PortaDelegata getPortaDelegata(IDPortaDelegata idPD) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  792.         return this.porteDelegateDriver.getPortaDelegata(idPD);
  793.     }

  794.     public PortaDelegata getPortaDelegata(long id) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  795.         return this.porteDelegateDriver.getPortaDelegata(id);
  796.     }
  797.     public PortaDelegata getPortaDelegata(long id,Connection conParam) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  798.         return this.porteDelegateDriver.getPortaDelegata(id, conParam);
  799.     }
  800.    
  801.     @Override
  802.     public void createPortaDelegata(PortaDelegata aPD) throws DriverConfigurazioneException {
  803.         this.porteDelegateDriver.createPortaDelegata(aPD);
  804.     }
  805.    
  806.     @Override
  807.     public void updatePortaDelegata(PortaDelegata aPD) throws DriverConfigurazioneException {
  808.         this.porteDelegateDriver.updatePortaDelegata(aPD);
  809.     }

  810.     @Override
  811.     public void deletePortaDelegata(PortaDelegata aPD) throws DriverConfigurazioneException {
  812.         this.porteDelegateDriver.deletePortaDelegata(aPD);
  813.     }
  814.    
  815.     public List<String> portaDelegataRuoliList(long idPD, ISearch ricerca) throws DriverConfigurazioneException {
  816.         return this.porteDelegateSearchDriver.portaDelegataRuoliList(idPD, ricerca);
  817.     }
  818.     public List<String> portaDelegataRuoliTokenList(long idPD, ISearch ricerca) throws DriverConfigurazioneException {
  819.         return this.porteDelegateSearchDriver.portaDelegataRuoliTokenList(idPD, ricerca);
  820.     }  
  821.    
  822.     public List<String> portaDelegataScopeList(long idPD, ISearch ricerca) throws DriverConfigurazioneException {
  823.         return this.porteDelegateSearchDriver.portaDelegataScopeList(idPD, ricerca);
  824.     }
  825.    
  826.     public List<TrasformazioneRegola> porteDelegateTrasformazioniList(long idPA, ISearch ricerca) throws DriverConfigurazioneException {
  827.         return this.porteTrasformazioniDriver.porteDelegateTrasformazioniList(idPA, ricerca);
  828.     }
  829.    
  830.     public boolean azioneUsataInTrasformazioniPortaDelegata(String azione) throws DriverConfigurazioneException {
  831.         return this.porteTrasformazioniDriver.azioneUsataInTrasformazioniPortaDelegata(azione);
  832.     }

  833.     public TrasformazioneRegola getPortaDelegataTrasformazione(long idPorta, String azioni, String pattern, String contentType, String connettori,
  834.             List<TrasformazioneRegolaApplicabilitaServizioApplicativo> applicativi) throws DriverConfigurazioneException {
  835.         return this.porteTrasformazioniDriver.getPortaDelegataTrasformazione(idPorta, azioni, pattern, contentType, connettori,
  836.                 applicativi);
  837.     }
  838.    
  839.     public TrasformazioneRegola getPortaDelegataTrasformazione(long idPorta, String nome) throws DriverConfigurazioneException {
  840.         return this.porteTrasformazioniDriver.getPortaDelegataTrasformazione(idPorta, nome);
  841.     }
  842.    
  843.     public boolean existsPortaDelegataTrasformazione(long idPorta, String azioni, String pattern, String contentType, String connettori) throws DriverConfigurazioneException {
  844.         return this.porteTrasformazioniDriver.existsPortaDelegataTrasformazione(idPorta, azioni, pattern, contentType, connettori);
  845.     }
  846.    
  847.     public boolean existsPortaDelegataTrasformazione(long idPorta, String nome) throws DriverConfigurazioneException {
  848.         return this.porteTrasformazioniDriver.existsPortaDelegataTrasformazione(idPorta, nome);
  849.     }
  850.    
  851.     public List<TrasformazioneRegolaRisposta> porteDelegateTrasformazioniRispostaList(long idPD, long idTrasformazione, ISearch ricerca) throws DriverConfigurazioneException {
  852.         return this.porteTrasformazioniDriver.porteDelegateTrasformazioniRispostaList(idPD, idTrasformazione, ricerca);
  853.     }
  854.    
  855.     public TrasformazioneRegolaRisposta getPortaDelegataTrasformazioneRisposta(long idPorta, long idTrasformazione, Integer statusMin, Integer statusMax, String pattern, String contentType) throws DriverConfigurazioneException {
  856.         return this.porteTrasformazioniDriver.getPortaDelegataTrasformazioneRisposta(idPorta, idTrasformazione, statusMin, statusMax, pattern, contentType);
  857.     }
  858.    
  859.     public TrasformazioneRegolaRisposta getPortaDelegataTrasformazioneRisposta(long idPorta, long idTrasformazione, String nome) throws DriverConfigurazioneException {
  860.         return this.porteTrasformazioniDriver.getPortaDelegataTrasformazioneRisposta(idPorta, idTrasformazione, nome);
  861.     }
  862.    
  863.     public boolean existsPortaDelegataTrasformazioneRisposta(long idPorta, long idTrasformazione, Integer statusMin, Integer statusMax, String pattern, String contentType) throws DriverConfigurazioneException {
  864.         return this.porteTrasformazioniDriver.existsPortaDelegataTrasformazioneRisposta(idPorta, idTrasformazione, statusMin, statusMax, pattern, contentType);
  865.     }
  866.    
  867.     public boolean existsPortaDelegataTrasformazioneRisposta(long idPorta, long idTrasformazione, String nome) throws DriverConfigurazioneException {
  868.         return this.porteTrasformazioniDriver.existsPortaDelegataTrasformazioneRisposta(idPorta, idTrasformazione, nome);
  869.     }
  870.    
  871.     public List<TrasformazioneRegolaApplicabilitaServizioApplicativo> porteDelegateTrasformazioniServiziApplicativiList(long idPD, long idTrasformazione, ISearch ricerca) throws DriverConfigurazioneException {
  872.         return this.porteTrasformazioniDriver.porteDelegateTrasformazioniServiziApplicativiList(idPD, idTrasformazione, ricerca);
  873.     }
  874.    
  875.     public List<TrasformazioneRegolaParametro> porteDelegateTrasformazioniRispostaHeaderList(long idPD, long idTrasformazione, long idTrasformazioneRisposta, ISearch ricerca) throws DriverConfigurazioneException {
  876.         return this.porteTrasformazioniDriver.porteDelegateTrasformazioniRispostaHeaderList(idPD, idTrasformazione, idTrasformazioneRisposta, ricerca);
  877.     }

  878.     public List<TrasformazioneRegolaParametro> porteDelegateTrasformazioniRichiestaHeaderList(long idPD, long idTrasformazione, ISearch ricerca) throws DriverConfigurazioneException {
  879.         return this.porteTrasformazioniDriver.porteDelegateTrasformazioniRichiestaHeaderList(idPD, idTrasformazione, ricerca);
  880.     }
  881.    
  882.     public boolean existsPortaDelegataTrasformazioneRichiestaHeader(long idPorta, long idTrasformazione, String nome, String tipo, boolean checkTipo) throws DriverConfigurazioneException {
  883.         return this.porteTrasformazioniDriver.existsPortaDelegataTrasformazioneRichiestaHeader(idPorta, idTrasformazione, nome, tipo, checkTipo);
  884.     }
  885.    
  886.     public TrasformazioneRegolaParametro getPortaDelegataTrasformazioneRichiestaHeader(long idPorta, long idTrasformazione,  String nome, String tipo, boolean checkTipo) throws DriverConfigurazioneException {
  887.         return this.porteTrasformazioniDriver.getPortaDelegataTrasformazioneRichiestaHeader(idPorta, idTrasformazione, nome, tipo, checkTipo);
  888.     }
  889.    
  890.     public List<TrasformazioneRegolaParametro> porteDelegateTrasformazioniRichiestaUrlParameterList(long idPD, long idTrasformazione, ISearch ricerca) throws DriverConfigurazioneException {
  891.         return this.porteTrasformazioniDriver.porteDelegateTrasformazioniRichiestaUrlParameterList(idPD, idTrasformazione, ricerca);
  892.     }
  893.    
  894.     public boolean existsPortaDelegataTrasformazioneRichiestaUrlParameter(long idPorta, long idTrasformazione, String nome, String tipo, boolean checkTipo) throws DriverConfigurazioneException {
  895.         return this.porteTrasformazioniDriver.existsPortaDelegataTrasformazioneRichiestaUrlParameter(idPorta, idTrasformazione, nome, tipo, checkTipo);
  896.     }
  897.    
  898.     public TrasformazioneRegolaParametro getPortaDelegataTrasformazioneRichiestaUrlParameter(long idPorta, long idTrasformazione,  String nome, String tipo, boolean checkTipo) throws DriverConfigurazioneException {
  899.         return this.porteTrasformazioniDriver.getPortaDelegataTrasformazioneRichiestaUrlParameter(idPorta, idTrasformazione, nome, tipo, checkTipo);
  900.     }
  901.    
  902.     public List<ResponseCachingConfigurazioneRegola> portaDelegataResponseCachingConfigurazioneRegolaList(long idPD, ISearch ricerca) throws DriverConfigurazioneException {
  903.         return this.porteDriver.portaDelegataResponseCachingConfigurazioneRegolaList(idPD, ricerca);
  904.     }
  905.    
  906.     public boolean existsPortaDelegataResponseCachingConfigurazioneRegola(long idPA, Integer statusMin, Integer statusMax, boolean fault) throws DriverConfigurazioneException {
  907.         return this.porteDriver.existsPortaDelegataResponseCachingConfigurazioneRegola(idPA, statusMin, statusMax, fault);
  908.     }
  909.    
  910.     public List<String> porteDelegateRateLimitingValoriUnivoci(String pName) throws DriverConfigurazioneException {
  911.         return this.porteDelegateDriver.porteDelegateRateLimitingValoriUnivoci(pName);
  912.     }
  913.    
  914.     public List<PortaDelegata> porteDelegateList(long idSoggetto, ISearch ricerca) throws DriverConfigurazioneException {
  915.         return this.porteDelegateSearchDriver.porteDelegateList(idSoggetto, ricerca);
  916.     }
  917.    
  918.     public List<Proprieta> porteDelegatePropList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  919.         return this.porteDelegateSearchDriver.porteDelegatePropList(idPortaDelegata, ricerca);
  920.     }
  921.    
  922.     /**
  923.      * Ritorna la lista di nomi delle proprieta registrate
  924.      */
  925.     public List<String> nomiProprietaPD(String filterSoggettoTipo, String filterSoggettoNome, List<String> tipoServiziProtocollo) throws DriverConfigurazioneException {
  926.         return this.porteDelegateDriver.nomiProprietaPD(filterSoggettoTipo, filterSoggettoNome, tipoServiziProtocollo);
  927.     }
  928.    
  929.     public List<Proprieta> porteDelegateAutenticazioneCustomPropList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  930.         return this.porteDelegateSearchDriver.porteDelegateAutenticazioneCustomPropList(idPortaDelegata, ricerca);
  931.     }
  932.    
  933.     public List<Proprieta> porteDelegateAutorizzazioneCustomPropList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  934.         return this.porteDelegateSearchDriver.porteDelegateAutorizzazioneCustomPropList(idPortaDelegata, ricerca);
  935.     }
  936.    
  937.     public List<Proprieta> porteDelegateAutorizzazioneContenutoCustomPropList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  938.         return this.porteDelegateSearchDriver.porteDelegateAutorizzazioneContenutoCustomPropList(idPortaDelegata, ricerca);
  939.     }

  940.     public List<PortaDelegata> porteDelegateList(String superuser, ISearch ricerca) throws DriverConfigurazioneException {
  941.         return this.porteDelegateSearchDriver.porteDelegateList(superuser, ricerca);
  942.     }

  943.     public List<PortaDelegata> porteDelegateWithSoggettoErogatoreList(long idSoggettoErogatore) throws DriverConfigurazioneException {
  944.         return this.porteDelegateDriver.porteDelegateWithSoggettoErogatoreList(idSoggettoErogatore);
  945.     }

  946.     public List<PortaDelegata> porteDelegateWithTipoNomeErogatoreList(String tipoSoggettoErogatore, String nomeSoggettoErogatore) throws DriverConfigurazioneException {
  947.         return this.porteDelegateDriver.porteDelegateWithTipoNomeErogatoreList(tipoSoggettoErogatore, nomeSoggettoErogatore);
  948.     }
  949.    
  950.     public List<ServizioApplicativo> porteDelegateServizioApplicativoList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  951.         return this.porteDelegateSearchDriver.porteDelegateServizioApplicativoList(idPortaDelegata, ricerca);
  952.     }
  953.     public List<ServizioApplicativo> porteDelegateServizioApplicativoTokenList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  954.         return this.porteDelegateSearchDriver.porteDelegateServizioApplicativoTokenList(idPortaDelegata, ricerca);
  955.     }
  956.    
  957.     public List<MessageSecurityFlowParameter> porteDelegateMessageSecurityRequestList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  958.         return this.porteDelegateSearchDriver.porteDelegateMessageSecurityRequestList(idPortaDelegata, ricerca);
  959.     }

  960.     public List<MessageSecurityFlowParameter> porteDelegateMessageSecurityResponseList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  961.         return this.porteDelegateSearchDriver.porteDelegateMessageSecurityResponseList(idPortaDelegata, ricerca);
  962.     }

  963.     public List<CorrelazioneApplicativaElemento> porteDelegateCorrelazioneApplicativaList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  964.         return this.porteDelegateSearchDriver.porteDelegateCorrelazioneApplicativaList(idPortaDelegata, ricerca);
  965.     }

  966.     public List<CorrelazioneApplicativaRispostaElemento> porteDelegateCorrelazioneApplicativaRispostaList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  967.         return this.porteDelegateSearchDriver.porteDelegateCorrelazioneApplicativaRispostaList(idPortaDelegata, ricerca);
  968.     }
  969.    
  970.     @Override
  971.     public boolean existsPortaDelegata(IDPortaDelegata idPD) throws DriverConfigurazioneException {
  972.         return this.porteDelegateDriver.existsPortaDelegata(idPD);
  973.     }

  974.     public List<PortaDelegata> getPorteDelegateWithServizio(Long idServizio, String tiposervizio, String nomeservizio,
  975.             Integer versioneServizio,
  976.             Long idSoggetto, String tiposoggetto, String nomesoggetto) throws DriverConfigurazioneException {
  977.         return this.porteDelegateDriver.getPorteDelegateWithServizio(idServizio, tiposervizio, nomeservizio,
  978.                 versioneServizio,
  979.                 idSoggetto, tiposoggetto, nomesoggetto);
  980.     }

  981.     public List<PortaDelegata> getPorteDelegateWithServizio(Long idServizio) throws DriverConfigurazioneException {
  982.         return this.porteDelegateDriver.getPorteDelegateWithServizio(idServizio);
  983.     }

  984.     // NOTA: Metodo non sicuro!!! Possono esistere piu' azioni di port type diversi o accordi diversi !!!!!
  985.     public List<IDPortaDelegata> getPortaDelegataAzione(String nome) throws DriverConfigurazioneException, DriverConfigurazioneNotFound {
  986.         return this.porteDelegateDriver.getPortaDelegataAzione(nome);
  987.     }

  988.     // NOTA: Metodo non sicuro!!! Possono esistere piu' azioni di port type diversi o accordi diversi !!!!!
  989.     public boolean existsPortaDelegataAzione(String nome) throws DriverConfigurazioneException {
  990.         return this.porteDelegateDriver.existsPortaDelegataAzione(nome);
  991.     }
  992.    
  993.     public List<PortaDelegata> serviziFruitoriPorteDelegateList(long idSoggetto, String tipoServizio,String nomeServizio,Long idServizio,
  994.             String tipoSoggettoErogatore, String nomeSoggettoErogatore, Long idSoggettoErogatore, ISearch ricerca) throws DriverConfigurazioneException {
  995.         return this.porteDelegateSearchDriver.serviziFruitoriPorteDelegateList(idSoggetto, tipoServizio, nomeServizio, idServizio,
  996.                 tipoSoggettoErogatore, nomeSoggettoErogatore, idSoggettoErogatore, ricerca);
  997.     }
  998.    
  999.     /**
  1000.      * Recupera tutte le porte delegate appartenenti al soggetto 'fruitore'
  1001.      * @param fruitore
  1002.      * @return Lista di {@link PortaDelegata}
  1003.      * @throws DriverConfigurazioneException
  1004.      */
  1005.     public List<PortaDelegata> getPorteDelegateByFruitore(IDSoggetto fruitore,ISearch filters) throws DriverConfigurazioneException{
  1006.         return this.porteDelegateSearchDriver.getPorteDelegateByFruitore(fruitore, filters);
  1007.     }

  1008.     /**
  1009.      * Recupera tutte le porte delegate del soggetto fruitore, relative al servizio idServizio (se diverso da null), erogato dal soggetto erogatore del servizio.
  1010.      * @param idSE L'id del servizio, puo essere null in tal caso si comporta come il metodo getPorteDelegateByFruitore
  1011.      * @return List<PortaDelegata>
  1012.      * @throws DriverConfigurazioneException
  1013.      */
  1014.     public List<PortaDelegata> getPorteDelegate(IDServizio idSE,IDSoggetto fruitore,ISearch filters) throws DriverConfigurazioneException{
  1015.         return this.porteDelegateSearchDriver.getPorteDelegate(idSE, fruitore, filters);
  1016.     }
  1017.    
  1018.     public List<PortaDelegata> getPorteDelegateBySoggetto(long idSoggetto) throws DriverConfigurazioneException {
  1019.         return this.porteDelegateDriver.getPorteDelegateBySoggetto(idSoggetto);
  1020.     }
  1021.    
  1022.     /**
  1023.      * Restituisce la lista degli identificativi delle porte delegate
  1024.      *
  1025.      * @param filtroRicerca
  1026.      * @return lista degli identificativi delle porte delegate
  1027.      * @throws DriverConfigurazioneException
  1028.      * @throws DriverConfigurazioneNotFound
  1029.      */
  1030.     @Override
  1031.     public List<IDPortaDelegata> getAllIdPorteDelegate(FiltroRicercaPorteDelegate filtroRicerca) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  1032.         return this.porteDelegateDriver.getAllIdPorteDelegate(filtroRicerca);
  1033.     }
  1034.    
  1035.     public List<MtomProcessorFlowParameter> porteDelegateMTOMRequestList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  1036.         return this.porteDelegateSearchDriver.porteDelegateMTOMRequestList(idPortaDelegata, ricerca);
  1037.     }

  1038.     public List<MtomProcessorFlowParameter> porteDelegateMTOMResponseList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  1039.         return this.porteDelegateSearchDriver.porteDelegateMTOMResponseList(idPortaDelegata, ricerca);
  1040.     }
  1041.    
  1042.     public List<PortaDelegata> getPorteDelegateByPolicyGestioneToken(String nome) throws DriverConfigurazioneException{
  1043.         return this.porteDelegateDriver.getPorteDelegateByPolicyGestioneToken(nome);
  1044.     }
  1045.    
  1046.     public MappingFruizionePortaDelegata getMappingFruizione(IDServizio idServizio, IDSoggetto idSoggetto, IDPortaDelegata idPortaDelegata) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  1047.         return this.porteDelegateDriver.getMappingFruizione(idServizio, idSoggetto, idPortaDelegata);      
  1048.     }
  1049.        
  1050.     public ProprietaOggetto getProprietaOggetto(IDPortaDelegata idPD) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  1051.         return this.porteDelegateDriver.getProprietaOggetto(idPD);
  1052.     }
  1053.    
  1054.     public void updateProprietaOggetto(IDPortaDelegata idPD, String user) throws DriverConfigurazioneException {
  1055.         this.porteDelegateDriver.updateProprietaOggetto(idPD, user);
  1056.     }

  1057.    

  1058.    
  1059.     // *** Porte Applicative ***
  1060.    
  1061.     @Override
  1062.     public IDPortaApplicativa getIDPortaApplicativa(String nome) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  1063.         return this.porteApplicativeDriver.getIDPortaApplicativa(nome);
  1064.     }
  1065.    
  1066.     @Override
  1067.     public PortaApplicativa getPortaApplicativa(IDPortaApplicativa idPA) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  1068.         return this.porteApplicativeDriver.getPortaApplicativa(idPA);
  1069.     }
  1070.    
  1071.     public PortaApplicativa getPortaApplicativa(long id) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  1072.         return this.porteApplicativeDriver.getPortaApplicativa(id);
  1073.     }
  1074.     public PortaApplicativa getPortaApplicativa(long id,Connection conParam) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  1075.         return this.porteApplicativeDriver.getPortaApplicativa(id, conParam);
  1076.     }
  1077.    
  1078.     @Override
  1079.     public List<PortaApplicativa> getPorteApplicative(IDServizio idServizio, boolean ricercaPuntuale) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  1080.         return this.porteApplicativeDriver.getPorteApplicative(idServizio, ricercaPuntuale);
  1081.     }
  1082.    
  1083.     @Override
  1084.     public List<PortaApplicativa> getPorteApplicativeVirtuali(IDSoggetto soggettoVirtuale,IDServizio idServizio, boolean ricercaPuntuale) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  1085.         return this.porteApplicativeDriver.getPorteApplicativeVirtuali(soggettoVirtuale, idServizio, ricercaPuntuale);
  1086.     }
  1087.    
  1088.     @Override
  1089.     public void createPortaApplicativa(PortaApplicativa aPA) throws DriverConfigurazioneException {
  1090.         this.porteApplicativeDriver.createPortaApplicativa(aPA);
  1091.     }
  1092.    
  1093.     @Override
  1094.     public void updatePortaApplicativa(PortaApplicativa aPA) throws DriverConfigurazioneException {
  1095.         this.porteApplicativeDriver.updatePortaApplicativa(aPA);
  1096.     }

  1097.     @Override
  1098.     public void deletePortaApplicativa(PortaApplicativa aPA) throws DriverConfigurazioneException {
  1099.         this.porteApplicativeDriver.deletePortaApplicativa(aPA);
  1100.     }

  1101.     @Override
  1102.     public Map<IDSoggetto, PortaApplicativa> getPorteApplicativeSoggettiVirtuali(IDServizio idServizio) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  1103.         return this.porteApplicativeDriver.getPorteApplicativeSoggettiVirtuali(idServizio);
  1104.     }
  1105.    
  1106.     public List<String> portaApplicativaRuoliList(long idPA, ISearch ricerca) throws DriverConfigurazioneException {
  1107.         return this.porteApplicativeSearchDriver.portaApplicativaRuoliList(idPA, ricerca);
  1108.     }
  1109.     public List<String> portaApplicativaRuoliTokenList(long idPA, ISearch ricerca) throws DriverConfigurazioneException {
  1110.         return this.porteApplicativeSearchDriver.portaApplicativaRuoliTokenList(idPA, ricerca);
  1111.     }
  1112.    
  1113.     public List<String> portaApplicativaScopeList(long idPA, ISearch ricerca) throws DriverConfigurazioneException {
  1114.         return this.porteApplicativeSearchDriver.portaApplicativaScopeList(idPA, ricerca);
  1115.     }
  1116.    
  1117.     public List<IDPortaApplicativa> porteApplicativeWithApplicativoErogatore(IDServizioApplicativo idSA) throws DriverConfigurazioneException {
  1118.         return this.porteApplicativeDriver.porteApplicativeWithApplicativoErogatore(idSA);
  1119.     }
  1120.    
  1121.     public List<TrasformazioneRegola> porteApplicativeTrasformazioniList(long idPA, ISearch ricerca) throws DriverConfigurazioneException {
  1122.         return this.porteTrasformazioniDriver.porteApplicativeTrasformazioniList(idPA, ricerca);
  1123.     }
  1124.    
  1125.     public boolean azioneUsataInTrasformazioniPortaApplicativa(String azione) throws DriverConfigurazioneException {
  1126.         return this.porteTrasformazioniDriver.azioneUsataInTrasformazioniPortaApplicativa(azione);
  1127.     }
  1128.    
  1129.     public TrasformazioneRegola getPortaApplicativaTrasformazione(long idPorta, String azioni, String pattern, String contentType, String connettori,
  1130.             List<TrasformazioneRegolaApplicabilitaSoggetto> soggetti,
  1131.             List<TrasformazioneRegolaApplicabilitaServizioApplicativo> applicativi,
  1132.             boolean interpretaNullList) throws DriverConfigurazioneException {
  1133.         return this.porteTrasformazioniDriver.getPortaApplicativaTrasformazione(idPorta, azioni, pattern, contentType, connettori,
  1134.             soggetti,
  1135.             applicativi,
  1136.             interpretaNullList);
  1137.     }
  1138.    
  1139.     public TrasformazioneRegola getPortaApplicativaTrasformazione(long idPorta, String nome) throws DriverConfigurazioneException {
  1140.         return this.porteTrasformazioniDriver.getPortaApplicativaTrasformazione(idPorta, nome);
  1141.     }
  1142.    
  1143.     public boolean existsPortaApplicativaTrasformazione(long idPorta, String azioni, String pattern, String contentType, String connettori) throws DriverConfigurazioneException {
  1144.         return this.porteTrasformazioniDriver.existsPortaApplicativaTrasformazione(idPorta, azioni, pattern, contentType, connettori);
  1145.     }
  1146.    
  1147.     public boolean existsPortaApplicativaTrasformazione(long idPorta, String nome) throws DriverConfigurazioneException {
  1148.         return this.porteTrasformazioniDriver.existsPortaApplicativaTrasformazione(idPorta, nome);
  1149.     }
  1150.    
  1151.     public List<TrasformazioneRegolaRisposta> porteApplicativeTrasformazioniRispostaList(long idPA, long idTrasformazione, ISearch ricerca) throws DriverConfigurazioneException {
  1152.         return this.porteTrasformazioniDriver.porteApplicativeTrasformazioniRispostaList(idPA, idTrasformazione, ricerca);
  1153.     }
  1154.    
  1155.     public TrasformazioneRegolaRisposta getPortaApplicativaTrasformazioneRisposta(long idPorta, long idTrasformazione, Integer statusMin, Integer statusMax, String pattern, String contentType) throws DriverConfigurazioneException {
  1156.         return this.porteTrasformazioniDriver.getPortaApplicativaTrasformazioneRisposta(idPorta, idTrasformazione, statusMin, statusMax, pattern, contentType);
  1157.     }

  1158.     public TrasformazioneRegolaRisposta getPortaApplicativaTrasformazioneRisposta(long idPorta, long idTrasformazione, String nome) throws DriverConfigurazioneException {
  1159.         return this.porteTrasformazioniDriver.getPortaApplicativaTrasformazioneRisposta(idPorta, idTrasformazione, nome);
  1160.     }
  1161.        
  1162.     public boolean existsPortaApplicativaTrasformazioneRisposta(long idPorta, long idTrasformazione, Integer statusMin, Integer statusMax, String pattern, String contentType) throws DriverConfigurazioneException {
  1163.         return this.porteTrasformazioniDriver.existsPortaApplicativaTrasformazioneRisposta(idPorta, idTrasformazione, statusMin, statusMax, pattern, contentType);
  1164.     }
  1165.    
  1166.     public boolean existsPortaApplicativaTrasformazioneRisposta(long idPorta, long idTrasformazione, String nome) throws DriverConfigurazioneException {
  1167.         return this.porteTrasformazioniDriver.existsPortaApplicativaTrasformazioneRisposta(idPorta, idTrasformazione, nome);
  1168.     }
  1169.    
  1170.     public List<TrasformazioneRegolaApplicabilitaServizioApplicativo> porteApplicativeTrasformazioniServiziApplicativiList(long idPA, long idTrasformazione, ISearch ricerca) throws DriverConfigurazioneException {
  1171.         return this.porteTrasformazioniDriver.porteApplicativeTrasformazioniServiziApplicativiList(idPA, idTrasformazione, ricerca);
  1172.     }
  1173.    
  1174.     public List<TrasformazioneRegolaApplicabilitaSoggetto> porteApplicativeTrasformazioniSoggettiList(long idPA, long idTrasformazione, ISearch ricerca) throws DriverConfigurazioneException {
  1175.         return this.porteTrasformazioniDriver.porteApplicativeTrasformazioniSoggettiList(idPA, idTrasformazione, ricerca);
  1176.     }
  1177.    
  1178.     public List<TrasformazioneRegolaParametro> porteApplicativeTrasformazioniRispostaHeaderList(long idPA, long idTrasformazione, long idTrasformazioneRisposta, ISearch ricerca) throws DriverConfigurazioneException {
  1179.         return this.porteTrasformazioniDriver.porteApplicativeTrasformazioniRispostaHeaderList(idPA, idTrasformazione, idTrasformazioneRisposta, ricerca);
  1180.     }
  1181.    
  1182.     public boolean existsPortaApplicativaTrasformazioneRispostaHeader(long idPorta, long idTrasformazione, long idTrasformazioneRisposta,  String nome, String tipo, boolean checkTipo) throws DriverConfigurazioneException {
  1183.         return this.porteTrasformazioniDriver.existsPortaApplicativaTrasformazioneRispostaHeader(idPorta, idTrasformazione, idTrasformazioneRisposta,  nome, tipo, checkTipo);
  1184.     }
  1185.    
  1186.     public boolean existsPortaDelegataTrasformazioneRispostaHeader(long idPorta, long idTrasformazione, long idTrasformazioneRisposta,  String nome, String tipo, boolean checkTipo) throws DriverConfigurazioneException {
  1187.         return this.porteTrasformazioniDriver.existsPortaDelegataTrasformazioneRispostaHeader(idPorta, idTrasformazione, idTrasformazioneRisposta,  nome, tipo, checkTipo);
  1188.     }
  1189.    
  1190.     public TrasformazioneRegolaParametro getPortaApplicativaTrasformazioneRispostaHeader(long idPorta, long idTrasformazione, long idTrasformazioneRisposta,  String nome, String tipo, boolean checkTipo) throws DriverConfigurazioneException {
  1191.         return this.porteTrasformazioniDriver.getPortaApplicativaTrasformazioneRispostaHeader(idPorta, idTrasformazione, idTrasformazioneRisposta, nome, tipo, checkTipo);
  1192.     }
  1193.    
  1194.     public TrasformazioneRegolaParametro getPortaDelegataTrasformazioneRispostaHeader(long idPorta, long idTrasformazione, long idTrasformazioneRisposta,  String nome, String tipo, boolean checkTipo) throws DriverConfigurazioneException {
  1195.         return this.porteTrasformazioniDriver.getPortaDelegataTrasformazioneRispostaHeader(idPorta, idTrasformazione, idTrasformazioneRisposta, nome, tipo, checkTipo);
  1196.     }
  1197.    
  1198.     public List<TrasformazioneRegolaParametro> porteApplicativeTrasformazioniRichiestaHeaderList(long idPA, long idTrasformazione, ISearch ricerca) throws DriverConfigurazioneException {
  1199.         return this.porteTrasformazioniDriver.porteApplicativeTrasformazioniRichiestaHeaderList(idPA, idTrasformazione, ricerca);
  1200.     }
  1201.    
  1202.     public boolean existsPortaApplicativaTrasformazioneRichiestaHeader(long idPorta, long idTrasformazione, String nome, String tipo, boolean checkTipo) throws DriverConfigurazioneException {
  1203.         return this.porteTrasformazioniDriver.existsPortaApplicativaTrasformazioneRichiestaHeader(idPorta, idTrasformazione, nome, tipo, checkTipo);
  1204.     }  
  1205.    
  1206.     public TrasformazioneRegolaParametro getPortaApplicativaTrasformazioneRichiestaHeader(long idPorta, long idTrasformazione,  String nome, String tipo, boolean checkTipo) throws DriverConfigurazioneException {
  1207.         return this.porteTrasformazioniDriver.getPortaApplicativaTrasformazioneRichiestaHeader(idPorta, idTrasformazione, nome, tipo, checkTipo);
  1208.     }
  1209.    
  1210.     public List<TrasformazioneRegolaParametro> porteApplicativeTrasformazioniRichiestaUrlParameterList(long idPA, long idTrasformazione, ISearch ricerca) throws DriverConfigurazioneException {
  1211.         return this.porteTrasformazioniDriver.porteApplicativeTrasformazioniRichiestaUrlParameterList(idPA, idTrasformazione, ricerca);
  1212.     }
  1213.    
  1214.     public boolean existsPortaApplicativaTrasformazioneRichiestaUrlParameter(long idPorta, long idTrasformazione, String nome, String tipo, boolean checkTipo) throws DriverConfigurazioneException {
  1215.         return this.porteTrasformazioniDriver.existsPortaApplicativaTrasformazioneRichiestaUrlParameter(idPorta, idTrasformazione, nome, tipo, checkTipo);
  1216.     }
  1217.    
  1218.     public TrasformazioneRegolaParametro getPortaApplicativaTrasformazioneRichiestaUrlParameter(long idPorta, long idTrasformazione,  String nome, String tipo, boolean checkTipo) throws DriverConfigurazioneException {
  1219.         return this.porteTrasformazioniDriver.getPortaApplicativaTrasformazioneRichiestaUrlParameter(idPorta, idTrasformazione, nome, tipo, checkTipo);
  1220.     }
  1221.    
  1222.     public List<ResponseCachingConfigurazioneRegola> portaApplicativaResponseCachingConfigurazioneRegolaList(long idPA, ISearch ricerca) throws DriverConfigurazioneException {
  1223.         return this.porteDriver.portaApplicativaResponseCachingConfigurazioneRegolaList(idPA, ricerca);
  1224.     }
  1225.    
  1226.     public boolean existsPortaApplicativaResponseCachingConfigurazioneRegola(long idPA, Integer statusMin, Integer statusMax, boolean fault) throws DriverConfigurazioneException {
  1227.         return this.porteDriver.existsPortaApplicativaResponseCachingConfigurazioneRegola(idPA, statusMin, statusMax, fault);
  1228.     }
  1229.    
  1230.     /**
  1231.      * Ritorna la lista di porte applicative con settati i campi id, nome,
  1232.      * descrizione e se il security e' abilitato allora crea un oggetto
  1233.      * MessageSecurity vuoto altrimenti null.
  1234.      */
  1235.     public List<PortaApplicativa> porteAppList(long idSoggetto, ISearch ricerca) throws DriverConfigurazioneException {
  1236.         return this.porteApplicativeSearchDriver.porteAppList(idSoggetto, ricerca);
  1237.     }
  1238.     /**
  1239.      * Ritorna la lista di tutte le Porte Applicative
  1240.      * @param ricerca
  1241.      * @return Una lista di Porte Applicative
  1242.      * @throws DriverConfigurazioneException
  1243.      */
  1244.     public List<PortaApplicativa> porteAppList(String superuser, ISearch ricerca) throws DriverConfigurazioneException {
  1245.         return this.porteApplicativeSearchDriver.porteAppList(superuser, ricerca);
  1246.     }

  1247.     /**
  1248.      * Ritorna la lista di proprieta di una Porta Applicativa
  1249.      */
  1250.     public List<Proprieta> porteAppPropList(long idPortaApplicativa, ISearch ricerca) throws DriverConfigurazioneException {
  1251.         return this.porteApplicativeSearchDriver.porteAppPropList(idPortaApplicativa, ricerca);
  1252.     }
  1253.    
  1254.     /**
  1255.      * Ritorna la lista di nomi delle proprieta registrate
  1256.      */
  1257.     public List<String> nomiProprietaPA(String filterSoggettoTipo, String filterSoggettoNome, List<String> tipoServiziProtocollo) throws DriverConfigurazioneException {
  1258.         return this.porteApplicativeDriver.nomiProprietaPA(filterSoggettoTipo, filterSoggettoNome, tipoServiziProtocollo);
  1259.     }
  1260.    
  1261.     /**
  1262.      * Ritorna la lista di proprieta per l'autenticazione custom di una Porta Applicativa
  1263.      */
  1264.     public List<Proprieta> porteApplicativeAutenticazioneCustomPropList(long idPortaApplicativa, ISearch ricerca) throws DriverConfigurazioneException {
  1265.         return this.porteApplicativeSearchDriver.porteApplicativeAutenticazioneCustomPropList(idPortaApplicativa, ricerca);
  1266.     }
  1267.    
  1268.     /**
  1269.      * Ritorna la lista di proprieta per l'autorizzazione custom di una Porta Applicativa
  1270.      */
  1271.     public List<Proprieta> porteApplicativeAutorizzazioneCustomPropList(long idPortaApplicativa, ISearch ricerca) throws DriverConfigurazioneException {
  1272.         return this.porteApplicativeSearchDriver.porteApplicativeAutorizzazioneCustomPropList(idPortaApplicativa, ricerca);
  1273.     }
  1274.    
  1275.     public List<String> porteApplicativeRateLimitingValoriUnivoci(String pName) throws DriverConfigurazioneException {
  1276.         return this.porteApplicativeDriver.porteApplicativeRateLimitingValoriUnivoci(pName);
  1277.     }
  1278.    
  1279.     /**
  1280.      * Ritorna la lista di proprieta per l'autorizzazione contenuti custom di una Porta Applicativa
  1281.      */
  1282.     public List<Proprieta> porteApplicativeAutorizzazioneContenutoCustomPropList(long idPortaApplicativa, ISearch ricerca) throws DriverConfigurazioneException {
  1283.         return this.porteApplicativeSearchDriver.porteApplicativeAutorizzazioneContenutoCustomPropList(idPortaApplicativa, ricerca);
  1284.     }
  1285.    
  1286.     /**
  1287.      * Ritorna la lista di Azioni di una  Porta Applicativa
  1288.      */
  1289.     public List<PortaApplicativaAzione> porteAppAzioneList(long idPortaApplicativa, ISearch ricerca) throws DriverConfigurazioneException {
  1290.         return this.porteApplicativeSearchDriver.porteAppAzioneList(idPortaApplicativa, ricerca);
  1291.     }

  1292.     public List<ServizioApplicativo> porteAppServizioApplicativoList(long idPortaApplicativa, ISearch ricerca) throws DriverConfigurazioneException {
  1293.         return this.porteApplicativeSearchDriver.porteAppServizioApplicativoList(idPortaApplicativa, ricerca);
  1294.     }
  1295.    
  1296.     public List<PortaApplicativaAutorizzazioneSoggetto> porteAppSoggettoList(long idPortaApplicativa, ISearch ricerca) throws DriverConfigurazioneException {
  1297.         return this.porteApplicativeSearchDriver.porteAppSoggettoList(idPortaApplicativa, ricerca);
  1298.     }
  1299.    
  1300.     public List<PortaApplicativaAutorizzazioneServizioApplicativo> porteAppServiziApplicativiAutorizzatiList(long idPortaApplicativa, ISearch ricerca) throws DriverConfigurazioneException {
  1301.         return this.porteApplicativeSearchDriver.porteAppServiziApplicativiAutorizzatiList(idPortaApplicativa, ricerca);
  1302.     }
  1303.    
  1304.     public List<PortaApplicativaAutorizzazioneServizioApplicativo> porteAppServiziApplicativiAutorizzatiTokenList(long idPortaApplicativa, ISearch ricerca) throws DriverConfigurazioneException {
  1305.         return this.porteApplicativeSearchDriver.porteAppServiziApplicativiAutorizzatiTokenList(idPortaApplicativa, ricerca);
  1306.     }
  1307.    
  1308.     public List<MessageSecurityFlowParameter> porteAppMessageSecurityRequestList(long idPortaApplicativa, ISearch ricerca) throws DriverConfigurazioneException {
  1309.         return this.porteApplicativeSearchDriver.porteAppMessageSecurityRequestList(idPortaApplicativa, ricerca);
  1310.     }

  1311.     public List<MessageSecurityFlowParameter> porteAppMessageSecurityResponseList(long idPortaApplicativa, ISearch ricerca) throws DriverConfigurazioneException {
  1312.         return this.porteApplicativeSearchDriver.porteAppMessageSecurityResponseList(idPortaApplicativa, ricerca);
  1313.     }
  1314.    
  1315.     public List<PortaApplicativa> porteAppWithServizio(long idSoggettoErogatore, String tipoServizio,String nomeServizio, Integer versioneServizio) throws DriverConfigurazioneException {
  1316.         return this.porteApplicativeDriver.porteAppWithServizio(idSoggettoErogatore, tipoServizio, nomeServizio, versioneServizio);
  1317.     }

  1318.     public List<PortaApplicativa> porteAppWithIdServizio(long idServizio) throws DriverConfigurazioneException {
  1319.         return this.porteApplicativeDriver.porteAppWithIdServizio(idServizio);
  1320.     }
  1321.    
  1322.     public List<CorrelazioneApplicativaElemento> porteApplicativeCorrelazioneApplicativaList(long idPortaApplicativa, ISearch ricerca) throws DriverConfigurazioneException {
  1323.         return this.porteApplicativeSearchDriver.porteApplicativeCorrelazioneApplicativaList(idPortaApplicativa, ricerca);
  1324.     }

  1325.     public List<CorrelazioneApplicativaRispostaElemento> porteApplicativeCorrelazioneApplicativaRispostaList(long idPortaApplicativa, ISearch ricerca) throws DriverConfigurazioneException {
  1326.         return this.porteApplicativeSearchDriver.porteApplicativeCorrelazioneApplicativaRispostaList(idPortaApplicativa, ricerca);
  1327.     }
  1328.    
  1329.     /**
  1330.      * Verifica l'esistenza di una porta applicativa.
  1331.      * se l'azione e' specificata ma non vi sono porte applicative che mathcano i criteri allora
  1332.      * effettua la ricerca senza tener conto dell'azione. Per una ricerca piu precisa utilizzare
  1333.      * existsPortaApplicativa(IDPortaApplicativa idPA,boolean ricercaPuntuale) con il parametro ricercaPuntuale a true
  1334.      * @param idPA id della porta applicativa da verificare
  1335.      * @return true se la porta applicativa esiste, false altrimenti
  1336.      * @throws DriverConfigurazioneException
  1337.      */    
  1338.     @Override
  1339.     public boolean existsPortaApplicativa(IDPortaApplicativa idPA) throws DriverConfigurazioneException {
  1340.         return this.porteApplicativeDriver.existsPortaApplicativa(idPA);
  1341.     }

  1342.     public List<PortaApplicativa> getPorteApplicativeWithServizio(Long idServizio, String tiposervizio, String nomeservizio, Integer versioneServizio,
  1343.             Long idSoggetto, String tiposoggetto, String nomesoggetto) throws DriverConfigurazioneException {
  1344.         return this.porteApplicativeDriver.getPorteApplicativeWithServizio(idServizio, tiposervizio, nomeservizio, versioneServizio,
  1345.                 idSoggetto, tiposoggetto, nomesoggetto);
  1346.     }

  1347.     public PortaApplicativa getPortaApplicativaWithSoggettoAndServizio(String nome, Long idSoggetto, Long idServizio,
  1348.             String tipoServizio, String nomeServizio, Integer versioneServizio) throws DriverConfigurazioneException {
  1349.         return this.porteApplicativeDriver.getPortaApplicativaWithSoggettoAndServizio(nome, idSoggetto, idServizio,
  1350.                 tipoServizio, nomeServizio, versioneServizio);
  1351.     }

  1352.     // NOTA: Metodo non sicuro!!! Possono esistere piu' azioni di port type diversi o accordi diversi !!!!!
  1353.     public List<IDPortaApplicativa> getPortaApplicativaAzione(String nome) throws DriverConfigurazioneException, DriverConfigurazioneNotFound {
  1354.         return this.porteApplicativeDriver.getPortaApplicativaAzione(nome);
  1355.     }

  1356.     // NOTA: Metodo non sicuro!!! Possono esistere piu' azioni di port type diversi o accordi diversi !!!!!
  1357.     public boolean existsPortaApplicativaAzione(String nome) throws DriverConfigurazioneException {
  1358.         return this.porteApplicativeDriver.existsPortaApplicativaAzione(nome);
  1359.     }
  1360.    
  1361.     public List<PortaApplicativa> serviziPorteAppList(String tipoServizio,String nomeServizio, Integer versioneServizio,
  1362.             long idServizio, long idSoggettoErogatore, ISearch ricerca) throws DriverConfigurazioneException {
  1363.         return this.porteApplicativeSearchDriver.serviziPorteAppList(tipoServizio, nomeServizio, versioneServizio,
  1364.                 idServizio, idSoggettoErogatore, ricerca);
  1365.     }
  1366.    
  1367.     public List<PortaApplicativa> getPorteApplicativaByIdProprietario(long idProprietario) throws DriverConfigurazioneException{
  1368.         return this.porteApplicativeDriver.getPorteApplicativaByIdProprietario(idProprietario);
  1369.     }

  1370.     /**
  1371.      * Recupera tutte le porte applicative relative al servizio idServizio, erogato dal soggetto erogatore del servizio.
  1372.      * @param idSE
  1373.      * @return List<PortaApplicativa>
  1374.      * @throws DriverConfigurazioneException
  1375.      */
  1376.     public List<PortaApplicativa> getPorteApplicative(IDServizio idSE) throws DriverConfigurazioneException{
  1377.         return this.porteApplicativeDriver.getPorteApplicative(idSE);
  1378.     }

  1379.     public List<PortaApplicativa> getPorteApplicativeBySoggetto(long idSoggetto) throws DriverConfigurazioneException {
  1380.         return this.porteApplicativeDriver.getPorteApplicativeBySoggetto(idSoggetto);
  1381.     }
  1382.    
  1383.     public List<PortaApplicativa> getPorteApplicativeBySoggettoVirtuale(IDSoggetto soggettoVirtuale) throws DriverConfigurazioneException {
  1384.         return this.porteApplicativeDriver.getPorteApplicativeBySoggettoVirtuale(soggettoVirtuale);
  1385.     }
  1386.    
  1387.     /**
  1388.      * Restituisce la lista degli identificativi delle porte applicative
  1389.      *
  1390.      * @param filtroRicerca
  1391.      * @return lista degli identificativi delle porte applicative
  1392.      * @throws DriverConfigurazioneException
  1393.      * @throws DriverConfigurazioneNotFound
  1394.      */
  1395.     @Override
  1396.     public List<IDPortaApplicativa> getAllIdPorteApplicative(FiltroRicercaPorteApplicative filtroRicerca) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  1397.         return this.porteApplicativeDriver.getAllIdPorteApplicative(filtroRicerca);
  1398.     }

  1399.     @Override
  1400.     public List<IDConnettore> getConnettoriConsegnaNotifichePrioritarie(String queueName) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  1401.         return this.porteApplicativeDriver.getConnettoriConsegnaNotifichePrioritarie(queueName);
  1402.     }
  1403.    
  1404.     public int resetConnettoriConsegnaNotifichePrioritarie(String queueName) throws DriverConfigurazioneException {
  1405.         return this.porteApplicativeDriver.resetConnettoriConsegnaNotifichePrioritarie(queueName);
  1406.     }
  1407.    
  1408.     public List<MtomProcessorFlowParameter> porteApplicativeMTOMRequestList(long idPortaApplicativa, ISearch ricerca) throws DriverConfigurazioneException {
  1409.         return this.porteApplicativeSearchDriver.porteApplicativeMTOMRequestList(idPortaApplicativa, ricerca);
  1410.     }

  1411.     public List<MtomProcessorFlowParameter> porteApplicativeMTOMResponseList(long idPortaApplicativa, ISearch ricerca) throws DriverConfigurazioneException {
  1412.         return this.porteApplicativeSearchDriver.porteApplicativeMTOMResponseList(idPortaApplicativa, ricerca);
  1413.     }
  1414.    
  1415.     public List<PortaApplicativa> getPorteApplicativeByPolicyGestioneToken(String nome) throws DriverConfigurazioneException{
  1416.         return this.porteApplicativeDriver.getPorteApplicativeByPolicyGestioneToken(nome);
  1417.     }
  1418.    
  1419.     /**
  1420.      * Ritorna la lista di proprieta per la configurazione custom dei connettori multipli di una Porta Applicativa
  1421.      */
  1422.     public List<Proprieta> porteApplicativeConnettoriMultipliConfigPropList(long idPortaApplicativa, ISearch ricerca) throws DriverConfigurazioneException {
  1423.         return this.porteApplicativeSearchDriver.porteApplicativeConnettoriMultipliConfigPropList(idPortaApplicativa, ricerca);
  1424.     }
  1425.    
  1426.     /**
  1427.      * Ritorna la lista di proprieta di un connettore multiplo di una Porta Applicativa
  1428.      */
  1429.     public List<Proprieta> porteApplicativeConnettoriMultipliPropList(long idPaSa, ISearch ricerca) throws DriverConfigurazioneException {
  1430.         return this.porteApplicativeSearchDriver.porteApplicativeConnettoriMultipliPropList(idPaSa, ricerca);
  1431.     }

  1432.     public MappingErogazionePortaApplicativa getMappingErogazione(IDServizio idServizio, IDPortaApplicativa idPortaApplicativa) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  1433.         return this.porteApplicativeDriver.getMappingErogazione(idServizio, idPortaApplicativa);
  1434.     }
  1435.    
  1436.     public static List<String> normalizeConnettoriMultpliById(List<String> sa, PortaApplicativa pa){
  1437.         return DriverConfigurazioneDB_porteApplicativeDriver.normalizeConnettoriMultpliById(sa, pa);
  1438.     }
  1439.    
  1440.     public ProprietaOggetto getProprietaOggetto(IDPortaApplicativa idPA) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  1441.         return this.porteApplicativeDriver.getProprietaOggetto(idPA);
  1442.     }
  1443.    
  1444.     public void updateProprietaOggetto(IDPortaApplicativa idPA, String user) throws DriverConfigurazioneException {
  1445.         this.porteApplicativeDriver.updateProprietaOggetto(idPA, user);
  1446.     }
  1447.    
  1448.    
  1449.    
  1450.    
  1451.    
  1452.     // *** Servizi Applicativi ***

  1453.     @Override
  1454.     public ServizioApplicativo getServizioApplicativo(IDServizioApplicativo idServizioApplicativo) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  1455.         return this.serviziApplicativiDriver.getServizioApplicativo(idServizioApplicativo);
  1456.     }
  1457.     @Override
  1458.     public ServizioApplicativo getServizioApplicativoByCredenzialiBasic(String aUser,String aPassword, CryptConfig config) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  1459.         return this.serviziApplicativiDriver.getServizioApplicativoByCredenzialiBasic(aUser, aPassword, config);
  1460.     }
  1461.     public ServizioApplicativo getServizioApplicativoByCredenzialiBasic(String aUser,String aPassword, CryptConfig config,
  1462.             List<String> tipiSoggetto) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  1463.         return this.serviziApplicativiDriver.getServizioApplicativoByCredenzialiBasic(aUser, aPassword, config,
  1464.                 tipiSoggetto);
  1465.     }
  1466.     @Override
  1467.     public ServizioApplicativo getServizioApplicativoByCredenzialiApiKey(String aUser,String aPassword, boolean appId, CryptConfig config) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  1468.         return this.serviziApplicativiDriver.getServizioApplicativoByCredenzialiApiKey(aUser, aPassword, appId, config);
  1469.     }
  1470.     public ServizioApplicativo getServizioApplicativoByCredenzialiApiKey(String aUser,String aPassword, boolean appId, CryptConfig config,
  1471.             List<String> tipiSoggetto) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  1472.         return this.serviziApplicativiDriver.getServizioApplicativoByCredenzialiApiKey(aUser, aPassword, appId, config,
  1473.                 tipiSoggetto);
  1474.     }
  1475.     @Override
  1476.     public ServizioApplicativo getServizioApplicativoByCredenzialiToken(String tokenPolicy, String tokenClientId, boolean tokenWithHttpsEnabled) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  1477.         return this.serviziApplicativiDriver.getServizioApplicativoByCredenzialiToken(tokenPolicy, tokenClientId, tokenWithHttpsEnabled);
  1478.     }
  1479.     public ServizioApplicativo getServizioApplicativoByCredenzialiToken(String tokenPolicy, String tokenClientId, boolean tokenWithHttpsEnabled,
  1480.             List<String> tipiSoggetto) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  1481.         return this.serviziApplicativiDriver.getServizioApplicativoByCredenzialiToken(tokenPolicy, tokenClientId, tokenWithHttpsEnabled,
  1482.                 tipiSoggetto);
  1483.     }
  1484.     @Override
  1485.     public ServizioApplicativo getServizioApplicativoByCredenzialiSsl(String aSubject, String aIssuer) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  1486.         return this.serviziApplicativiDriver.getServizioApplicativoByCredenzialiSsl(aSubject, aIssuer);
  1487.     }
  1488.     public ServizioApplicativo getServizioApplicativoByCredenzialiSsl(String aSubject, String aIssuer,
  1489.             List<String> tipiSoggetto) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  1490.         return this.serviziApplicativiDriver.getServizioApplicativoByCredenzialiSsl(aSubject, aIssuer,
  1491.                 tipiSoggetto);
  1492.     }
  1493.     public ServizioApplicativo getServizioApplicativoByCredenzialiSsl(String aSubject, String aIssuer,
  1494.             List<String> tipiSoggetto,
  1495.             boolean includiApplicativiNonModI,boolean includiApplicativiModIEsterni,boolean includiApplicativiModIInterni) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  1496.         return this.serviziApplicativiDriver.getServizioApplicativoByCredenzialiSsl(aSubject, aIssuer,
  1497.                 tipiSoggetto,
  1498.                 includiApplicativiNonModI, includiApplicativiModIEsterni, includiApplicativiModIInterni);
  1499.     }
  1500.     @Override
  1501.     public ServizioApplicativo getServizioApplicativoByCredenzialiSsl(CertificateInfo certificate, boolean strictVerifier) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  1502.         return this.serviziApplicativiDriver.getServizioApplicativoByCredenzialiSsl(certificate, strictVerifier);
  1503.     }
  1504.     public ServizioApplicativo getServizioApplicativoByCredenzialiSsl(CertificateInfo certificate, boolean strictVerifier,
  1505.             List<String> tipiSoggetto) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  1506.         return this.serviziApplicativiDriver.getServizioApplicativoByCredenzialiSsl(certificate, strictVerifier,
  1507.                 tipiSoggetto);
  1508.     }
  1509.     public ServizioApplicativo getServizioApplicativoByCredenzialiSsl(CertificateInfo certificate, boolean strictVerifier,
  1510.             List<String> tipiSoggetto,
  1511.             boolean includiApplicativiNonModI,boolean includiApplicativiModIEsterni,boolean includiApplicativiModIInterni) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  1512.         return this.serviziApplicativiDriver.getServizioApplicativoByCredenzialiSsl(certificate, strictVerifier,
  1513.                 tipiSoggetto,
  1514.                 includiApplicativiNonModI, includiApplicativiModIEsterni, includiApplicativiModIInterni);
  1515.     }
  1516.     @Override
  1517.     public ServizioApplicativo getServizioApplicativoByCredenzialiPrincipal(String principal) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  1518.         return this.serviziApplicativiDriver.getServizioApplicativoByCredenzialiPrincipal(principal);
  1519.     }
  1520.     public ServizioApplicativo getServizioApplicativoByCredenzialiPrincipal(String principal,
  1521.             List<String> tipiSoggetto) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  1522.         return this.serviziApplicativiDriver.getServizioApplicativoByCredenzialiPrincipal(principal,
  1523.                 tipiSoggetto);
  1524.     }
  1525.     public ServizioApplicativo getServizioApplicativo(long idServizioApplicativo) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  1526.         return this.serviziApplicativiDriver.getServizioApplicativo(idServizioApplicativo);
  1527.     }
  1528.    
  1529.     /**
  1530.      *
  1531.      * @param aSA
  1532.      * @throws DriverConfigurazioneException
  1533.      */
  1534.     @Override
  1535.     public void createServizioApplicativo(ServizioApplicativo aSA) throws DriverConfigurazioneException {
  1536.         this.serviziApplicativiDriver.createServizioApplicativo(aSA);
  1537.     }

  1538.     /**
  1539.      *
  1540.      * @param aSA
  1541.      * @throws DriverConfigurazioneException
  1542.      */
  1543.     @Override
  1544.     public void updateServizioApplicativo(ServizioApplicativo aSA) throws DriverConfigurazioneException {
  1545.         this.serviziApplicativiDriver.updateServizioApplicativo(aSA);
  1546.     }

  1547.     /**
  1548.      *
  1549.      * @param aSA
  1550.      * @throws DriverConfigurazioneException
  1551.      */
  1552.     @Override
  1553.     public void deleteServizioApplicativo(ServizioApplicativo aSA) throws DriverConfigurazioneException {
  1554.         this.serviziApplicativiDriver.deleteServizioApplicativo(aSA);
  1555.     }
  1556.    
  1557.     /**
  1558.      * Recupera tutti i servizi applicativi in base ai parametri di ricerca passati
  1559.      */
  1560.     public List<ServizioApplicativo> servizioApplicativoList(ISearch ricerca) throws DriverConfigurazioneException {
  1561.         return this.serviziApplicativiSearchDriver.servizioApplicativoList(ricerca);
  1562.     }

  1563.     public List<ServizioApplicativo> servizioApplicativoList(IDSoggetto idSO,ISearch ricerca) throws DriverConfigurazioneException {
  1564.         return this.serviziApplicativiSearchDriver.servizioApplicativoList(idSO, ricerca);
  1565.     }

  1566.     public List<ServizioApplicativo> servizioApplicativoWithCredenzialiBasicList(String utente, String password, boolean checkPassword) throws DriverConfigurazioneException {
  1567.         return this.serviziApplicativiDriver.servizioApplicativoWithCredenzialiBasicList(utente, password, checkPassword);
  1568.     }
  1569.    
  1570.     public List<ServizioApplicativo> servizioApplicativoWithCredenzialiApiKeyList(String utente, boolean appId) throws DriverConfigurazioneException {
  1571.         return this.serviziApplicativiDriver.servizioApplicativoWithCredenzialiApiKeyList(utente, appId);
  1572.     }

  1573.     public List<ServizioApplicativo> servizioApplicativoWithCredenzialiSslList(String subject, String issuer,
  1574.             List<String> tipiSoggetto,
  1575.             boolean includiApplicativiNonModI, boolean includiApplicativiModIEsterni, boolean includiApplicativiModIInterni) throws DriverConfigurazioneException {
  1576.         return this.serviziApplicativiDriver.servizioApplicativoWithCredenzialiSslList(subject, issuer,
  1577.                 tipiSoggetto,
  1578.                 includiApplicativiNonModI, includiApplicativiModIEsterni, includiApplicativiModIInterni);
  1579.     }
  1580.    
  1581.     public List<ServizioApplicativo> servizioApplicativoWithCredenzialiSslList(CertificateInfo certificate, boolean strictVerifier,
  1582.             List<String> tipiSoggetto,
  1583.             boolean includiApplicativiNonModI, boolean includiApplicativiModIEsterni, boolean includiApplicativiModIInterni) throws DriverConfigurazioneException {
  1584.         return this.serviziApplicativiDriver.servizioApplicativoWithCredenzialiSslList(certificate, strictVerifier,
  1585.                 tipiSoggetto,
  1586.                 includiApplicativiNonModI, includiApplicativiModIEsterni, includiApplicativiModIInterni);
  1587.     }
  1588.    
  1589.     public List<ServizioApplicativo> servizioApplicativoWithCredenzialiPrincipalList(String principal) throws DriverConfigurazioneException {
  1590.         return this.serviziApplicativiDriver.servizioApplicativoWithCredenzialiPrincipalList(principal);
  1591.     }
  1592.    
  1593.     public List<ServizioApplicativo> servizioApplicativoWithCredenzialiTokenList(String tokenPolicy, String tokenClientId, boolean tokenWithHttpsEnabled) throws DriverConfigurazioneException {
  1594.         return this.serviziApplicativiDriver.servizioApplicativoWithCredenzialiTokenList(tokenPolicy, tokenClientId, tokenWithHttpsEnabled);
  1595.     }
  1596.    
  1597.     public String[] soggettiServizioApplicativoList(long idSoggetto) throws DriverConfigurazioneException {
  1598.         return this.serviziApplicativiDriver.soggettiServizioApplicativoList(idSoggetto);
  1599.     }

  1600.     public List<IDServizioApplicativoDB> soggettiServizioApplicativoList(IDSoggetto idSoggetto,String superuser,CredenzialeTipo credenziale, Boolean appId, String tipoSA,
  1601.             boolean bothSslAndToken, String tokenPolicy) throws DriverConfigurazioneException {
  1602.         return this.serviziApplicativiDriver.soggettiServizioApplicativoList(idSoggetto, superuser, credenziale, appId, tipoSA,
  1603.                 bothSslAndToken, tokenPolicy);
  1604.     }
  1605.     public List<IDServizioApplicativoDB> soggettiServizioApplicativoList(IDSoggetto idSoggetto,String superuser,CredenzialeTipo credenziale, Boolean appId, String tipoSA,
  1606.             boolean bothSslAndToken, String tokenPolicy, boolean tokenPolicyOR) throws DriverConfigurazioneException {
  1607.         return this.serviziApplicativiDriver.soggettiServizioApplicativoList(idSoggetto, superuser, credenziale, appId, tipoSA,
  1608.                 bothSslAndToken, tokenPolicy, tokenPolicyOR);
  1609.     }
  1610.    
  1611.     public List<ServizioApplicativo> soggettiServizioApplicativoList(String superuser, ISearch ricerca) throws DriverConfigurazioneException {
  1612.         return this.serviziApplicativiSearchDriver.soggettiServizioApplicativoList(superuser, ricerca);
  1613.     }

  1614.     public List<ServizioApplicativo> soggettiServizioApplicativoList(Long idSoggetto, ISearch ricerca) throws DriverConfigurazioneException {
  1615.         return this.serviziApplicativiSearchDriver.soggettiServizioApplicativoList(idSoggetto, ricerca);
  1616.     }
  1617.    
  1618.     public List<String> servizioApplicativoRuoliList(long idSA, ISearch ricerca) throws DriverConfigurazioneException {
  1619.         return this.serviziApplicativiSearchDriver.servizioApplicativoRuoliList(idSA, ricerca);
  1620.     }
  1621.    
  1622.     public List<Proprieta> serviziApplicativiProprietaList(int idSA, ISearch ricerca) throws DriverConfigurazioneException {
  1623.         return this.serviziApplicativiSearchDriver.serviziApplicativiProprietaList(idSA, ricerca);
  1624.     }
  1625.    
  1626.     /**
  1627.      * Ritorna la lista di nomi delle proprieta registrate
  1628.      */
  1629.     public List<String> nomiProprietaSA(String filterSoggettoTipo, String filterSoggettoNome, List<String> tipoSoggettiProtocollo) throws DriverConfigurazioneException {
  1630.         return this.serviziApplicativiDriver.nomiProprietaSA(filterSoggettoTipo, filterSoggettoNome, tipoSoggettiProtocollo);
  1631.     }
  1632.    
  1633.     public List<IDServizioApplicativoDB> getIdServiziApplicativiWithIdErogatore(Long idErogatore, String tipo,
  1634.             boolean checkIM, boolean checkConnettoreAbilitato) throws DriverConfigurazioneException {
  1635.         return this.serviziApplicativiDriver.getIdServiziApplicativiWithIdErogatore(idErogatore, tipo,
  1636.                 checkIM, checkConnettoreAbilitato);
  1637.     }

  1638.     /**
  1639.      * Verifica l'esistenza di un servizio applicativo.
  1640.      *
  1641.      * @param idServizioApplicativo id del servizio applicativo
  1642.      * @return true se il servizio applicativo esiste, false altrimenti
  1643.      * @throws DriverConfigurazioneException
  1644.      */    
  1645.     @Override
  1646.     public boolean existsServizioApplicativo(IDServizioApplicativo idServizioApplicativo) throws DriverConfigurazioneException{
  1647.         return this.serviziApplicativiDriver.existsServizioApplicativo(idServizioApplicativo);
  1648.     }

  1649.     public long getIdServizioApplicativo(IDSoggetto idSoggetto, String nomeServizioApplicativo) throws DriverConfigurazioneException {
  1650.         return this.serviziApplicativiDriver.getIdServizioApplicativo(idSoggetto, nomeServizioApplicativo);
  1651.     }

  1652.     public boolean existsServizioApplicativoSoggetto(Long idSoggetto) throws DriverConfigurazioneException {
  1653.         return this.serviziApplicativiDriver.existsServizioApplicativoSoggetto(idSoggetto);
  1654.     }
  1655.    
  1656.     public boolean isServizioApplicativoInUsoComeErogatore(ServizioApplicativo sa, Map<ErrorsHandlerCostant, String> whereIsInUso) throws DriverConfigurazioneException {
  1657.         return this.serviziApplicativiDriver.isServizioApplicativoInUsoComeErogatore(sa, whereIsInUso);
  1658.     }
  1659.    
  1660.     // all
  1661.     public int countTipologieServiziApplicativi(ISearch filters) throws DriverConfigurazioneException
  1662.     {
  1663.         return this.serviziApplicativiSearchDriver.countTipologieServiziApplicativi(filters);
  1664.     }
  1665.     public int countTipologieServiziApplicativi(IDSoggetto proprietario,ISearch filters) throws DriverConfigurazioneException
  1666.     {
  1667.         return this.serviziApplicativiSearchDriver.countTipologieServiziApplicativi(proprietario, filters);
  1668.     }

  1669.     // fruizione

  1670.     public int countTipologieFruizioneServiziApplicativi(ISearch filters) throws DriverConfigurazioneException
  1671.     {
  1672.         return this.serviziApplicativiSearchDriver.countTipologieFruizioneServiziApplicativi(filters);
  1673.     }
  1674.     public int countTipologieFruizioneServiziApplicativi(ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
  1675.     {
  1676.         return this.serviziApplicativiSearchDriver.countTipologieFruizioneServiziApplicativi(filters, checkAssociazionePorta);
  1677.     }
  1678.     public int countTipologieFruizioneServiziApplicativi(ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
  1679.     {
  1680.         return this.serviziApplicativiSearchDriver.countTipologieFruizioneServiziApplicativi(filters, checkAssociazionePorta, isBound);
  1681.     }

  1682.     public int countTipologieFruizioneServiziApplicativi(RicercaTipologiaFruizione fruizione, ISearch filters) throws DriverConfigurazioneException
  1683.     {
  1684.         return this.serviziApplicativiSearchDriver.countTipologieFruizioneServiziApplicativi(fruizione, filters);
  1685.     }
  1686.     public int countTipologieFruizioneServiziApplicativi(RicercaTipologiaFruizione fruizione, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
  1687.     {
  1688.         return this.serviziApplicativiSearchDriver.countTipologieFruizioneServiziApplicativi(fruizione, filters, checkAssociazionePorta);
  1689.     }
  1690.     public int countTipologieFruizioneServiziApplicativi(RicercaTipologiaFruizione fruizione, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
  1691.     {
  1692.         return this.serviziApplicativiSearchDriver.countTipologieFruizioneServiziApplicativi(fruizione, filters, checkAssociazionePorta, isBound);
  1693.     }

  1694.     public int countTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, ISearch filters) throws DriverConfigurazioneException
  1695.     {
  1696.         return this.serviziApplicativiSearchDriver.countTipologieFruizioneServiziApplicativi(proprietario, filters);
  1697.     }
  1698.     public int countTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
  1699.     {
  1700.         return this.serviziApplicativiSearchDriver.countTipologieFruizioneServiziApplicativi(proprietario, filters, checkAssociazionePorta);
  1701.     }
  1702.     public int countTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
  1703.     {
  1704.         return this.serviziApplicativiSearchDriver.countTipologieFruizioneServiziApplicativi(proprietario, filters, checkAssociazionePorta, isBound);
  1705.     }

  1706.     public int countTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaFruizione fruizione, ISearch filters) throws DriverConfigurazioneException
  1707.     {
  1708.         return this.serviziApplicativiSearchDriver.countTipologieFruizioneServiziApplicativi(proprietario, fruizione, filters);
  1709.     }
  1710.     public int countTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaFruizione fruizione, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
  1711.     {
  1712.         return this.serviziApplicativiSearchDriver.countTipologieFruizioneServiziApplicativi(proprietario, fruizione, filters, checkAssociazionePorta);
  1713.     }
  1714.     public int countTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaFruizione fruizione, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
  1715.     {
  1716.         return this.serviziApplicativiSearchDriver.countTipologieFruizioneServiziApplicativi(proprietario, fruizione, filters, checkAssociazionePorta, isBound);
  1717.     }

  1718.     // erogazione

  1719.     public int countTipologieErogazioneServiziApplicativi(ISearch filters) throws DriverConfigurazioneException
  1720.     {
  1721.         return this.serviziApplicativiSearchDriver.countTipologieErogazioneServiziApplicativi(filters);
  1722.     }
  1723.     public int countTipologieErogazioneServiziApplicativi(ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
  1724.     {
  1725.         return this.serviziApplicativiSearchDriver.countTipologieErogazioneServiziApplicativi(filters, checkAssociazionePorta);
  1726.     }
  1727.     public int countTipologieErogazioneServiziApplicativi(ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
  1728.     {
  1729.         return this.serviziApplicativiSearchDriver.countTipologieErogazioneServiziApplicativi(filters, checkAssociazionePorta, isBound);
  1730.     }
  1731.    
  1732.     public int countTipologieErogazioneServiziApplicativi(RicercaTipologiaErogazione erogazione, ISearch filters) throws DriverConfigurazioneException
  1733.     {
  1734.         return this.serviziApplicativiSearchDriver.countTipologieErogazioneServiziApplicativi(erogazione, filters);
  1735.     }
  1736.     public int countTipologieErogazioneServiziApplicativi(RicercaTipologiaErogazione erogazione, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
  1737.     {
  1738.         return this.serviziApplicativiSearchDriver.countTipologieErogazioneServiziApplicativi(erogazione, filters, checkAssociazionePorta);
  1739.     }
  1740.     public int countTipologieErogazioneServiziApplicativi(RicercaTipologiaErogazione erogazione, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
  1741.     {
  1742.         return this.serviziApplicativiSearchDriver.countTipologieErogazioneServiziApplicativi(erogazione, filters, checkAssociazionePorta, isBound);
  1743.     }

  1744.     public int countTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaErogazione erogazione, ISearch filters) throws DriverConfigurazioneException
  1745.     {
  1746.         return this.serviziApplicativiSearchDriver.countTipologieErogazioneServiziApplicativi(proprietario, erogazione, filters);
  1747.     }
  1748.     public int countTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaErogazione erogazione, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
  1749.     {
  1750.         return this.serviziApplicativiSearchDriver.countTipologieErogazioneServiziApplicativi(proprietario, erogazione, filters, checkAssociazionePorta);
  1751.     }
  1752.     public int countTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaErogazione erogazione, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
  1753.     {
  1754.         return this.serviziApplicativiSearchDriver.countTipologieErogazioneServiziApplicativi(proprietario, erogazione, filters, checkAssociazionePorta, isBound);
  1755.     }

  1756.     public int countTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, ISearch filters) throws DriverConfigurazioneException
  1757.     {
  1758.         return this.serviziApplicativiSearchDriver.countTipologieErogazioneServiziApplicativi(proprietario, filters);
  1759.     }
  1760.     public int countTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
  1761.     {
  1762.         return this.serviziApplicativiSearchDriver.countTipologieErogazioneServiziApplicativi(proprietario, filters, checkAssociazionePorta);
  1763.     }
  1764.     public int countTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
  1765.     {
  1766.         return this.serviziApplicativiSearchDriver.countTipologieErogazioneServiziApplicativi(proprietario, filters, checkAssociazionePorta, isBound);
  1767.     }

  1768.     // all
  1769.     public List<TipologiaServizioApplicativo> getTipologieServiziApplicativi(ISearch filters) throws DriverConfigurazioneException
  1770.     {
  1771.         return this.serviziApplicativiSearchDriver.getTipologieServiziApplicativi(filters);
  1772.     }
  1773.     public List<TipologiaServizioApplicativo> getTipologieServiziApplicativi(IDSoggetto proprietario,ISearch filters) throws DriverConfigurazioneException
  1774.     {
  1775.         return this.serviziApplicativiSearchDriver.getTipologieServiziApplicativi(proprietario, filters);
  1776.     }

  1777.     // fruizione

  1778.     public List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(ISearch filters) throws DriverConfigurazioneException
  1779.     {
  1780.         return this.serviziApplicativiSearchDriver.getTipologieFruizioneServiziApplicativi(filters);
  1781.     }
  1782.     public List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
  1783.     {
  1784.         return this.serviziApplicativiSearchDriver.getTipologieFruizioneServiziApplicativi(filters, checkAssociazionePorta);
  1785.     }
  1786.     public List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
  1787.     {
  1788.         return this.serviziApplicativiSearchDriver.getTipologieFruizioneServiziApplicativi(filters, checkAssociazionePorta, isBound);
  1789.     }

  1790.     public List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(RicercaTipologiaFruizione fruizione, ISearch filters) throws DriverConfigurazioneException
  1791.     {
  1792.         return this.serviziApplicativiSearchDriver.getTipologieFruizioneServiziApplicativi(fruizione, filters);
  1793.     }
  1794.     public List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(RicercaTipologiaFruizione fruizione, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
  1795.     {
  1796.         return this.serviziApplicativiSearchDriver.getTipologieFruizioneServiziApplicativi(fruizione, filters, checkAssociazionePorta);
  1797.     }
  1798.     public List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(RicercaTipologiaFruizione fruizione, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
  1799.     {
  1800.         return this.serviziApplicativiSearchDriver.getTipologieFruizioneServiziApplicativi(fruizione, filters, checkAssociazionePorta, isBound);
  1801.     }

  1802.     public List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, ISearch filters) throws DriverConfigurazioneException
  1803.     {
  1804.         return this.serviziApplicativiSearchDriver.getTipologieFruizioneServiziApplicativi(proprietario, filters);
  1805.     }
  1806.     public List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
  1807.     {
  1808.         return this.serviziApplicativiSearchDriver.getTipologieFruizioneServiziApplicativi(proprietario, filters, checkAssociazionePorta);
  1809.     }
  1810.     public List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
  1811.     {
  1812.         return this.serviziApplicativiSearchDriver.getTipologieFruizioneServiziApplicativi(proprietario, filters, checkAssociazionePorta, isBound);
  1813.     }

  1814.     public List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaFruizione fruizione, ISearch filters) throws DriverConfigurazioneException
  1815.     {
  1816.         return this.serviziApplicativiSearchDriver.getTipologieFruizioneServiziApplicativi(proprietario, fruizione, filters);
  1817.     }
  1818.     public List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaFruizione fruizione, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
  1819.     {
  1820.         return this.serviziApplicativiSearchDriver.getTipologieFruizioneServiziApplicativi(proprietario, fruizione, filters, checkAssociazionePorta);
  1821.     }
  1822.     public List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaFruizione fruizione, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
  1823.     {
  1824.         return this.serviziApplicativiSearchDriver.getTipologieFruizioneServiziApplicativi(proprietario, fruizione, filters, checkAssociazionePorta, isBound);
  1825.     }

  1826.     // erogazione

  1827.     public List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(ISearch filters) throws DriverConfigurazioneException
  1828.     {
  1829.         return this.serviziApplicativiSearchDriver.getTipologieErogazioneServiziApplicativi(filters);
  1830.     }
  1831.     public List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
  1832.     {
  1833.         return this.serviziApplicativiSearchDriver.getTipologieErogazioneServiziApplicativi(filters, checkAssociazionePorta);
  1834.     }
  1835.     public List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
  1836.     {
  1837.         return this.serviziApplicativiSearchDriver.getTipologieErogazioneServiziApplicativi(filters, checkAssociazionePorta, isBound);
  1838.     }

  1839.     public List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(RicercaTipologiaErogazione erogazione, ISearch filters) throws DriverConfigurazioneException
  1840.     {
  1841.         return this.serviziApplicativiSearchDriver.getTipologieErogazioneServiziApplicativi(erogazione, filters);
  1842.     }
  1843.     public List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(RicercaTipologiaErogazione erogazione, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
  1844.     {
  1845.         return this.serviziApplicativiSearchDriver.getTipologieErogazioneServiziApplicativi(erogazione, filters, checkAssociazionePorta);
  1846.     }
  1847.     public List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(RicercaTipologiaErogazione erogazione, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
  1848.     {
  1849.         return this.serviziApplicativiSearchDriver.getTipologieErogazioneServiziApplicativi(erogazione, filters, checkAssociazionePorta, isBound);
  1850.     }

  1851.     public List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaErogazione erogazione, ISearch filters) throws DriverConfigurazioneException
  1852.     {
  1853.         return this.serviziApplicativiSearchDriver.getTipologieErogazioneServiziApplicativi(proprietario, erogazione, filters);
  1854.     }
  1855.     public List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaErogazione erogazione, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
  1856.     {
  1857.         return this.serviziApplicativiSearchDriver.getTipologieErogazioneServiziApplicativi(proprietario, erogazione, filters, checkAssociazionePorta);
  1858.     }
  1859.     public List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaErogazione erogazione, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
  1860.     {
  1861.         return this.serviziApplicativiSearchDriver.getTipologieErogazioneServiziApplicativi(proprietario, erogazione, filters, checkAssociazionePorta, isBound);
  1862.     }

  1863.     public List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, ISearch filters) throws DriverConfigurazioneException
  1864.     {
  1865.         return this.serviziApplicativiSearchDriver.getTipologieErogazioneServiziApplicativi(proprietario, filters);
  1866.     }
  1867.     public List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
  1868.     {
  1869.         return this.serviziApplicativiSearchDriver.getTipologieErogazioneServiziApplicativi(proprietario, filters, checkAssociazionePorta);
  1870.     }
  1871.     public List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
  1872.     {
  1873.         return this.serviziApplicativiSearchDriver.getTipologieErogazioneServiziApplicativi(proprietario, filters, checkAssociazionePorta, isBound);
  1874.     }

  1875.     /**
  1876.      * Recupera i servizi applicativi che hanno come tipologia di erogazione una tra quelle passate come parametro
  1877.      * @param filters
  1878.      * @param proprietario
  1879.      * @return List<IDServizioApplicativo>
  1880.      * @throws DriverConfigurazioneException
  1881.      */
  1882.     public List<IDServizioApplicativo> serviziApplicativiList(ISearch filters, IDSoggetto proprietario, TipologiaErogazione... erogazione) throws DriverConfigurazioneException {
  1883.         return this.serviziApplicativiSearchDriver.serviziApplicativiList(filters, proprietario, erogazione);
  1884.     }
  1885.    
  1886.     public List<ServizioApplicativo> getServiziApplicativiBySoggetto(long idSoggetto) throws DriverConfigurazioneException {
  1887.         return this.serviziApplicativiDriver.getServiziApplicativiBySoggetto(idSoggetto);
  1888.     }
  1889.    
  1890.     /**
  1891.      * Restituisce la lista degli identificativi dei servizi applicativi
  1892.      *
  1893.      * @param filtroRicerca
  1894.      * @return lista degli identificativi dei servizi applicativi
  1895.      * @throws DriverConfigurazioneException
  1896.      * @throws DriverConfigurazioneNotFound
  1897.      */
  1898.     @Override
  1899.     public List<IDServizioApplicativo> getAllIdServiziApplicativi(FiltroRicercaServiziApplicativi filtroRicerca) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  1900.         return this.serviziApplicativiDriver.getAllIdServiziApplicativi(filtroRicerca);
  1901.     }
  1902.    
  1903.     public long getIdServizioApplicativoByConnettore(long idConnettore) throws DriverConfigurazioneException {
  1904.         return this.serviziApplicativiDriver.getIdServizioApplicativoByConnettore(idConnettore);
  1905.     }
  1906.    
  1907.     public IDServizio getLabelNomeServizioApplicativo(String nomeServizioApplicativo) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  1908.         return this.serviziApplicativiDriver.getLabelNomeServizioApplicativo(nomeServizioApplicativo);
  1909.     }
  1910.    
  1911.     public ProprietaOggetto getProprietaOggetto(IDServizioApplicativo idServizioApplicativo) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  1912.         return this.serviziApplicativiDriver.getProprietaOggetto(idServizioApplicativo);
  1913.     }
  1914.    
  1915.     public void updateProprietaOggetto(IDServizioApplicativo idServizioApplicativo, String user) throws DriverConfigurazioneException {
  1916.         this.serviziApplicativiDriver.updateProprietaOggetto(idServizioApplicativo, user);
  1917.     }
  1918.    
  1919.    
  1920.    

  1921.     // *** Protocol Properties ***

  1922.     public boolean existsProtocolProperty(ProprietariProtocolProperty proprietarioProtocolProperty, long idProprietario, String nome) throws DriverConfigurazioneException {
  1923.         return this.protocolPropertiesDriver.existsProtocolProperty(proprietarioProtocolProperty, idProprietario, nome);
  1924.     }

  1925.     public ProtocolProperty getProtocolProperty(ProprietariProtocolProperty proprietarioProtocolProperty, long idProprietario, String nome) throws DriverConfigurazioneException {
  1926.         return this.protocolPropertiesDriver.getProtocolProperty(proprietarioProtocolProperty, idProprietario, nome);
  1927.     }

  1928.     public ProtocolProperty getProtocolProperty(long idProtocolProperty) throws DriverConfigurazioneException {
  1929.         return this.protocolPropertiesDriver.getProtocolProperty(idProtocolProperty);
  1930.     }
  1931.    
  1932.    

  1933.    
  1934.     // *** Routing Table ***
  1935.    
  1936.     /**
  1937.      * Restituisce la RoutingTable definita nella Porta di Dominio
  1938.      *
  1939.      * @return RoutingTable
  1940.      *
  1941.      */
  1942.     @Override
  1943.     public RoutingTable getRoutingTable() throws DriverConfigurazioneException {
  1944.         return this.routingTableDriver.getRoutingTable();
  1945.     }

  1946.     @Override
  1947.     public void createRoutingTable(RoutingTable routingTable) throws DriverConfigurazioneException {
  1948.         this.routingTableDriver.createRoutingTable(routingTable);
  1949.     }

  1950.     @Override
  1951.     public void updateRoutingTable(RoutingTable routingTable) throws DriverConfigurazioneException {
  1952.         this.routingTableDriver.updateRoutingTable(routingTable);
  1953.     }

  1954.     @Override
  1955.     public void deleteRoutingTable(RoutingTable routingTable) throws DriverConfigurazioneException {
  1956.         this.routingTableDriver.deleteRoutingTable(routingTable);
  1957.     }

  1958.     public List<RoutingTableDestinazione> routingList(ISearch ricerca) throws DriverConfigurazioneException {
  1959.         return this.routingTableDriver.routingList(ricerca);
  1960.     }

  1961.    
  1962.     // *** Configurazione (Accesso Registro) ***
  1963.    
  1964.     /**
  1965.      * Restituisce l'accesso al registro definito nella Porta di Dominio
  1966.      *
  1967.      * @return AccessoRegistro
  1968.      *
  1969.      */
  1970.     @Override
  1971.     public AccessoRegistro getAccessoRegistro() throws DriverConfigurazioneException, DriverConfigurazioneNotFound {
  1972.         return this.configDriver.getAccessoRegistro();
  1973.     }

  1974.     /**
  1975.      * Crea le informazioni per l'accesso ai registri
  1976.      *
  1977.      * @param registro
  1978.      * @throws DriverConfigurazioneException
  1979.      */

  1980.     @Override
  1981.     public void createAccessoRegistro(AccessoRegistro registro) throws DriverConfigurazioneException {
  1982.         this.configDriver.createAccessoRegistro(registro);
  1983.     }

  1984.     /**
  1985.      * Aggiorna le informazioni per l'accesso ai registri
  1986.      *
  1987.      * @param registro
  1988.      * @throws DriverConfigurazioneException
  1989.      */
  1990.     @Override
  1991.     public void updateAccessoRegistro(AccessoRegistro registro) throws DriverConfigurazioneException {
  1992.         this.configDriver.updateAccessoRegistro(registro);
  1993.     }

  1994.     /**
  1995.      * Elimina le informazioni per l'accesso ai registri
  1996.      *
  1997.      * @param registro
  1998.      * @throws DriverConfigurazioneException
  1999.      */
  2000.     @Override
  2001.     public void deleteAccessoRegistro(AccessoRegistro registro) throws DriverConfigurazioneException {
  2002.         this.configDriver.deleteAccessoRegistro(registro);
  2003.     }
  2004.    
  2005.     public void createAccessoRegistro(AccessoRegistroRegistro registro) throws DriverConfigurazioneException {
  2006.         this.configDriver.createAccessoRegistro(registro);
  2007.     }

  2008.     public void updateAccessoRegistro(AccessoRegistroRegistro registro) throws DriverConfigurazioneException {
  2009.         this.configDriver.updateAccessoRegistro(registro);
  2010.     }

  2011.     public void deleteAccessoRegistro(AccessoRegistroRegistro registro) throws DriverConfigurazioneException {
  2012.         this.configDriver.deleteAccessoRegistro(registro);
  2013.     }

  2014.     public List<AccessoRegistroRegistro> registriList(ISearch ricerca) throws DriverConfigurazioneException {
  2015.         return this.configSearchDriver.registriList(ricerca);
  2016.     }
  2017.    
  2018.    
  2019.     // *** Configurazione (Accesso Configurazione) ***
  2020.    
  2021.     @Override
  2022.     public AccessoConfigurazione getAccessoConfigurazione() throws DriverConfigurazioneException, DriverConfigurazioneNotFound {
  2023.         return this.configDriver.getAccessoConfigurazione();
  2024.     }

  2025.     public void createAccessoConfigurazione(AccessoConfigurazione accessoConfigurazione) throws DriverConfigurazioneException {
  2026.         this.configDriver.createAccessoConfigurazione(accessoConfigurazione);
  2027.     }

  2028.     public void updateAccessoConfigurazione(AccessoConfigurazione accessoConfigurazione) throws DriverConfigurazioneException {
  2029.         this.configDriver.updateAccessoConfigurazione(accessoConfigurazione);
  2030.     }

  2031.     public void deleteAccessoConfigurazione(AccessoConfigurazione accessoConfigurazione) throws DriverConfigurazioneException {
  2032.         this.configDriver.deleteAccessoConfigurazione(accessoConfigurazione);
  2033.     }

  2034.    
  2035.     // *** Configurazione (Accesso Dati Autorizzazione) ***
  2036.    
  2037.     @Override
  2038.     public AccessoDatiAutorizzazione getAccessoDatiAutorizzazione() throws DriverConfigurazioneException, DriverConfigurazioneNotFound {
  2039.         return this.configDriver.getAccessoDatiAutorizzazione();
  2040.     }
  2041.    
  2042.     public void createAccessoDatiAutorizzazione(AccessoDatiAutorizzazione accessoDatiAutorizzazione) throws DriverConfigurazioneException {
  2043.         this.configDriver.createAccessoDatiAutorizzazione(accessoDatiAutorizzazione);
  2044.     }

  2045.     public void updateAccessoDatiAutorizzazione(AccessoDatiAutorizzazione accessoDatiAutorizzazione) throws DriverConfigurazioneException {
  2046.         this.configDriver.updateAccessoDatiAutorizzazione(accessoDatiAutorizzazione);
  2047.     }

  2048.     public void deleteAccessoDatiAutorizzazione(AccessoDatiAutorizzazione accessoDatiAutorizzazione) throws DriverConfigurazioneException {
  2049.         this.configDriver.deleteAccessoDatiAutorizzazione(accessoDatiAutorizzazione);
  2050.     }

  2051.    
  2052.     // *** Configurazione (Accesso Dati Autenticazione) ***
  2053.        
  2054.     @Override
  2055.     public AccessoDatiAutenticazione getAccessoDatiAutenticazione() throws DriverConfigurazioneException, DriverConfigurazioneNotFound {
  2056.         return this.configDriver.getAccessoDatiAutenticazione();
  2057.     }

  2058.    
  2059.     // *** Configurazione (Accesso Dati GestioneToke) ***  
  2060.        
  2061.     @Override
  2062.     public AccessoDatiGestioneToken getAccessoDatiGestioneToken() throws DriverConfigurazioneException, DriverConfigurazioneNotFound {
  2063.         return this.configDriver.getAccessoDatiGestioneToken();
  2064.     }
  2065.    
  2066.     // *** Configurazione (Accesso Dati AttributeAuthority) ***
  2067.    
  2068.     @Override
  2069.     public AccessoDatiAttributeAuthority getAccessoDatiAttributeAuthority() throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  2070.         return this.configDriver.getAccessoDatiAttributeAuthority();
  2071.     }

  2072.    
  2073.     // *** Configurazione (Accesso Dati Keystore) ***  
  2074.    
  2075.     @Override
  2076.     public AccessoDatiKeystore getAccessoDatiKeystore() throws DriverConfigurazioneException, DriverConfigurazioneNotFound {
  2077.         return this.configDriver.getAccessoDatiKeystore();
  2078.     }

  2079.    
  2080.     // *** Configurazione (Accesso Dati Load Balancer) ***  
  2081.        
  2082.     @Override
  2083.     public AccessoDatiConsegnaApplicativi getAccessoDatiConsegnaApplicativi() throws DriverConfigurazioneException, DriverConfigurazioneNotFound {
  2084.         return this.configDriver.getAccessoDatiConsegnaApplicativi();
  2085.     }

  2086.    
  2087.     // *** Configurazione (Accesso Dati Richieste) ***  
  2088.            
  2089.     @Override
  2090.     public AccessoDatiRichieste getAccessoDatiRichieste() throws DriverConfigurazioneException, DriverConfigurazioneNotFound {
  2091.         return this.configDriver.getAccessoDatiRichieste();
  2092.     }

  2093.    
  2094.     // *** Configurazione (Gestione Errore) ***

  2095.     /**
  2096.      * Restituisce la gestione dell'errore di default definita nella Porta di Dominio per il componente di cooperazione
  2097.      *
  2098.      * @return La gestione dell'errore
  2099.      *
  2100.      */
  2101.     @Override
  2102.     public GestioneErrore getGestioneErroreComponenteCooperazione() throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  2103.         return this.gestioneErroreDriver.getGestioneErroreComponenteCooperazione();
  2104.     }

  2105.     /**
  2106.      * Restituisce la gestione dell'errore di default definita nella Porta di Dominio per il componente di integrazione
  2107.      *
  2108.      * @return La gestione dell'errore
  2109.      *
  2110.      */
  2111.     @Override
  2112.     public GestioneErrore getGestioneErroreComponenteIntegrazione() throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  2113.         return this.gestioneErroreDriver.getGestioneErroreComponenteIntegrazione();
  2114.     }
  2115.    
  2116.     /**
  2117.      * Crea le informazioni per la gestione dell'errore per il ComponenteCooperazione
  2118.      *
  2119.      * @param gestione
  2120.      * @throws DriverConfigurazioneException
  2121.      */
  2122.     @Override
  2123.     public void createGestioneErroreComponenteCooperazione(GestioneErrore gestione) throws DriverConfigurazioneException{
  2124.         this.gestioneErroreDriver.createGestioneErroreComponenteCooperazione(gestione);
  2125.     }

  2126.     /**
  2127.      * Aggiorna le informazioni per la gestione dell'errore per il ComponenteCooperazione
  2128.      *
  2129.      * @param gestione
  2130.      * @throws DriverConfigurazioneException
  2131.      */
  2132.     @Override
  2133.     public void updateGestioneErroreComponenteCooperazione(GestioneErrore gestione) throws DriverConfigurazioneException{
  2134.         this.gestioneErroreDriver.updateGestioneErroreComponenteCooperazione(gestione);
  2135.     }

  2136.     /**
  2137.      * Elimina le informazioni per la gestione dell'errore per il ComponenteCooperazione
  2138.      *
  2139.      * @param gestione
  2140.      * @throws DriverConfigurazioneException
  2141.      */
  2142.     @Override
  2143.     public void deleteGestioneErroreComponenteCooperazione(GestioneErrore gestione) throws DriverConfigurazioneException{
  2144.         this.gestioneErroreDriver.deleteGestioneErroreComponenteCooperazione(gestione);
  2145.     }

  2146.     /**
  2147.      * Crea le informazioni per la gestione dell'errore per il ComponenteIntegrazione
  2148.      *
  2149.      * @param gestione
  2150.      * @throws DriverConfigurazioneException
  2151.      */
  2152.     @Override
  2153.     public void createGestioneErroreComponenteIntegrazione(GestioneErrore gestione) throws DriverConfigurazioneException{
  2154.         this.gestioneErroreDriver.createGestioneErroreComponenteIntegrazione(gestione);
  2155.     }

  2156.     /**
  2157.      * Aggiorna le informazioni per la gestione dell'errore per il ComponenteIntegrazione
  2158.      *
  2159.      * @param gestione
  2160.      * @throws DriverConfigurazioneException
  2161.      */
  2162.     @Override
  2163.     public void updateGestioneErroreComponenteIntegrazione(GestioneErrore gestione) throws DriverConfigurazioneException{
  2164.         this.gestioneErroreDriver.updateGestioneErroreComponenteIntegrazione(gestione);
  2165.     }

  2166.     /**
  2167.      * Elimina le informazioni per la gestione dell'errore per il ComponenteIntegrazione
  2168.      *
  2169.      * @param gestione
  2170.      * @throws DriverConfigurazioneException
  2171.      */
  2172.     @Override
  2173.     public void deleteGestioneErroreComponenteIntegrazione(GestioneErrore gestione) throws DriverConfigurazioneException{
  2174.         this.gestioneErroreDriver.deleteGestioneErroreComponenteIntegrazione(gestione);
  2175.     }

  2176.    
  2177.     // *** Configurazione (Stato Servizi) ***  

  2178.     /**
  2179.      * Restituisce la gestione dell'errore di default definita nella Porta di
  2180.      * Dominio
  2181.      *
  2182.      * @return La gestione dell'errore
  2183.      *
  2184.      */
  2185.     @Override
  2186.     public StatoServiziPdd getStatoServiziPdD() throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  2187.         return this.configDriver.getStatoServiziPdD();
  2188.     }

  2189.     /**
  2190.      * Crea le informazioni sui servizi attivi della PdD
  2191.      *
  2192.      * @param servizi
  2193.      * @throws DriverConfigurazioneException
  2194.      */
  2195.     @Override
  2196.     public void createStatoServiziPdD(StatoServiziPdd servizi) throws DriverConfigurazioneException{
  2197.         this.configDriver.createStatoServiziPdD(servizi);
  2198.     }

  2199.     /**
  2200.      * Aggiorna le informazioni sui servizi attivi della PdD
  2201.      *
  2202.      * @param servizi
  2203.      * @throws DriverConfigurazioneException
  2204.      */
  2205.     @Override
  2206.     public void updateStatoServiziPdD(StatoServiziPdd servizi) throws DriverConfigurazioneException{
  2207.         this.configDriver.updateStatoServiziPdD(servizi);
  2208.     }


  2209.     /**
  2210.      * Elimina le informazioni sui servizi attivi della PdD
  2211.      *
  2212.      * @param servizi
  2213.      * @throws DriverConfigurazioneException
  2214.      */
  2215.     @Override
  2216.     public void deleteStatoServiziPdD(StatoServiziPdd servizi) throws DriverConfigurazioneException{
  2217.         this.configDriver.deleteStatoServiziPdD(servizi);
  2218.     }

  2219.    
  2220.     // *** Configurazione (Proprieta' Sistema) ***  

  2221.     public List<Property> systemPropertyList(ISearch ricerca) throws DriverConfigurazioneException {
  2222.         return this.configSearchDriver.systemPropertyList(ricerca);
  2223.     }

  2224.     /**
  2225.      * Restituisce le proprieta' di sistema utilizzate dalla PdD
  2226.      *
  2227.      * @return proprieta' di sistema
  2228.      *
  2229.      */
  2230.     @Override
  2231.     public SystemProperties getSystemPropertiesPdD() throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  2232.         return this.configDriver.getSystemPropertiesPdD();
  2233.     }
  2234.     public SystemProperties getSystemPropertiesPdDWithoutBIOK() throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  2235.         return this.configDriver.getSystemPropertiesPdDWithoutBIOK();
  2236.     }
  2237.    
  2238.     /**
  2239.      * Restituisce i nomi delle proprieta' di sistema cifrate
  2240.      *
  2241.      * @return proprieta' di sistema
  2242.      *
  2243.      */
  2244.     @Override
  2245.     public List<String> getEncryptedSystemPropertiesPdD() throws DriverConfigurazioneException{
  2246.         return this.configDriver.getEncryptedSystemPropertiesPdD();
  2247.     }
  2248.    
  2249.     /**
  2250.      * Crea le informazioni sulle proprieta' di sistema utilizzate dalla PdD
  2251.      *
  2252.      * @param systemProperties
  2253.      * @throws DriverConfigurazioneException
  2254.      */
  2255.     @Override
  2256.     public void createSystemPropertiesPdD(SystemProperties systemProperties) throws DriverConfigurazioneException{
  2257.         this.configDriver.createSystemPropertiesPdD(systemProperties);
  2258.     }

  2259.     /**
  2260.      * Aggiorna le informazioni sulle proprieta' di sistema utilizzate dalla PdD
  2261.      *
  2262.      * @param systemProperties
  2263.      * @throws DriverConfigurazioneException
  2264.      */
  2265.     @Override
  2266.     public void updateSystemPropertiesPdD(SystemProperties systemProperties) throws DriverConfigurazioneException{
  2267.         this.configDriver.updateSystemPropertiesPdD(systemProperties);
  2268.     }

  2269.     /**
  2270.      * Elimina le informazioni sulle proprieta' di sistema utilizzate dalla PdD
  2271.      *
  2272.      * @param systemProperties
  2273.      * @throws DriverConfigurazioneException
  2274.      */
  2275.     @Override
  2276.     public void deleteSystemPropertiesPdD(SystemProperties systemProperties) throws DriverConfigurazioneException{
  2277.         this.configDriver.deleteSystemPropertiesPdD(systemProperties);
  2278.     }

  2279.    
  2280.     // *** Configurazione (URL Invocazione) ***
  2281.    
  2282.     @Override
  2283.     public ConfigurazioneUrlInvocazioneRegola getUrlInvocazioneRegola(String nome) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  2284.         return this.configDriver.getUrlInvocazioneRegola(nome);
  2285.     }
  2286.    
  2287.     public boolean existsUrlInvocazioneRegola(String nome) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  2288.         return this.configDriver.existsUrlInvocazioneRegola(nome);
  2289.     }

  2290.     @Override
  2291.     public void createUrlInvocazioneRegola(ConfigurazioneUrlInvocazioneRegola regola) throws DriverConfigurazioneException{
  2292.         this.configDriver.createUrlInvocazioneRegola(regola);
  2293.     }

  2294.     @Override
  2295.     public void updateUrlInvocazioneRegola(ConfigurazioneUrlInvocazioneRegola regola) throws DriverConfigurazioneException{
  2296.         this.configDriver.updateUrlInvocazioneRegola(regola);
  2297.     }

  2298.     @Override
  2299.     public void deleteUrlInvocazioneRegola(ConfigurazioneUrlInvocazioneRegola regola) throws DriverConfigurazioneException{
  2300.         this.configDriver.deleteUrlInvocazioneRegola(regola);
  2301.     }
  2302.        
  2303.     public List<ConfigurazioneUrlInvocazioneRegola> proxyPassConfigurazioneRegolaList(ISearch ricerca) throws DriverConfigurazioneException {
  2304.         return this.configSearchDriver.proxyPassConfigurazioneRegolaList(ricerca);
  2305.     }
  2306.    
  2307.     public boolean existsProxyPassConfigurazioneRegola(String nome) throws DriverConfigurazioneException {
  2308.         return this.configDriver.existsProxyPassConfigurazioneRegola(nome);
  2309.     }

  2310.    
  2311.     // *** Configurazione (Response Cache) ***
  2312.    
  2313.     public List<ResponseCachingConfigurazioneRegola> responseCachingConfigurazioneRegolaList(ISearch ricerca) throws DriverConfigurazioneException {
  2314.         return this.configSearchDriver.responseCachingConfigurazioneRegolaList(ricerca);
  2315.     }
  2316.    
  2317.     public boolean existsResponseCachingConfigurazioneRegola(Integer statusMin, Integer statusMax, boolean fault) throws DriverConfigurazioneException {
  2318.         return this.configDriver.existsResponseCachingConfigurazioneRegola(statusMin, statusMax, fault);
  2319.     }
  2320.    
  2321.    
  2322.    
  2323.     // *** Configurazione (Canali) ***
  2324.    
  2325.     public List<CanaleConfigurazione> canaleConfigurazioneList(ISearch ricerca) throws DriverConfigurazioneException {
  2326.         return this.configSearchDriver.canaleConfigurazioneList(ricerca);
  2327.     }
  2328.    
  2329.     public boolean existsCanale(String nome) throws DriverConfigurazioneException {
  2330.         return this.configDriver.existsCanale(nome);
  2331.     }
  2332.     public List<CanaleConfigurazioneNodo> canaleNodoConfigurazioneList(ISearch ricerca) throws DriverConfigurazioneException {
  2333.         return this.configSearchDriver.canaleNodoConfigurazioneList(ricerca);
  2334.     }
  2335.     public boolean existsCanaleNodo(String nome) throws DriverConfigurazioneException {
  2336.         return this.configDriver.existsCanaleNodo(nome);
  2337.     }
  2338.    
  2339.     /**
  2340.      * Restituisce la configurazione dei canali
  2341.      *
  2342.      * @return Configurazione
  2343.      *
  2344.      */
  2345.     @Override
  2346.     public CanaliConfigurazione getCanaliConfigurazione() throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  2347.         return this.configDriver.getCanaliConfigurazione();
  2348.     }
  2349.     public CanaliConfigurazione getCanaliConfigurazione(boolean readNodi) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  2350.         return this.configDriver.getCanaliConfigurazione(readNodi);
  2351.     }
  2352.    
  2353.    
  2354.    
  2355.     // *** Configurazione (Tracciamento) ***
  2356.    
  2357.     public boolean existsFaseTracciamentoDBRequestIn(boolean erogazioni, boolean fruizioni) throws DriverConfigurazioneException {
  2358.         return this.configSearchDriver.existsFaseTracciamentoDBRequestIn(erogazioni, fruizioni);
  2359.     }
  2360.     public boolean existsFaseTracciamentoDBRequestOut(boolean erogazioni, boolean fruizioni) throws DriverConfigurazioneException {
  2361.         return this.configSearchDriver.existsFaseTracciamentoDBRequestOut(erogazioni, fruizioni);
  2362.     }
  2363.     public boolean existsFaseTracciamentoDBResponseOut(boolean erogazioni, boolean fruizioni) throws DriverConfigurazioneException {
  2364.         return this.configSearchDriver.existsFaseTracciamentoDBResponseOut(erogazioni, fruizioni);
  2365.     }
  2366.    
  2367.    
  2368.    
  2369.     // *** Configurazione ***
  2370.    
  2371.     /**
  2372.      * Restituisce la configurazione generale della Porta di Dominio
  2373.      *
  2374.      * @return Configurazione
  2375.      *
  2376.      */
  2377.     @Override
  2378.     public Configurazione getConfigurazioneGenerale() throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  2379.         return this.configDriver.getConfigurazioneGenerale();
  2380.     }

  2381.     public Object getConfigurazioneExtended(Configurazione config, String idExtendedConfiguration) throws DriverConfigurazioneException, DriverConfigurazioneNotFound {
  2382.         return this.configDriver.getConfigurazioneExtended(config, idExtendedConfiguration);
  2383.     }
  2384.    
  2385.     @Override
  2386.     public void createConfigurazione(Configurazione configurazione) throws DriverConfigurazioneException {
  2387.         this.configDriver.createConfigurazione(configurazione);
  2388.     }

  2389.     @Override
  2390.     public void updateConfigurazione(Configurazione configurazione) throws DriverConfigurazioneException {
  2391.         this.configDriver.updateConfigurazione(configurazione);
  2392.     }

  2393.     @Override
  2394.     public void deleteConfigurazione(Configurazione configurazione) throws DriverConfigurazioneException {
  2395.         this.configDriver.deleteConfigurazione(configurazione);
  2396.     }
  2397.    
  2398.    
  2399.    
  2400.     // *** Generic Properties ***  
  2401.        
  2402.     /**
  2403.      * Restituisce le proprieta' generiche di una tipologia utilizzate dalla PdD
  2404.      *
  2405.      * @return proprieta' generiche
  2406.      *
  2407.      */
  2408.     @Override
  2409.     public List<GenericProperties> getGenericProperties() throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  2410.         return this.genericPropertiesDriver.getGenericProperties();
  2411.     }
  2412.    
  2413.     /**
  2414.      * Restituisce le proprieta' generiche utilizzate dalla PdD
  2415.      *
  2416.      * @return proprieta' generiche
  2417.      *
  2418.      */
  2419.     @Override
  2420.     public List<GenericProperties> getGenericProperties(String tipologia) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  2421.         return this.genericPropertiesDriver.getGenericProperties(tipologia);
  2422.     }
  2423.    
  2424.     @Override
  2425.     public GenericProperties getGenericProperties(String tipologia, String name) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  2426.         return this.genericPropertiesDriver.getGenericProperties(tipologia, name);
  2427.     }
  2428.    
  2429.     /**
  2430.      * Restituisce le proprieta' generiche utilizzate dalla PdD
  2431.      *
  2432.      * @return proprieta' generiche
  2433.      *
  2434.      */
  2435.     public List<GenericProperties> getGenericProperties(List<String> tipologia, Integer idLista, ISearch ricerca, boolean throwNotFoundException) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  2436.         return this.genericPropertiesDriver.getGenericProperties(tipologia, idLista, ricerca, throwNotFoundException);
  2437.     }

  2438.     public GenericProperties getGenericProperties(long idGenericProperties) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
  2439.         return this.genericPropertiesDriver.getGenericProperties(idGenericProperties);
  2440.     }

  2441.     /**
  2442.      * Crea una proprieta' generica della PdD
  2443.      *
  2444.      * @param genericProperties
  2445.      * @throws DriverConfigurazioneException
  2446.      */
  2447.     @Override
  2448.     public void createGenericProperties(GenericProperties genericProperties) throws DriverConfigurazioneException{
  2449.         this.genericPropertiesDriver.createGenericProperties(genericProperties);
  2450.     }

  2451.     /**
  2452.      * Aggiorna le informazioni sulle proprieta' generiche della PdD
  2453.      *
  2454.      * @param genericProperties
  2455.      * @throws DriverConfigurazioneException
  2456.      */
  2457.     @Override
  2458.     public void updateGenericProperties(GenericProperties genericProperties) throws DriverConfigurazioneException{
  2459.         this.genericPropertiesDriver.updateGenericProperties(genericProperties);
  2460.     }


  2461.     /**
  2462.      * Elimina le informazioni sulle proprieta' generiche della PdD
  2463.      *
  2464.      * @param genericProperties
  2465.      * @throws DriverConfigurazioneException
  2466.      */
  2467.     @Override
  2468.     public void deleteGenericProperties(GenericProperties genericProperties) throws DriverConfigurazioneException{
  2469.         this.genericPropertiesDriver.deleteGenericProperties(genericProperties);
  2470.     }

  2471.    
  2472.    
  2473.    
  2474.     // *** Plugins ***  
  2475.    
  2476.     @Override
  2477.     public RegistroPlugins getRegistroPlugins() throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  2478.         return this.pluginsDriver.getRegistroPlugins();
  2479.     }
  2480.    
  2481.     @Override
  2482.     public RegistroPlugin getRegistroPlugin(String nome) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  2483.         return this.pluginsDriver.getRegistroPlugin(nome);
  2484.     }
  2485.     @Override
  2486.     public RegistroPlugin getDatiRegistroPlugin(String nome) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  2487.         return this.pluginsDriver.getDatiRegistroPlugin(nome);
  2488.     }
  2489.    
  2490.     public RegistroPlugin getRegistroPlugin(Connection conParam, String nome) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  2491.         return this.pluginsDriver.getRegistroPlugin(conParam, nome);
  2492.     }
  2493.     public RegistroPlugin getDatiRegistroPlugin(Connection conParam, String nome) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  2494.         return this.pluginsDriver.getDatiRegistroPlugin(conParam, nome);
  2495.     }
  2496.        
  2497.     public RegistroPlugin getRegistroPluginFromPosizione(int posizione) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  2498.         return this.pluginsDriver.getRegistroPluginFromPosizione(posizione);
  2499.     }
  2500.     public RegistroPlugin getDatiRegistroPluginFromPosizione(int posizione) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  2501.         return this.pluginsDriver.getDatiRegistroPluginFromPosizione(posizione);
  2502.     }
  2503.        
  2504.     public boolean existsRegistroPlugin(String nome) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  2505.         return this.pluginsDriver.existsRegistroPlugin(nome);
  2506.     }
  2507.    
  2508.     public int getMaxPosizioneRegistroPlugin() throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  2509.         return this.pluginsDriver.getMaxPosizioneRegistroPlugin();
  2510.     }
  2511.    
  2512.     public int getNumeroArchiviJarRegistroPlugin(String nome) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  2513.         return this.pluginsDriver.getNumeroArchiviJarRegistroPlugin(nome);
  2514.     }
  2515.    
  2516.     @Override
  2517.     public void createRegistroPlugin(RegistroPlugin plugin) throws DriverConfigurazioneException{
  2518.         this.pluginsDriver.createRegistroPlugin(plugin);
  2519.     }
  2520.    
  2521.     @Override
  2522.     public void updateRegistroPlugin(RegistroPlugin plugin) throws DriverConfigurazioneException{
  2523.         this.pluginsDriver.updateRegistroPlugin(plugin);
  2524.     }
  2525.    
  2526.     @Override
  2527.     public void deleteRegistroPlugin(RegistroPlugin plugin) throws DriverConfigurazioneException{
  2528.         this.pluginsDriver.deleteRegistroPlugin(plugin);
  2529.     }
  2530.    
  2531.     @Override
  2532.     public void updateDatiRegistroPlugin(String nomePlugin, RegistroPlugin plugin) throws DriverConfigurazioneException{
  2533.         this.pluginsDriver.updateDatiRegistroPlugin(nomePlugin, plugin);
  2534.     }
  2535.    
  2536.     @Override
  2537.     public RegistroPluginArchivio getRegistroPluginArchivio(String nomePlugin, String nome) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  2538.         return this.pluginsDriver.getRegistroPluginArchivio(nomePlugin, nome);
  2539.     }
  2540.    
  2541.     public boolean existsRegistroPluginArchivio(String nomePlugin, String nome) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  2542.         return this.pluginsDriver.existsRegistroPluginArchivio(nomePlugin, nome);
  2543.     }
  2544.    
  2545.     public boolean existsRegistroPluginArchivio(String nomePlugin, PluginSorgenteArchivio tipoSorgente, String sorgente) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
  2546.         return this.pluginsDriver.existsRegistroPluginArchivio(nomePlugin, tipoSorgente, sorgente);
  2547.     }
  2548.    
  2549.     @Override
  2550.     public void createRegistroPluginArchivio(String nomePlugin, RegistroPluginArchivio plugin) throws DriverConfigurazioneException{
  2551.         this.pluginsDriver.createRegistroPluginArchivio(nomePlugin, plugin);
  2552.     }
  2553.    
  2554.     @Override
  2555.     public void updateRegistroPluginArchivio(String nomePlugin, RegistroPluginArchivio plugin) throws DriverConfigurazioneException{
  2556.         this.pluginsDriver.updateRegistroPluginArchivio(nomePlugin, plugin);
  2557.     }
  2558.    
  2559.     @Override
  2560.     public void deleteRegistroPluginArchivio(String nomePlugin, RegistroPluginArchivio plugin) throws DriverConfigurazioneException{
  2561.         this.pluginsDriver.deleteRegistroPluginArchivio(nomePlugin, plugin);
  2562.     }
  2563.        
  2564.     public List<RegistroPlugin> pluginsArchiviList(ISearch ricerca) throws DriverConfigurazioneException {
  2565.         return this.pluginsDriver.pluginsArchiviList(ricerca);
  2566.     }
  2567.     public List<RegistroPluginArchivio> pluginsArchiviJarList(String nome, ISearch ricerca) throws DriverConfigurazioneException {
  2568.         return this.pluginsDriver.pluginsArchiviJarList(nome, ricerca);
  2569.     }

  2570.    
  2571.    
  2572.     // *** Allarmi ***  
  2573.    
  2574.     public long countAllarmi(String tipologiaRicerca, Boolean enabled, StatoAllarme stato, Boolean acknowledged, String nomeAllarme,
  2575.             List<IDSoggetto> listSoggettiProprietariAbilitati, List<IDServizio> listIDServizioAbilitati,
  2576.             List<String> tipoSoggettiByProtocollo, List<String> tipoServiziByProtocollo,
  2577.             IDSoggetto idSoggettoProprietario, List<IDServizio> listIDServizio) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  2578.         return this.allarmiDriver.countAllarmi(tipologiaRicerca, enabled, stato, acknowledged, nomeAllarme,
  2579.                 listSoggettiProprietariAbilitati, listIDServizioAbilitati,
  2580.                 tipoSoggettiByProtocollo, tipoServiziByProtocollo,
  2581.                 idSoggettoProprietario, listIDServizio);
  2582.     }
  2583.    
  2584.     public List<Allarme> findAllAllarmi(String tipologiaRicerca, Boolean enabled, StatoAllarme stato, Boolean acknowledged, String nomeAllarme,
  2585.             List<IDSoggetto> listSoggettiProprietariAbilitati, List<IDServizio> listIDServizioAbilitati,
  2586.             List<String> tipoSoggettiByProtocollo, List<String> tipoServiziByProtocollo,
  2587.             IDSoggetto idSoggettoProprietario, List<IDServizio> listIDServizio,
  2588.             Integer offset, Integer limit) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  2589.         return this.allarmiDriver.findAllAllarmi(tipologiaRicerca, enabled, stato, acknowledged, nomeAllarme,
  2590.                 listSoggettiProprietariAbilitati, listIDServizioAbilitati,
  2591.                 tipoSoggettiByProtocollo, tipoServiziByProtocollo,
  2592.                 idSoggettoProprietario, listIDServizio,
  2593.                 offset, limit);
  2594.     }
  2595.    
  2596.    
  2597.    
  2598.    
  2599.     // *** Reset ***    
  2600.    
  2601.     /**
  2602.      * Reset delle tabelle del db gestito da questo driver
  2603.      */
  2604.     @Override
  2605.     public void reset() throws DriverConfigurazioneException {
  2606.         this.utilsDriver.reset();
  2607.     }
  2608.     @Override
  2609.     public void reset(boolean resetConfigurazione) throws DriverConfigurazioneException{
  2610.         this.utilsDriver.reset(resetConfigurazione);
  2611.     }

  2612.     /**
  2613.      * Reset delle tabelle del db govwayConsole gestito da questo driver
  2614.      */
  2615.     public void resetCtrlstat() throws DriverConfigurazioneException {
  2616.         this.utilsDriver.resetCtrlstat();
  2617.     }

  2618.     /**
  2619.      * Metodo che verica la connessione ad una risorsa.
  2620.      * Se la connessione non e' presente, viene lanciata una eccezione che contiene il motivo della mancata connessione
  2621.      *
  2622.      * @throws DriverConfigurazioneException eccezione che contiene il motivo della mancata connessione
  2623.      */
  2624.     @Override
  2625.     public void isAlive() throws CoreException{
  2626.         this.utilsDriver.isAlive();
  2627.     }

  2628.     @Override
  2629.     public Openspcoop2 getImmagineCompletaConfigurazionePdD() throws DriverConfigurazioneException{

  2630.         Openspcoop2 openspcoop = new Openspcoop2();

  2631.         Configurazione conf = null;
  2632.         try{
  2633.             conf = this.getConfigurazioneGenerale();
  2634.         }catch(DriverConfigurazioneNotFound d){
  2635.             // ignore
  2636.         }
  2637.         if(conf!=null){
  2638.             try{
  2639.                 conf.setAccessoRegistro(this.getAccessoRegistro());
  2640.             }catch(DriverConfigurazioneNotFound d){
  2641.                 // ignore
  2642.             }
  2643.             try{
  2644.                 conf.setAccessoConfigurazione(this.getAccessoConfigurazione());
  2645.             }catch(DriverConfigurazioneNotFound d){
  2646.                 // ignore
  2647.             }
  2648.             try{
  2649.                 conf.setAccessoDatiAutorizzazione(this.getAccessoDatiAutorizzazione());
  2650.             }catch(DriverConfigurazioneNotFound d){
  2651.                 // ignore
  2652.             }
  2653.             conf.setRoutingTable(this.getRoutingTable());
  2654.             GestioneErrore compIntegrazione = null;
  2655.             try{
  2656.                 compIntegrazione = this.getGestioneErroreComponenteIntegrazione();
  2657.             }catch(DriverConfigurazioneNotFound d){
  2658.                 // ignore
  2659.             }
  2660.             GestioneErrore compCooperazione = null;
  2661.             try{
  2662.                 compCooperazione = this.getGestioneErroreComponenteCooperazione();
  2663.             }catch(DriverConfigurazioneNotFound d){
  2664.                 // ignore
  2665.             }
  2666.             if(compIntegrazione!=null && compCooperazione!=null)
  2667.             {
  2668.                 ConfigurazioneGestioneErrore gee = new ConfigurazioneGestioneErrore();
  2669.                 if(compIntegrazione!=null){
  2670.                     gee.setComponenteIntegrazione(compIntegrazione);
  2671.                 }
  2672.                 if(compCooperazione!=null){
  2673.                     gee.setComponenteCooperazione(compCooperazione);
  2674.                 }
  2675.                 conf.setGestioneErrore(gee);    
  2676.             }      
  2677.             // configurazione
  2678.             openspcoop.setConfigurazione(conf);
  2679.         }


  2680.         // Soggetti
  2681.         List<Soggetto> soggetti = this.getAllSoggetti();
  2682.         while(!soggetti.isEmpty()){

  2683.             Soggetto soggetto = soggetti.remove(0);

  2684.             // elimino meta-informazioni
  2685.             while(soggetto.sizePortaDelegataList()>0){
  2686.                 soggetto.removePortaDelegata(0);
  2687.             }
  2688.             while(soggetto.sizePortaApplicativaList()>0){
  2689.                 soggetto.removePortaApplicativa(0);
  2690.             }
  2691.             while(soggetto.sizeServizioApplicativoList()>0){
  2692.                 soggetto.removeServizioApplicativo(0);
  2693.             }

  2694.             // read porte delegate
  2695.             List<PortaDelegata> pd = this.getPorteDelegateBySoggetto(soggetto.getId());
  2696.             while(!pd.isEmpty()){
  2697.                 soggetto.addPortaDelegata(pd.remove(0));
  2698.             }

  2699.             // read porte applicative
  2700.             List<PortaApplicativa> pa = this.getPorteApplicativeBySoggetto(soggetto.getId());
  2701.             while(!pa.isEmpty()){
  2702.                 soggetto.addPortaApplicativa(pa.remove(0));
  2703.             }

  2704.             // read servizi applicativi
  2705.             List<ServizioApplicativo> sa = this.getServiziApplicativiBySoggetto(soggetto.getId());
  2706.             while(!sa.isEmpty()){
  2707.                 soggetto.addServizioApplicativo(sa.remove(0));
  2708.             }

  2709.             openspcoop.addSoggetto(soggetto);
  2710.         }


  2711.         return openspcoop;
  2712.     }


  2713. }