DriverRegistroServiziDB.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.registry.driver.db;



  21. import java.sql.Connection;
  22. import java.sql.SQLException;
  23. import java.util.List;
  24. import java.util.Map;
  25. import java.util.Properties;

  26. import javax.sql.DataSource;

  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.driver.DriverConfigurazioneException;
  36. import org.openspcoop2.core.constants.Costanti;
  37. import org.openspcoop2.core.constants.CostantiDB;
  38. import org.openspcoop2.core.constants.ProprietariProtocolProperty;
  39. import org.openspcoop2.core.id.IDAccordo;
  40. import org.openspcoop2.core.id.IDAccordoAzione;
  41. import org.openspcoop2.core.id.IDAccordoCooperazione;
  42. import org.openspcoop2.core.id.IDFruizione;
  43. import org.openspcoop2.core.id.IDGruppo;
  44. import org.openspcoop2.core.id.IDPortType;
  45. import org.openspcoop2.core.id.IDPortTypeAzione;
  46. import org.openspcoop2.core.id.IDResource;
  47. import org.openspcoop2.core.id.IDRuolo;
  48. import org.openspcoop2.core.id.IDScope;
  49. import org.openspcoop2.core.id.IDServizio;
  50. import org.openspcoop2.core.id.IDSoggetto;
  51. import org.openspcoop2.core.registry.AccordoCooperazione;
  52. import org.openspcoop2.core.registry.AccordoServizioParteComune;
  53. import org.openspcoop2.core.registry.AccordoServizioParteComuneServizioCompostoServizioComponente;
  54. import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
  55. import org.openspcoop2.core.registry.Azione;
  56. import org.openspcoop2.core.registry.Connettore;
  57. import org.openspcoop2.core.registry.Documento;
  58. import org.openspcoop2.core.registry.Fruitore;
  59. import org.openspcoop2.core.registry.Gruppo;
  60. import org.openspcoop2.core.registry.MessagePart;
  61. import org.openspcoop2.core.registry.Operation;
  62. import org.openspcoop2.core.registry.PortType;
  63. import org.openspcoop2.core.registry.PortaDominio;
  64. import org.openspcoop2.core.registry.Property;
  65. import org.openspcoop2.core.registry.Proprieta;
  66. import org.openspcoop2.core.registry.ProtocolProperty;
  67. import org.openspcoop2.core.registry.Resource;
  68. import org.openspcoop2.core.registry.ResourceParameter;
  69. import org.openspcoop2.core.registry.ResourceRepresentation;
  70. import org.openspcoop2.core.registry.ResourceResponse;
  71. import org.openspcoop2.core.registry.Ruolo;
  72. import org.openspcoop2.core.registry.Scope;
  73. import org.openspcoop2.core.registry.Soggetto;
  74. import org.openspcoop2.core.registry.beans.AccordoServizioParteComuneSintetico;
  75. import org.openspcoop2.core.registry.constants.CostantiRegistroServizi;
  76. import org.openspcoop2.core.registry.constants.CredenzialeTipo;
  77. import org.openspcoop2.core.registry.constants.ParameterType;
  78. import org.openspcoop2.core.registry.constants.PddTipologia;
  79. import org.openspcoop2.core.registry.constants.ProprietariDocumento;
  80. import org.openspcoop2.core.registry.constants.TipiDocumentoLivelloServizio;
  81. import org.openspcoop2.core.registry.constants.TipiDocumentoSemiformale;
  82. import org.openspcoop2.core.registry.constants.TipiDocumentoSicurezza;
  83. import org.openspcoop2.core.registry.driver.BeanUtilities;
  84. import org.openspcoop2.core.registry.driver.DriverRegistroServiziException;
  85. import org.openspcoop2.core.registry.driver.DriverRegistroServiziNotFound;
  86. import org.openspcoop2.core.registry.driver.FiltroRicerca;
  87. import org.openspcoop2.core.registry.driver.FiltroRicercaAccordi;
  88. import org.openspcoop2.core.registry.driver.FiltroRicercaAzioni;
  89. import org.openspcoop2.core.registry.driver.FiltroRicercaFruizioniServizio;
  90. import org.openspcoop2.core.registry.driver.FiltroRicercaGruppi;
  91. import org.openspcoop2.core.registry.driver.FiltroRicercaOperations;
  92. import org.openspcoop2.core.registry.driver.FiltroRicercaPortTypes;
  93. import org.openspcoop2.core.registry.driver.FiltroRicercaResources;
  94. import org.openspcoop2.core.registry.driver.FiltroRicercaRuoli;
  95. import org.openspcoop2.core.registry.driver.FiltroRicercaScope;
  96. import org.openspcoop2.core.registry.driver.FiltroRicercaServizi;
  97. import org.openspcoop2.core.registry.driver.FiltroRicercaSoggetti;
  98. import org.openspcoop2.core.registry.driver.IDAccordoCooperazioneFactory;
  99. import org.openspcoop2.core.registry.driver.IDAccordoFactory;
  100. import org.openspcoop2.core.registry.driver.IDServizioFactory;
  101. import org.openspcoop2.core.registry.driver.IDriverRegistroServiziCRUD;
  102. import org.openspcoop2.core.registry.driver.IDriverRegistroServiziGet;
  103. import org.openspcoop2.core.registry.driver.ValidazioneStatoPackageException;
  104. import org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject;
  105. import org.openspcoop2.utils.LoggerWrapperFactory;
  106. import org.openspcoop2.utils.UtilsAlreadyExistsException;
  107. import org.openspcoop2.utils.UtilsException;
  108. import org.openspcoop2.utils.UtilsRuntimeException;
  109. import org.openspcoop2.utils.certificate.CertificateInfo;
  110. import org.openspcoop2.utils.crypt.CryptConfig;
  111. import org.openspcoop2.utils.datasource.DataSourceFactory;
  112. import org.openspcoop2.utils.datasource.DataSourceParams;
  113. import org.openspcoop2.utils.jdbc.JDBCUtilities;
  114. import org.openspcoop2.utils.resources.GestoreJNDI;
  115. import org.openspcoop2.utils.sql.ISQLQueryObject;
  116. import org.slf4j.Logger;

  117. /**
  118.  * Classe utilizzata per effettuare query ad un registro dei servizi openspcoop
  119.  * formato da un db.
  120.  *
  121.  *
  122.  * @author Sandra Giangrandi (sandra@link.it)
  123.  * @author Stefano Corallo (corallo@link.it)
  124.  * @author $Author$
  125.  * @version $Rev$, $Date$
  126.  */

  127. public class DriverRegistroServiziDB extends BeanUtilities implements IDriverRegistroServiziGet,
  128. IDriverRegistroServiziCRUD,
  129. IDriverWS ,IMonitoraggioRisorsa, IDriverBYOKConfig{

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

  131.     /** Indicazione di una corretta creazione */
  132.     public boolean create = false;

  133.     // Datasource per la connessione al DB
  134.     private DataSource datasource = null;
  135.     // Connection passata al momento della creazione dell'oggetto
  136.     protected Connection globalConnection = null;
  137.     // Variabile di controllo del tipo di operazione da effettuare
  138.     // l'autoCommit viene gestito internamente a questa classe
  139.     protected boolean atomica = true;
  140.     public boolean isAtomica() {
  141.         return this.atomica;
  142.     }
  143.    
  144.     private static Logger checkLogger = null;
  145.     private static boolean checkIsClosed = true;
  146.     private static boolean checkAutocommit = true;
  147.     public static boolean isCheckIsClosed() {
  148.         return checkIsClosed;
  149.     }
  150.     public static void setCheckIsClosed(boolean checkIsClosed) {
  151.         DriverRegistroServiziDB.checkIsClosed = checkIsClosed;
  152.     }
  153.     public static boolean isCheckAutocommit() {
  154.         return checkAutocommit;
  155.     }
  156.     public static void setCheckAutocommit(boolean checkAutocommit) {
  157.         DriverRegistroServiziDB.checkAutocommit = checkAutocommit;
  158.     }
  159.     public static Logger getCheckLogger() {
  160.         return checkLogger;
  161.     }
  162.     public static void setCheckLogger(Logger checkLogger) {
  163.         DriverRegistroServiziDB.checkLogger = checkLogger;
  164.     }

  165.     /** Tabella soggetti */
  166.     protected String tabellaSoggetti = CostantiDB.SOGGETTI;

  167.     /** Logger utilizzato per info. */
  168.     protected Logger log = null;
  169.     void logDebug(String msg) {
  170.         if(this.log!=null) {
  171.             this.log.debug(msg);
  172.         }
  173.     }
  174.     void logDebug(String msg, Exception e) {
  175.         if(this.log!=null) {
  176.             this.log.debug(msg,e);
  177.         }
  178.     }

  179.     // Tipo database passato al momento della creazione dell'oggetto
  180.     protected String tipoDB = null;

  181.     public String getTipoDB() {
  182.         return this.tipoDB;
  183.     }

  184.     protected boolean useSuperUser = true;
  185.     public boolean isUseSuperUser() {
  186.         return this.useSuperUser;
  187.     }
  188.     public void setUseSuperUser(boolean useSuperUser) {
  189.         this.useSuperUser = useSuperUser;
  190.     }
  191.    

  192.     // Factory
  193.     protected IDAccordoFactory idAccordoFactory = IDAccordoFactory.getInstance();
  194.     protected IDAccordoCooperazioneFactory idAccordoCooperazioneFactory = IDAccordoCooperazioneFactory.getInstance();
  195.     protected IDServizioFactory idServizioFactory = IDServizioFactory.getInstance();

  196.    
  197.     // Driver
  198.    
  199.     private DriverRegistroServiziDB_accordiCooperazioneDriver accordiCooperazioneDriver = null;
  200.    
  201.     private DriverRegistroServiziDB_accordiDriver accordiDriver = null;
  202.     private DriverRegistroServiziDB_accordiSinteticiDriver accordiSinteticiDriver = null;
  203.     private DriverRegistroServiziDB_accordiSoapDriver accordiSoapDriver = null;
  204.     private DriverRegistroServiziDB_accordiRestDriver accordiRestDriver = null;
  205.     private DriverRegistroServiziDB_accordiFindAllDriver accordiFindAllDriver = null;
  206.     private DriverRegistroServiziDB_accordiExistsDriver accordiExistsDriver = null;
  207.     private DriverRegistroServiziDB_accordiServiziCompostiDriver accordiServiziCompostiDriver = null;
  208.    
  209.     private DriverRegistroServiziDB_pddDriver pddDriver = null;
  210.    
  211.     private DriverRegistroServiziDB_gruppiDriver gruppiDriver = null;
  212.    
  213.     private DriverRegistroServiziDB_ruoliDriver ruoliDriver = null;
  214.    
  215.     private DriverRegistroServiziDB_scopeDriver scopeDriver = null;
  216.    
  217.     private DriverRegistroServiziDB_soggettiDriver soggettiDriver = null;
  218.     private DriverRegistroServiziDB_soggettiCredenzialiDriver soggettiCredenzialiDriver = null;
  219.     private DriverRegistroServiziDB_soggettiSearchDriver soggettiSearchDriver = null;
  220.    
  221.     private DriverRegistroServiziDB_accordiParteSpecificaDriver accordiParteSpecificaDriver = null;
  222.     private DriverRegistroServiziDB_accordiParteSpecificaFruitoreDriver accordiParteSpecificaFruitoreDriver = null;
  223.     private DriverRegistroServiziDB_accordiParteSpecificaSearchDriver accordiParteSpecificaSearchDriver = null;
  224.    
  225.     private DriverRegistroServiziDB_connettoriDriver connettoriDriver = null;

  226.     private DriverRegistroServiziDB_documentiDriver documentiDriver = null;
  227.    
  228.     private DriverRegistroServiziDB_protocolPropertiesDriver protocolPropertiesDriver = null;
  229.    
  230.     private DriverRegistroServiziDB_utilsDriver utilsDriver = null;



  231.    

  232.     /* ******** COSTRUTTORI e METODI DI RELOAD ******** */

  233.     /**
  234.      * Costruttore.
  235.      *
  236.      * @param nomeDataSource
  237.      *                Nome del Datasource da utilizzare per prelevare le
  238.      *                connessioni
  239.      *
  240.      */
  241.     public DriverRegistroServiziDB(String nomeDataSource, Properties prop,String tipoDB) {
  242.         this(nomeDataSource,prop,null,tipoDB,false,false);
  243.     }
  244.     public DriverRegistroServiziDB(String nomeDataSource, Properties prop,Logger alog,String tipoDB){
  245.         this(nomeDataSource,prop,alog,tipoDB,false,false);
  246.     }
  247.     public DriverRegistroServiziDB(String nomeDataSource, Properties prop,Logger alog,String tipoDB,
  248.             boolean useOp2UtilsDatasource, boolean bindJMX){


  249.         if(alog==null)
  250.             this.log = LoggerWrapperFactory.getLogger(CostantiRegistroServizi.REGISTRO_DRIVER_DB_LOGGER);
  251.         else{
  252.             this.log = alog;
  253.             DriverRegistroServiziDB_LIB.initStaticLogger(this.log);
  254.         }
  255.         if(this.log==null) {
  256.             throw new UtilsRuntimeException("Logger unavailable");
  257.         }
  258.         try {
  259.             this.log.info("Inizializzo DriverRegistroServiziDB..");
  260.             if(useOp2UtilsDatasource){
  261.                 DataSourceParams dsParams = Costanti.getDataSourceParamsPdD(bindJMX, tipoDB);
  262.                 try{
  263.                     this.datasource = DataSourceFactory.newInstance(nomeDataSource, prop, dsParams);
  264.                 }catch(UtilsAlreadyExistsException exists){
  265.                     this.datasource = DataSourceFactory.getInstance(nomeDataSource);
  266.                     if(this.datasource==null){
  267.                         throw new CoreException("Lookup datasource non riuscita ("+exists.getMessage()+")",exists);
  268.                     }
  269.                 }
  270.             }
  271.             else{
  272.                 GestoreJNDI gestoreJNDI = new GestoreJNDI(prop);
  273.                 this.datasource = (DataSource) gestoreJNDI.lookup(nomeDataSource);
  274.             }
  275.             if (this.datasource != null)
  276.                 this.create = true;
  277.         } catch (Exception ne) {
  278.             this.log.error("Eccezione acquisendo il datasource: "+ne.getMessage(),ne);
  279.             this.create = false;
  280.         }

  281.         if (tipoDB == null) {
  282.             this.log.error("Il tipoDatabase non puo essere null.");
  283.             this.create = false;
  284.         }

  285.         this.atomica = true;
  286.         this.tipoDB = tipoDB;
  287.         // Setto il tipoDB anche in DriverRegistroServiziDB_LIB
  288.         DriverRegistroServiziDB_LIB.setTipoDB(tipoDB);
  289.        
  290.         // Driver
  291.        
  292.         this.accordiCooperazioneDriver = new DriverRegistroServiziDB_accordiCooperazioneDriver(this);
  293.        
  294.         this.accordiDriver = new DriverRegistroServiziDB_accordiDriver(this);
  295.         this.accordiSinteticiDriver = new DriverRegistroServiziDB_accordiSinteticiDriver(this);
  296.         this.accordiSoapDriver = new DriverRegistroServiziDB_accordiSoapDriver(this);
  297.         this.accordiRestDriver = new DriverRegistroServiziDB_accordiRestDriver(this);
  298.         this.accordiFindAllDriver = new DriverRegistroServiziDB_accordiFindAllDriver(this);
  299.         this.accordiExistsDriver = new DriverRegistroServiziDB_accordiExistsDriver(this);
  300.         this.accordiServiziCompostiDriver = new DriverRegistroServiziDB_accordiServiziCompostiDriver(this);
  301.        
  302.         this.pddDriver = new DriverRegistroServiziDB_pddDriver(this);
  303.        
  304.         this.gruppiDriver = new DriverRegistroServiziDB_gruppiDriver(this);
  305.        
  306.         this.ruoliDriver = new DriverRegistroServiziDB_ruoliDriver(this);
  307.        
  308.         this.scopeDriver = new DriverRegistroServiziDB_scopeDriver(this);
  309.        
  310.         this.soggettiDriver = new DriverRegistroServiziDB_soggettiDriver(this);
  311.         this.soggettiCredenzialiDriver = new DriverRegistroServiziDB_soggettiCredenzialiDriver(this);
  312.         this.soggettiSearchDriver = new DriverRegistroServiziDB_soggettiSearchDriver(this);
  313.        
  314.         this.accordiParteSpecificaDriver = new DriverRegistroServiziDB_accordiParteSpecificaDriver(this);
  315.         this.accordiParteSpecificaFruitoreDriver = new DriverRegistroServiziDB_accordiParteSpecificaFruitoreDriver(this);
  316.         this.accordiParteSpecificaSearchDriver = new DriverRegistroServiziDB_accordiParteSpecificaSearchDriver(this);
  317.        
  318.         this.connettoriDriver = new DriverRegistroServiziDB_connettoriDriver(this);
  319.        
  320.         this.documentiDriver = new DriverRegistroServiziDB_documentiDriver(this);
  321.        
  322.         this.protocolPropertiesDriver = new DriverRegistroServiziDB_protocolPropertiesDriver(this);
  323.        
  324.         this.utilsDriver = new DriverRegistroServiziDB_utilsDriver(this);

  325.     }

  326.     /**
  327.      * Costruttore Utilizzato dalle classi estese che gestiscono direttamente la
  328.      * connessione con il DB e si occupano di getstire il commit delle
  329.      * transazioni complesse
  330.      *
  331.      * @param connection
  332.      * @throws DriverRegistroServiziException
  333.      */
  334.     public DriverRegistroServiziDB(Connection connection,String tipoDB) throws DriverRegistroServiziException {
  335.         this(connection,null,tipoDB);
  336.     }
  337.     public DriverRegistroServiziDB(Connection connection,Logger alog,String tipoDB) throws DriverRegistroServiziException {

  338.         if(alog==null)
  339.             this.log = LoggerWrapperFactory.getLogger(CostantiRegistroServizi.REGISTRO_DRIVER_DB_LOGGER);
  340.         else{
  341.             this.log = alog;
  342.             DriverRegistroServiziDB_LIB.initStaticLogger(this.log);
  343.         }

  344.         //  this.log.info("Inizializzo DriverRegistroServiziDB...");
  345.         if (connection == null) {
  346.             this.create = false;
  347.             throw new DriverRegistroServiziException("[DriverRegistroServiziDB::DriverRegistroServiziDB(Connection ) La connection non puo essere null.");
  348.         }
  349.         if (tipoDB == null) {
  350.             this.create = false;
  351.             throw new DriverRegistroServiziException("[DriverRegistroServiziDB::DriverRegistroServiziDB(Connection ) Il tipoDatabase non puo essere null.");
  352.         }
  353.         this.globalConnection = connection;
  354.         this.create = true;
  355.         this.atomica = false;      
  356.         this.tipoDB = tipoDB;
  357.         // Setto il tipoDB anche in DriverRegistroServiziDB_LIB
  358.         DriverRegistroServiziDB_LIB.setTipoDB(tipoDB);

  359.         // Driver
  360.        
  361.         this.accordiCooperazioneDriver = new DriverRegistroServiziDB_accordiCooperazioneDriver(this);
  362.        
  363.         this.accordiDriver = new DriverRegistroServiziDB_accordiDriver(this);
  364.         this.accordiSinteticiDriver = new DriverRegistroServiziDB_accordiSinteticiDriver(this);
  365.         this.accordiSoapDriver = new DriverRegistroServiziDB_accordiSoapDriver(this);
  366.         this.accordiRestDriver = new DriverRegistroServiziDB_accordiRestDriver(this);
  367.         this.accordiFindAllDriver = new DriverRegistroServiziDB_accordiFindAllDriver(this);
  368.         this.accordiExistsDriver = new DriverRegistroServiziDB_accordiExistsDriver(this);
  369.         this.accordiServiziCompostiDriver = new DriverRegistroServiziDB_accordiServiziCompostiDriver(this);
  370.        
  371.         this.pddDriver = new DriverRegistroServiziDB_pddDriver(this);
  372.        
  373.         this.gruppiDriver = new DriverRegistroServiziDB_gruppiDriver(this);
  374.        
  375.         this.ruoliDriver = new DriverRegistroServiziDB_ruoliDriver(this);
  376.        
  377.         this.scopeDriver = new DriverRegistroServiziDB_scopeDriver(this);
  378.        
  379.         this.soggettiDriver = new DriverRegistroServiziDB_soggettiDriver(this);
  380.         this.soggettiCredenzialiDriver = new DriverRegistroServiziDB_soggettiCredenzialiDriver(this);
  381.         this.soggettiSearchDriver = new DriverRegistroServiziDB_soggettiSearchDriver(this);
  382.        
  383.         this.accordiParteSpecificaDriver = new DriverRegistroServiziDB_accordiParteSpecificaDriver(this);
  384.         this.accordiParteSpecificaFruitoreDriver = new DriverRegistroServiziDB_accordiParteSpecificaFruitoreDriver(this);
  385.         this.accordiParteSpecificaSearchDriver = new DriverRegistroServiziDB_accordiParteSpecificaSearchDriver(this);
  386.        
  387.         this.connettoriDriver = new DriverRegistroServiziDB_connettoriDriver(this);
  388.        
  389.         this.documentiDriver = new DriverRegistroServiziDB_documentiDriver(this);
  390.        
  391.         this.protocolPropertiesDriver = new DriverRegistroServiziDB_protocolPropertiesDriver(this);
  392.        
  393.         this.utilsDriver = new DriverRegistroServiziDB_utilsDriver(this);
  394.     }
  395.    
  396.    
  397.    
  398.     public Connection getConnection(String methodName) throws DriverRegistroServiziException{
  399.         Connection con = null;
  400.        
  401.         if (this.atomica) {
  402.             try {
  403.                 con = this.getConnectionFromDatasource(methodName);
  404.             } catch (Exception e) {
  405.                 throw new DriverRegistroServiziException("[DriverRegistroServiziDB::getConnection] Exception accedendo al datasource :" + e.getMessage(),e);

  406.             }

  407.         } else
  408.             con = this.globalConnection;
  409.        
  410.         return con;
  411.     }
  412.    
  413.     public void releaseConnection(Connection con){
  414.         if (this.atomica) {
  415.             try {
  416.                 JDBCUtilities.closeConnection(checkLogger, con, checkAutocommit, checkIsClosed);
  417.             } catch (Exception e) {
  418.                 // ignore
  419.             }
  420.         }
  421.     }


  422.     Connection getConnectionFromDatasource(String methodName) throws SQLException {
  423.         if(this.datasource instanceof org.openspcoop2.utils.datasource.DataSource){
  424.             return ((org.openspcoop2.utils.datasource.DataSource)this.datasource).getWrappedConnection(null, "DriverRegistroServizi."+methodName);
  425.         }
  426.         else{
  427.             return this.datasource.getConnection();
  428.         }
  429.     }

  430.    
  431.     public List<List<Object>> readCustom(ISQLQueryObject sqlQueryObject, List<Class<?>> returnTypes, List<JDBCObject> paramTypes) throws DriverRegistroServiziException
  432.     {
  433.         Connection con = null;
  434.         try {

  435.             this.log.debug("operazione atomica = " + this.atomica);
  436.             // prendo la connessione dal pool
  437.             if (this.atomica)
  438.                 con = this.getConnectionFromDatasource("readCustom");
  439.             else
  440.                 con = this.globalConnection;
  441.        
  442.             return DBUtils.readCustom(this.log, con, this.tipoDB, sqlQueryObject, returnTypes, paramTypes);
  443.            
  444.         }catch (Exception se) {
  445.             throw new DriverRegistroServiziException("[DriverRegistroServiziDB::readCustom]: " + se.getMessage(),se);
  446.         } finally {
  447.             closeConnection(con);
  448.         }
  449.     }
  450.    
  451.     public void closeConnection(Connection conParam, Connection con) {
  452.         try {
  453.             if (conParam==null && this.atomica) {
  454.                 this.log.debug("rilascio connessione al db...");
  455.                 JDBCUtilities.closeConnection(checkLogger, con, checkAutocommit, checkIsClosed);
  456.             }
  457.         } catch (Exception e) {
  458.             // ignore
  459.         }
  460.     }
  461.    
  462.     public void closeConnection(Connection con) {
  463.         try {
  464.             if (this.atomica) {
  465.                 this.log.debug("rilascio connessioni al db...");
  466.                 JDBCUtilities.closeConnection(checkLogger, con, checkAutocommit, checkIsClosed);
  467.             }
  468.         } catch (Exception e) {
  469.             // ignore exception
  470.         }
  471.     }
  472.    
  473.     public void closeConnection(boolean error, Connection con) {
  474.         try {
  475.             if (error && this.atomica) {
  476.                 this.log.debug("eseguo rollback a causa di errori e rilascio connessioni...");
  477.                 if(con!=null) {
  478.                     con.rollback();
  479.                     con.setAutoCommit(true);
  480.                     JDBCUtilities.closeConnection(checkLogger, con, checkAutocommit, checkIsClosed);
  481.                 }

  482.             } else if (!error && this.atomica) {
  483.                 this.log.debug("eseguo commit e rilascio connessioni...");
  484.                 if(con!=null) {
  485.                     con.commit();
  486.                     con.setAutoCommit(true);
  487.                     JDBCUtilities.closeConnection(checkLogger, con, checkAutocommit, checkIsClosed);
  488.                 }
  489.             }

  490.         } catch (Exception e) {
  491.             // ignore exception
  492.         }
  493.     }
  494.    
  495.    
  496.    
  497.    
  498.     // *** BYOK ***
  499.    
  500.     private IDriverBYOK driverBYOK = null;
  501.     private boolean wrapBYOK;
  502.     private boolean unwrapBYOK;
  503.    
  504.     @Override
  505.     public void initialize(IDriverBYOK driver,
  506.             boolean wrap, boolean unwrap) throws UtilsException{
  507.         this.driverBYOK = driver;
  508.         this.wrapBYOK = wrap;
  509.         this.unwrapBYOK = unwrap;
  510.     }

  511.     public IDriverBYOK getDriverWrapBYOK() {
  512.         return this.wrapBYOK ? this.driverBYOK : null;
  513.     }
  514.     public IDriverBYOK getDriverUnwrapBYOK() {
  515.         return this.unwrapBYOK ? this.driverBYOK : null;
  516.     }
  517.    
  518.    
  519.    


  520.     /* Accordi di Cooperazione */

  521.     /**
  522.      * Si occupa di ritornare l'oggetto {@link org.openspcoop2.core.registry.AccordoCooperazione},
  523.      * identificato grazie al parametro
  524.      * <var>nomeAccordo</var>
  525.      *
  526.      * @param idAccordo Identificativo dell'accordo di Cooperazione
  527.      * @return un oggetto di tipo {@link org.openspcoop2.core.registry.AccordoCooperazione}.
  528.      *
  529.      */
  530.     @Override
  531.     public org.openspcoop2.core.registry.AccordoCooperazione getAccordoCooperazione(IDAccordoCooperazione idAccordo) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  532.         return this.accordiCooperazioneDriver.getAccordoCooperazione(idAccordo);
  533.     }
  534.     public org.openspcoop2.core.registry.AccordoCooperazione getAccordoCooperazione(IDAccordoCooperazione idAccordo,boolean readContenutoAllegati) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  535.         return this.accordiCooperazioneDriver.getAccordoCooperazione(idAccordo,readContenutoAllegati);
  536.     }

  537.     public IDAccordoCooperazione getIdAccordoCooperazione(long id) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  538.         return this.accordiCooperazioneDriver.getIdAccordoCooperazione(id);
  539.     }
  540.     public IDAccordoCooperazione getIdAccordoCooperazione(long id,Connection conParam) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  541.         return this.accordiCooperazioneDriver.getIdAccordoCooperazione(id, conParam);
  542.     }

  543.     public AccordoCooperazione getAccordoCooperazione(long id) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  544.         return this.accordiCooperazioneDriver.getAccordoCooperazione(id);
  545.     }
  546.     public AccordoCooperazione getAccordoCooperazione(long id,Connection conParam) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  547.         return this.accordiCooperazioneDriver.getAccordoCooperazione(id,conParam);
  548.     }

  549.     /**
  550.      * Ritorna gli identificatori degli accordi che rispettano il parametro di ricerca
  551.      *
  552.      * @param filtroRicerca
  553.      * @return Una lista di ID degli accordi trovati
  554.      * @throws DriverRegistroServiziException
  555.      * @throws DriverRegistroServiziNotFound
  556.      */
  557.     @Override
  558.     public List<IDAccordoCooperazione> getAllIdAccordiCooperazione(FiltroRicercaAccordi filtroRicerca) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  559.         return this.accordiCooperazioneDriver.getAllIdAccordiCooperazione(filtroRicerca);
  560.     }

  561.     /**
  562.      * Crea un nuovo AccordoCooperazione
  563.      *
  564.      * @param accordoCooperazione
  565.      * @throws DriverRegistroServiziException
  566.      */
  567.     @Override
  568.     public void createAccordoCooperazione(AccordoCooperazione accordoCooperazione) throws DriverRegistroServiziException{
  569.         this.accordiCooperazioneDriver.createAccordoCooperazione(accordoCooperazione);
  570.     }

  571.     /**
  572.      * Verifica l'esistenza di un accordo registrato.
  573.      *
  574.      * @param idAccordo dell'accordo da verificare
  575.      * @return true se l'accordo esiste, false altrimenti
  576.      * @throws DriverRegistroServiziException
  577.      */    
  578.     @Override
  579.     public boolean existsAccordoCooperazione(IDAccordoCooperazione idAccordo) throws DriverRegistroServiziException{
  580.         return this.accordiCooperazioneDriver.existsAccordoCooperazione(idAccordo);
  581.     }

  582.     /**
  583.      * Aggiorna l'AccordoCooperazione con i nuovi valori.
  584.      *  
  585.      * @param accordoCooperazione
  586.      * @throws DriverRegistroServiziException
  587.      */
  588.     @Override
  589.     public void updateAccordoCooperazione(AccordoCooperazione accordoCooperazione) throws DriverRegistroServiziException{
  590.         this.accordiCooperazioneDriver.updateAccordoCooperazione(accordoCooperazione);
  591.     }

  592.     /**
  593.      * Elimina un AccordoCooperazione
  594.      *  
  595.      * @param accordoCooperazione
  596.      * @throws DriverRegistroServiziException
  597.      */
  598.     @Override
  599.     public void deleteAccordoCooperazione(AccordoCooperazione accordoCooperazione) throws DriverRegistroServiziException{
  600.         this.accordiCooperazioneDriver.deleteAccordoCooperazione(accordoCooperazione);
  601.     }
  602.    
  603.     public List<AccordoCooperazione> accordiCooperazioneList(String superuser, ISearch ricerca) throws DriverRegistroServiziException {
  604.         return this.accordiCooperazioneDriver.accordiCooperazioneList(superuser, ricerca);
  605.     }

  606.     public List<IDSoggetto> accordiCoopPartecipantiList(long idAccordo,ISearch ricerca) throws DriverRegistroServiziException {
  607.         return this.accordiCooperazioneDriver.accordiCoopPartecipantiList(idAccordo, ricerca);
  608.     }

  609.     public List<AccordoCooperazione> accordiCoopWithSoggettoPartecipante(IDSoggetto idSoggetto) throws DriverRegistroServiziException {
  610.         return this.accordiCooperazioneDriver.accordiCoopWithSoggettoPartecipante(idSoggetto);
  611.     }

  612.     public void validaStatoAccordoCooperazione(AccordoCooperazione ac) throws ValidazioneStatoPackageException{
  613.         this.accordiCooperazioneDriver.validaStatoAccordoCooperazione(ac);
  614.     }
  615.    

  616.     /* Accordi di Servizio Parte Comune Sintetici */
  617.    
  618.     public org.openspcoop2.core.registry.beans.AccordoServizioParteComuneSintetico getAccordoServizioParteComuneSintetico(IDAccordo idAccordo) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  619.         return this.accordiSinteticiDriver.getAccordoServizioParteComuneSintetico(idAccordo);
  620.     }  
  621.    
  622.     public org.openspcoop2.core.registry.beans.AccordoServizioParteComuneSintetico getAccordoServizioParteComuneSintetico(long idAccordo) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  623.         return this.accordiSinteticiDriver.getAccordoServizioParteComuneSintetico(idAccordo);
  624.     }
  625.    
  626.     public List<AccordoServizioParteComuneSintetico> accordiList(String superuser, ISearch ricerca) throws DriverRegistroServiziException {
  627.         return this.accordiSinteticiDriver.accordiList(superuser, ricerca);
  628.     }
  629.     public List<AccordoServizioParteComuneSintetico> accordiServizioParteComuneList(String superuser, ISearch ricerca) throws DriverRegistroServiziException {
  630.         return this.accordiSinteticiDriver.accordiServizioParteComuneList(superuser, ricerca);
  631.     }
  632.     public List<AccordoServizioParteComuneSintetico> accordiServizioCompostiList(String superuser, ISearch ricerca) throws DriverRegistroServiziException {
  633.         return this.accordiSinteticiDriver.accordiServizioCompostiList(superuser, ricerca);
  634.     }
  635.    
  636.    
  637.     /* Accordi di Servizio Parte Comune */
  638.    
  639.     public int getAccordoServizioParteComuneNextVersion(IDAccordo idAccordo) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  640.         return this.accordiDriver.getAccordoServizioParteComuneNextVersion(idAccordo);
  641.     }  

  642.     /**
  643.      * Si occupa di ritornare l'oggetto
  644.      * {@link org.openspcoop2.core.registry.AccordoServizioParteComune}, identificato grazie
  645.      * al parametro <var>nomeAccordo</var>
  646.      *
  647.      * @param idAccordo
  648.      *                Nome dell'accordo di Servizio
  649.      * @return l'oggetto di tipo
  650.      *         {@link org.openspcoop2.core.registry.AccordoServizioParteComune}
  651.      *
  652.      */
  653.     @Override
  654.     public org.openspcoop2.core.registry.AccordoServizioParteComune getAccordoServizioParteComune(IDAccordo idAccordo) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  655.         return this.accordiDriver.getAccordoServizioParteComune(idAccordo);
  656.     }
  657.     public org.openspcoop2.core.registry.AccordoServizioParteComune getAccordoServizioParteComune(IDAccordo idAccordo,boolean readContenutoAllegati,boolean readDatiRegistro) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  658.         return this.accordiDriver.getAccordoServizioParteComune(idAccordo, readContenutoAllegati, readDatiRegistro);
  659.     }

  660.     public IDAccordo getIdAccordoServizioParteComune(long id) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  661.         return this.accordiDriver.getIdAccordoServizioParteComune(id);
  662.     }
  663.     public IDAccordo getIdAccordoServizioParteComune(long id,Connection conParam) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  664.         return this.accordiDriver.getIdAccordoServizioParteComune(id, conParam);
  665.     }

  666.     public AccordoServizioParteComune getAccordoServizioParteComune(long id) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  667.         return this.accordiDriver.getAccordoServizioParteComune(id);
  668.     }
  669.     public AccordoServizioParteComune getAccordoServizioParteComune(long id, boolean readContenutoAllegati,boolean readDatiRegistro) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  670.         return this.accordiDriver.getAccordoServizioParteComune(id, readContenutoAllegati, readDatiRegistro);
  671.     }
  672.     public AccordoServizioParteComune getAccordoServizioParteComune(long id,Connection conParam) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  673.         return this.accordiDriver.getAccordoServizioParteComune(id, conParam);
  674.     }
  675.     public AccordoServizioParteComune getAccordoServizioParteComune(long id, boolean readContenutoAllegati,boolean readDatiRegistro,Connection conParam) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  676.         return this.accordiDriver.getAccordoServizioParteComune(id, readContenutoAllegati, readDatiRegistro, conParam);
  677.     }

  678.     @Override
  679.     public List<IDAccordo> getAllIdAccordiServizioParteComune(FiltroRicercaAccordi filtroRicerca) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  680.         return this.accordiFindAllDriver.getAllIdAccordiServizioParteComune(filtroRicerca);
  681.     }
  682.    
  683.     @Override
  684.     public List<IDPortType> getAllIdPortType(FiltroRicercaPortTypes filtroRicerca) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  685.         return this.accordiFindAllDriver.getAllIdPortType(filtroRicerca);
  686.     }
  687.    
  688.     @Override
  689.     public List<IDPortTypeAzione> getAllIdAzionePortType(FiltroRicercaOperations filtroRicerca) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  690.         return this.accordiFindAllDriver.getAllIdAzionePortType(filtroRicerca);
  691.     }
  692.    
  693.     @Override
  694.     public List<IDAccordoAzione> getAllIdAzioneAccordo(FiltroRicercaAzioni filtroRicerca) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  695.         return this.accordiFindAllDriver.getAllIdAzioneAccordo(filtroRicerca);
  696.     }
  697.    
  698.     @Override
  699.     public List<IDResource> getAllIdResource(FiltroRicercaResources filtroRicerca) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  700.         return this.accordiFindAllDriver.getAllIdResource(filtroRicerca);
  701.     }
  702.    

  703.     /**
  704.      * Crea un nuovo AccordoServizio inserendolo nel DB Se il parametro
  705.      * Connection e' null vuol dire che e' un'operazione atomica, altrimenti
  706.      * vuol dire che l'operazione e' stata richiesta dalla parte 'estesa' (GUI)
  707.      * e che non bisogna fare il commit a questo livello
  708.      *
  709.      * @param accordoServizio
  710.      * @throws DriverRegistroServiziException
  711.      */
  712.     @Override
  713.     public void createAccordoServizioParteComune(org.openspcoop2.core.registry.AccordoServizioParteComune accordoServizio) throws DriverRegistroServiziException {
  714.         this.accordiDriver.createAccordoServizioParteComune(accordoServizio);
  715.     }

  716.     /**
  717.      * Verifica l'esistenza di un accordo registrato.
  718.      *
  719.      * @param idAccordo id
  720.      *                dell'accordo da verificare
  721.      * @return true se l'accordo esiste, false altrimenti
  722.      */
  723.     @Override
  724.     public boolean existsAccordoServizioParteComune(IDAccordo idAccordo) throws DriverRegistroServiziException {
  725.         return this.accordiExistsDriver.existsAccordoServizioParteComune(idAccordo);
  726.     }

  727.     /**
  728.      * Verifica l'esistenza di un accordo registrato.
  729.      *
  730.      * @param idAccordo
  731.      *                dell'accordo da verificare
  732.      * @return true se l'accordo esiste, false altrimenti
  733.      */
  734.     public boolean existsAccordoServizioParteComune(long idAccordo) throws DriverRegistroServiziException {
  735.         return this.accordiExistsDriver.existsAccordoServizioParteComune(idAccordo);
  736.     }

  737.     /**
  738.      * Verifica l'esistenza di un'azione in un accordo
  739.      *
  740.      * @param nome
  741.      *                dell'azione da verificare
  742.      * @param idAccordo Identificativo dell'accordi di servizio
  743.      *              
  744.      * @return true se l'azione esiste, false altrimenti
  745.      */
  746.     public boolean existsAccordoServizioParteComuneAzione(String nome, IDAccordo idAccordo) throws DriverRegistroServiziException {
  747.         return this.accordiExistsDriver.existsAccordoServizioParteComuneAzione(nome, idAccordo);
  748.     }

  749.     /**
  750.      * Verifica l'esistenza di un'azione in un accordo
  751.      *
  752.      * @param nome
  753.      *                dell'azione da verificare
  754.      * @param idAccordo
  755.      *                dell'accordo
  756.      * @return true se l'azione esiste, false altrimenti
  757.      */
  758.     public boolean existsAccordoServizioParteComuneAzione(String nome, long idAccordo) throws DriverRegistroServiziException {
  759.         return this.accordiExistsDriver.existsAccordoServizioParteComuneAzione(nome, idAccordo);
  760.     }

  761.     /**
  762.      * Verifica l'esistenza di un'azione in un accordo
  763.      *
  764.      * @param idAzione dell'azione
  765.      * @return true se l'azione esiste, false altrimenti
  766.      */
  767.     public boolean existsAccordoServizioParteComuneAzione(long idAzione) throws DriverRegistroServiziException {
  768.         return this.accordiExistsDriver.existsAccordoServizioParteComuneAzione(idAzione);
  769.     }

  770.     public boolean existsAccordoServizioParteComunePorttype(String nome, IDAccordo idAccordo) throws DriverRegistroServiziException {
  771.         return this.accordiExistsDriver.existsAccordoServizioParteComunePorttype(nome, idAccordo);
  772.     }

  773.     /**
  774.      * Verifica l'esistenza di un'operation in un accordo
  775.      *
  776.      * @param idAzione dell'azione
  777.      * @return true se l'azione esiste, false altrimenti
  778.      */
  779.     public boolean existsAccordoServizioParteComuneOperation(long idAzione) throws DriverRegistroServiziException {
  780.         return this.accordiExistsDriver.existsAccordoServizioParteComuneOperation(idAzione);
  781.     }

  782.     /**
  783.      * Verifica l'esistenza di un port-type in un accordo
  784.      *
  785.      * @param nome
  786.      *                del port-type da verificare
  787.      * @param idAccordo
  788.      *                dell'accordo
  789.      * @return true se il port-type esiste, false altrimenti
  790.      */
  791.     public boolean existsAccordoServizioParteComunePorttype(String nome, long idAccordo) throws DriverRegistroServiziException {
  792.         return this.accordiExistsDriver.existsAccordoServizioParteComunePorttype(nome, idAccordo);
  793.     }

  794.     /**
  795.      *
  796.      * @param nome Nome dell'operation
  797.      * @param idPortType L'identificativo del PortType
  798.      * @return true se esiste, false altrimenti.
  799.      * @throws DriverRegistroServiziException
  800.      */
  801.     public boolean existsAccordoServizioParteComunePorttypeOperation(String nome, IDPortType idPortType) throws DriverRegistroServiziException {
  802.         return this.accordiExistsDriver.existsAccordoServizioParteComunePorttypeOperation(nome, idPortType);
  803.     }

  804.     /**
  805.      * Verifica l'esistenza di un operation in un port-type
  806.      *
  807.      * @param nome
  808.      *                dell'operation da verificare
  809.      * @param idPortType
  810.      *                del port-type
  811.      * @return true se l'operation esiste, false altrimenti
  812.      */
  813.     public boolean existsAccordoServizioParteComunePorttypeOperation(String nome, long idPortType) throws DriverRegistroServiziException {
  814.         return this.accordiExistsDriver.existsAccordoServizioParteComunePorttypeOperation(nome, idPortType);
  815.     }
  816.    
  817.     /**
  818.      * Verifica l'esistenza di un risorsa con determinato nome in un accordo
  819.      *
  820.      * @param nome
  821.      *                del port-type da verificare
  822.      * @param idAccordo
  823.      *                dell'accordo
  824.      * @return true se il port-type esiste, false altrimenti
  825.      */
  826.     public boolean existsAccordoServizioParteComuneResource(String nome, long idAccordo) throws DriverRegistroServiziException {
  827.         return this.accordiExistsDriver.existsAccordoServizioParteComuneResource(nome, idAccordo);
  828.     }
  829.    
  830.     public boolean existsAccordoServizioParteComuneResource(String httpMethod, String path, long idAccordo, String excludeResourceWithName) throws DriverRegistroServiziException {
  831.         return this.accordiExistsDriver.existsAccordoServizioParteComuneResource(httpMethod, path, idAccordo, excludeResourceWithName);
  832.     }
  833.    
  834.     /**
  835.      * Verifica l'esistenza di un response con Status in una Resource
  836.      *
  837.      * @param httpStatus
  838.      *                 della response da verificare
  839.      * @param idRisorsa
  840.      *                della resource
  841.      * @return true se la risposta esiste, false altrimenti
  842.      */
  843.     public boolean existsAccordoServizioResourceResponse(long idRisorsa, int httpStatus) throws DriverRegistroServiziException {
  844.         return this.accordiExistsDriver.existsAccordoServizioResourceResponse(idRisorsa, httpStatus);
  845.     }
  846.    
  847.     public boolean existsAccordoServizioResourceRepresentation(Long idRisorsa, boolean isRequest, Long idResponse, String mediaType) throws DriverRegistroServiziException {
  848.         return this.accordiExistsDriver.existsAccordoServizioResourceRepresentation(idRisorsa, isRequest, idResponse, mediaType);
  849.     }
  850.    
  851.     public boolean existsAccordoServizioResourceParameter(Long idRisorsa, boolean isRequest, Long idResponse, ParameterType tipo, String nome) throws DriverRegistroServiziException {
  852.         return this.accordiExistsDriver.existsAccordoServizioResourceParameter(idRisorsa, isRequest, idResponse, tipo, nome);
  853.     }

  854.     /**
  855.      * Aggiorna l'elemento nel database con i nuovi valori. Se il parametro
  856.      * Connection e' null vuol dire che e' un'operazione atomica, altrimenti
  857.      * vuol dire che l'operazione e' stata richiesta dalla parte 'estesa' (GUI)
  858.      * e che non bisogna fare il commit a questo livello
  859.      *
  860.      * @param accordoServizio
  861.      * @throws DriverRegistroServiziException
  862.      */
  863.     @Override
  864.     public void updateAccordoServizioParteComune(org.openspcoop2.core.registry.AccordoServizioParteComune accordoServizio) throws DriverRegistroServiziException {
  865.         this.accordiDriver.updateAccordoServizioParteComune(accordoServizio);
  866.     }

  867.     /**
  868.      * Aggiorna l'elemento nel database con i nuovi valori. Se il parametro
  869.      * Connection e' null vuol dire che e' un'operazione atomica, altrimenti
  870.      * vuol dire che l'operazione e' stata richiesta dalla parte 'estesa' (GUI)
  871.      * e che non bisogna fare il commit a questo livello
  872.      *
  873.      * @param portType
  874.      * @throws DriverRegistroServiziException
  875.      */
  876.     public void updatePortType(org.openspcoop2.core.registry.PortType portType, String user) throws DriverRegistroServiziException {
  877.         this.accordiSoapDriver.updatePortType(portType, user);
  878.     }
  879.    
  880.     /**
  881.      * Elimina un AccordoServizio nel database e le eventuali azioni collegate
  882.      * Se il parametro Connection e' null vuol dire che e' un'operazione
  883.      * atomica, altrimenti vuol dire che l'operazione e' stata richiesta dalla
  884.      * parte 'estesa' (GUI) e che non bisogna fare il commit a questo livello
  885.      *
  886.      * @param accordoServizio
  887.      * @throws DriverRegistroServiziException
  888.      */
  889.     @Override
  890.     public void deleteAccordoServizioParteComune(org.openspcoop2.core.registry.AccordoServizioParteComune accordoServizio) throws DriverRegistroServiziException {
  891.         this.accordiDriver.deleteAccordoServizioParteComune(accordoServizio);
  892.     }

  893.     public List<Azione> accordiAzioniList(long idAccordo, ISearch ricerca) throws DriverRegistroServiziException{
  894.         return this.accordiSoapDriver.accordiAzioniList(idAccordo, ricerca);
  895.     }

  896.     /**
  897.      * Recupera la lista di azioni dell'Accordo con id idAccordo, con il profilo di collaborazione specificato
  898.      * Il profilo di collaborazione viene ricercato nell'accordo di servizio se l'azione ha profilo di defaul
  899.      * altrimenti viene controllato il profilo di collaborazione dell'azione
  900.      * @param idAccordo
  901.      * @param profiloCollaborazione Opzionale
  902.      * @param ricerca
  903.      * @return Lista di {@link Azione} dell'accordo idAccordo con profilo di collaborazione 'profiloCollaborazione' se specificato altrimenti tutte.
  904.      * @throws DriverRegistroServiziException
  905.      */
  906.     public List<Azione> accordiAzioniList(long idAccordo,String profiloCollaborazione, ISearch ricerca) throws DriverRegistroServiziException {
  907.         return this.accordiSoapDriver.accordiAzioniList(idAccordo, profiloCollaborazione, ricerca);
  908.     }
  909.    
  910.     public List<IDAccordoDB> idAccordiList(String superuser, ISearch ricerca,
  911.             boolean soloAccordiConsistentiRest, boolean soloAccordiConsistentiSoap) throws DriverRegistroServiziException {
  912.         return this.accordiDriver.idAccordiList(superuser, ricerca,
  913.                 soloAccordiConsistentiRest, soloAccordiConsistentiSoap);
  914.     }
  915.     public List<IDAccordoDB> idAccordiServizioParteComuneList(String superuser, ISearch ricerca,
  916.             boolean soloAccordiConsistentiRest, boolean soloAccordiConsistentiSoap) throws DriverRegistroServiziException {
  917.         return this.accordiDriver.idAccordiServizioParteComuneList(superuser, ricerca,
  918.                 soloAccordiConsistentiRest, soloAccordiConsistentiSoap);
  919.     }
  920.     public List<IDAccordoDB> idAccordiServizioCompostiList(String superuser, ISearch ricerca,
  921.             boolean soloAccordiConsistentiRest, boolean soloAccordiConsistentiSoap) throws DriverRegistroServiziException {
  922.         return this.accordiDriver.idAccordiServizioCompostiList(superuser, ricerca,
  923.                 soloAccordiConsistentiRest, soloAccordiConsistentiSoap);
  924.     }
  925.    
  926.     public List<Documento> accordiAllegatiList(long idAccordo, ISearch ricerca) throws DriverRegistroServiziException {
  927.         return this.accordiDriver.accordiAllegatiList(idAccordo, ricerca);
  928.     }
  929.    
  930.     public List<IDServizio> getIdServiziWithAccordo(IDAccordo idAccordo,boolean checkPTisNull) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  931.         return this.accordiDriver.getIdServiziWithAccordo(idAccordo, checkPTisNull);
  932.     }
  933.    
  934.     public void controlloUnicitaImplementazioneAccordoPerSoggetto(String portType,
  935.             IDSoggetto idSoggettoErogatore, long idSoggettoErogatoreLong,
  936.             IDAccordo idAccordoServizioParteComune, long idAccordoServizioParteComuneLong,
  937.             IDServizio idAccordoServizioParteSpecifica, long idAccordoServizioParteSpecificaLong,
  938.             boolean isUpdate,boolean isServizioCorrelato,
  939.             boolean isAbilitatoControlloUnicitaImplementazioneAccordoPerSoggetto,
  940.             boolean isAbilitatoControlloUnicitaImplementazionePortTypePerSoggetto) throws DriverRegistroServiziException{
  941.         this.accordiDriver.controlloUnicitaImplementazioneAccordoPerSoggetto(portType,
  942.                 idSoggettoErogatore, idSoggettoErogatoreLong,
  943.                 idAccordoServizioParteComune, idAccordoServizioParteComuneLong,
  944.                 idAccordoServizioParteSpecifica, idAccordoServizioParteSpecificaLong,
  945.                 isUpdate,isServizioCorrelato,
  946.                 isAbilitatoControlloUnicitaImplementazioneAccordoPerSoggetto,
  947.                 isAbilitatoControlloUnicitaImplementazionePortTypePerSoggetto);
  948.     }

  949.     /**
  950.      * Restituisce gli accordi compatibili
  951.      * @param ricerca
  952.      * @return accordiCompatibiliList
  953.      * @throws DriverRegistroServiziException
  954.      */
  955.     public List<AccordoServizioParteComune> accordiCompatibiliList(ISearch ricerca) throws DriverRegistroServiziException {
  956.         return this.accordiDriver.accordiCompatibiliList(ricerca);
  957.     }
  958.    
  959.     public void validaStatoAccordoServizio(AccordoServizioParteComune as,boolean utilizzoAzioniDiretteInAccordoAbilitato) throws ValidazioneStatoPackageException{
  960.         this.accordiDriver.validaStatoAccordoServizio(as, utilizzoAzioniDiretteInAccordoAbilitato);
  961.     }
  962.    
  963.     /* Accordi di Servizio Composti */
  964.    
  965.     public List<AccordoServizioParteComune> accordiServizio_serviziComponentiConSoggettoErogatore(IDSoggetto idSoggetto) throws DriverRegistroServiziException {
  966.         return this.accordiServiziCompostiDriver.accordiServizio_serviziComponentiConSoggettoErogatore(idSoggetto);
  967.     }

  968.     public List<AccordoServizioParteComune> accordiServizio_serviziComponenti(IDServizio idServizio) throws DriverRegistroServiziException {
  969.         return this.accordiServiziCompostiDriver.accordiServizio_serviziComponenti(idServizio);
  970.     }

  971.     public List<AccordoServizioParteComune> accordiServizioWithAccordoCooperazione(IDAccordoCooperazione idAccordoCooperazione) throws DriverRegistroServiziException {
  972.         return this.accordiServiziCompostiDriver.accordiServizioWithAccordoCooperazione(idAccordoCooperazione);
  973.     }
  974.    
  975.     public AccordoServizioParteComune[] getAllIdAccordiWithSoggettoReferente(IDSoggetto idsoggetto) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  976.         return this.accordiDriver.getAllIdAccordiWithSoggettoReferente(idsoggetto);
  977.     }
  978.    
  979.     public long getIdServizioCorrelato(String nomeServizio, String tipoServizio, String nomeProprietario, String tipoProprietario, Connection con) throws DriverRegistroServiziException {
  980.         return this.accordiServiziCompostiDriver.getIdServizioCorrelato(nomeServizio, tipoServizio, nomeProprietario, tipoProprietario, con);
  981.     }
  982.    
  983.     public List<AccordoServizioParteComuneServizioCompostoServizioComponente> accordiComponentiList(long idAccordo, ISearch ricerca) throws DriverRegistroServiziException {
  984.         return this.accordiServiziCompostiDriver.accordiComponentiList(idAccordo, ricerca);
  985.     }

  986.     public List<Documento> accordiCoopAllegatiList(long idAccordo, ISearch ricerca) throws DriverRegistroServiziException {
  987.         return this.accordiServiziCompostiDriver.accordiCoopAllegatiList(idAccordo, ricerca);
  988.     }
  989.    
  990.     /* Accordi di Servizio SOAP */
  991.    
  992.     public void deleteAzione(long idAccordo, String nomeAzione) throws DriverRegistroServiziException {
  993.         this.accordiSoapDriver.deleteAzione(idAccordo, nomeAzione);
  994.     }  
  995.    
  996.     public List<PortType> accordiPorttypeList(long idAccordo, ISearch ricerca) throws DriverRegistroServiziException {
  997.         return this.accordiSoapDriver.accordiPorttypeList(idAccordo, ricerca);
  998.     }

  999.     public List<PortType> accordiPorttypeList(long idAccordo, String profiloCollaborazione, ISearch ricerca) throws DriverRegistroServiziException {
  1000.         return this.accordiSoapDriver.accordiPorttypeList(idAccordo, profiloCollaborazione, ricerca);
  1001.     }
  1002.    
  1003.     public List<Operation> accordiPorttypeOperationList(long idPortType,String profiloCollaborazione, ISearch ricerca) throws DriverRegistroServiziException {
  1004.         return this.accordiSoapDriver.accordiPorttypeOperationList(idPortType, profiloCollaborazione, ricerca);
  1005.     }

  1006.     public List<Operation> accordiPorttypeOperationList(long idPortType, ISearch ricerca) throws DriverRegistroServiziException {
  1007.         return this.accordiSoapDriver.accordiPorttypeOperationList(idPortType, ricerca);
  1008.     }
  1009.    
  1010.     public List<MessagePart> accordiPorttypeOperationMessagePartList(long idOperation, boolean isInput, ISearch ricerca) throws DriverRegistroServiziException {
  1011.         return this.accordiSoapDriver.accordiPorttypeOperationMessagePartList(idOperation, isInput, ricerca);
  1012.     }
  1013.    
  1014.     /**
  1015.      * Controlla se l'azione e' usata come Azione correlata in qualche azione dell'accordo con id idAccordo
  1016.      * @param idAccordo
  1017.      * @param nomeAzione
  1018.      * @return true se se l'azione e' usata come Azione correlata in qualche azione dell'accordo con id idAccordo
  1019.      * @throws DriverRegistroServiziException
  1020.      */
  1021.     public boolean isCorrelata(long idAccordo,String nomeAzione,String owner) throws DriverRegistroServiziException {
  1022.         return this.accordiSoapDriver.isCorrelata(idAccordo, nomeAzione, owner);
  1023.     }

  1024.     /**
  1025.      * Controlla se l'azione e' usata come Azione correlata in qualche azione dell'accordo con id idAccordo
  1026.      * @param idPortType
  1027.      * @param nomeCorrelata
  1028.      * @return true se l'azione e' usata come Azione correlata in qualche azione dell'accordo con id idAccordo
  1029.      * @throws DriverRegistroServiziException
  1030.      */
  1031.     public boolean isOperationCorrelata(long idPortType,String nomeCorrelata,String owner) throws DriverRegistroServiziException {
  1032.         return this.accordiSoapDriver.isOperationCorrelata(idPortType, nomeCorrelata, owner);
  1033.     }

  1034.     public boolean isOperationCorrelataDaAltraAzione(String nomePortType,long idPortType,String azioneDaVerificare,long idAzioneDaVerificare) throws DriverRegistroServiziException {
  1035.         return this.accordiSoapDriver.isOperationCorrelataDaAltraAzione(nomePortType, idPortType, azioneDaVerificare, idAzioneDaVerificare);
  1036.     }
  1037.     public boolean isOperationCorrelataRichiesta(String nomePortType,long idPortType,String azioneDaVerificare,long idAzioneDaVerificare) throws DriverRegistroServiziException {
  1038.         return this.accordiSoapDriver.isOperationCorrelataRichiesta(nomePortType, idPortType, azioneDaVerificare, idAzioneDaVerificare);
  1039.     }
  1040.     public boolean isOperationCorrelata(String nomePortType,long idPortType,String azioneDaVerificare,long idAzioneDaVerificare) throws DriverRegistroServiziException {
  1041.         return this.accordiSoapDriver.isOperationCorrelata(nomePortType, idPortType, azioneDaVerificare, idAzioneDaVerificare);
  1042.     }
  1043.    
  1044.     public PortType getPortType(IDPortType idPT) throws DriverRegistroServiziException {
  1045.         return this.accordiSoapDriver.getPortType(idPT);
  1046.        
  1047.     }
  1048.     public PortType getPortType(long id) throws DriverRegistroServiziException {
  1049.         return this.accordiSoapDriver.getPortType(id);
  1050.     }

  1051.     public List<IDServizio> getIdServiziWithPortType(IDPortType idPT) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1052.         return this.accordiSoapDriver.getIdServiziWithPortType(idPT);
  1053.     }
  1054.    
  1055.     // Controlla che esista solo un'azione, direttamente negli accordi e tra i port type con tale nome
  1056.     public boolean isUnicaAzioneInAccordi(String azione) throws DriverRegistroServiziException {
  1057.         return this.accordiSoapDriver.isUnicaAzioneInAccordi(azione);
  1058.     }
  1059.    
  1060.     public List<PortType> accordiPorttypeCompatibiliList(long idAccordo,boolean isErogazione, ISearch ricerca) throws DriverRegistroServiziException {
  1061.         return this.accordiSoapDriver.accordiPorttypeCompatibiliList(idAccordo,isErogazione, ricerca);
  1062.     }

  1063.     /* Accordi di Servizio REST */
  1064.    
  1065.     public List<Resource> accordiResourceList(long idAccordo, ISearch ricerca) throws DriverRegistroServiziException {
  1066.         return this.accordiRestDriver.accordiResourceList(idAccordo, ricerca);
  1067.     }
  1068.    
  1069.     public List<ResourceResponse> accordiResourceResponseList(long idRisorsa, ISearch ricerca) throws DriverRegistroServiziException {
  1070.         return this.accordiRestDriver.accordiResourceResponseList(idRisorsa, ricerca);
  1071.     }
  1072.    
  1073.     public List<ResourceRepresentation> accordiResourceRepresentationsList(Long idRisorsa, boolean isRequest, Long idRisposta, ISearch ricerca)  throws DriverRegistroServiziException {
  1074.         return this.accordiRestDriver.accordiResourceRepresentationsList(idRisorsa, isRequest, idRisposta, ricerca);
  1075.     }
  1076.    
  1077.     public List<ResourceParameter> accordiResourceParametersList(Long idRisorsa, boolean isRequest, Long idRisposta, ISearch ricerca)  throws DriverRegistroServiziException {
  1078.         return this.accordiRestDriver.accordiResourceParametersList(idRisorsa, isRequest, idRisposta, ricerca);
  1079.     }

  1080.    
  1081.     /* Documenti*/
  1082.    
  1083.     public boolean existsDocumento(String nome, String tipo, String ruolo, long idProprietario, ProprietariDocumento proprietarioDocumento) throws DriverRegistroServiziException {
  1084.         return this.documentiDriver.existsDocumento(nome, tipo, ruolo, idProprietario, proprietarioDocumento);
  1085.     }

  1086.     public Documento getDocumento(String nome, String tipo, String ruolo, long idProprietario,boolean readBytes,ProprietariDocumento tipoProprietario) throws DriverRegistroServiziException, DriverRegistroServiziNotFound {
  1087.         return this.documentiDriver.getDocumento(nome, tipo, ruolo, idProprietario, readBytes, tipoProprietario);
  1088.     }

  1089.     public Documento getDocumento(long idDocumento,boolean readBytes) throws DriverRegistroServiziException {
  1090.         return this.documentiDriver.getDocumento(idDocumento,readBytes);
  1091.     }

  1092.     public List<Documento> serviziAllegatiList(long idServizio, ISearch ricerca) throws DriverRegistroServiziException {
  1093.         return this.documentiDriver.serviziAllegatiList(idServizio,ricerca);
  1094.     }

  1095.     @Override
  1096.     public Documento getAllegato(IDServizio idASPS, String nome)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  1097.         return this.documentiDriver.getAllegato(idASPS,nome);
  1098.     }
  1099.     @Override
  1100.     public Documento getSpecificaSemiformale(IDServizio idASPS, TipiDocumentoSemiformale tipo, String nome)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  1101.         return this.documentiDriver.getSpecificaSemiformale(idASPS,tipo,nome);
  1102.     }
  1103.     @Override
  1104.     public Documento getSpecificaSicurezza(IDServizio idASPS, TipiDocumentoSicurezza tipo, String nome)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  1105.         return this.documentiDriver.getSpecificaSicurezza(idASPS,tipo,nome);
  1106.     }
  1107.     @Override
  1108.     public Documento getSpecificaLivelloServizio(IDServizio idASPS, TipiDocumentoLivelloServizio tipo, String nome)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  1109.         return this.documentiDriver.getSpecificaLivelloServizio(idASPS,tipo,nome);
  1110.     }
  1111.    
  1112.     @Override
  1113.     public Documento getAllegato(IDAccordo idAccordo, String nome)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  1114.         return this.documentiDriver.getAllegato(idAccordo,nome);
  1115.     }
  1116.     @Override
  1117.     public Documento getSpecificaSemiformale(IDAccordo idAccordo, TipiDocumentoSemiformale tipo, String nome)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  1118.         return this.documentiDriver.getSpecificaSemiformale(idAccordo,tipo,nome);
  1119.     }
  1120.    
  1121.    
  1122.     /* Porte di Dominio */

  1123.     /**
  1124.      * Si occupa di ritornare l'oggetto {@link org.openspcoop2.core.registry.PortaDominio},
  1125.      * identificato grazie al parametro
  1126.      * <var>nomePdD</var>
  1127.      *
  1128.      * @param nomePdD Nome della Porta di Dominio
  1129.      * @return un oggetto di tipo {@link org.openspcoop2.core.registry.PortaDominio}.
  1130.      *
  1131.      */
  1132.     @Override
  1133.     public org.openspcoop2.core.registry.PortaDominio getPortaDominio(String nomePdD) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  1134.         return this.pddDriver.getPortaDominio(nomePdD);
  1135.     }

  1136.     /**
  1137.      * Ritorna gli identificatori delle PdD che rispettano il parametro di ricerca
  1138.      *
  1139.      * @param filtroRicerca
  1140.      * @return Una lista di ID degli accordi trovati
  1141.      * @throws DriverRegistroServiziException
  1142.      * @throws DriverRegistroServiziNotFound
  1143.      */
  1144.     @Override
  1145.     public List<String> getAllIdPorteDominio(FiltroRicerca filtroRicerca) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  1146.         return this.pddDriver.getAllIdPorteDominio(filtroRicerca);
  1147.     }

  1148.     /**
  1149.      * Crea una nuova Porta di Dominio
  1150.      *
  1151.      * @param pdd
  1152.      * @throws DriverRegistroServiziException
  1153.      */
  1154.     @Override
  1155.     public void createPortaDominio(PortaDominio pdd) throws DriverRegistroServiziException{
  1156.         this.pddDriver.createPortaDominio(pdd);
  1157.     }

  1158.     /**
  1159.      * Verifica l'esistenza di una Porta di Dominio.
  1160.      *
  1161.      * @param nome della porta di dominio da verificare
  1162.      * @return true se la porta di dominio esiste, false altrimenti
  1163.      * @throws DriverRegistroServiziException
  1164.      */    
  1165.     @Override
  1166.     public boolean existsPortaDominio(String nome) throws DriverRegistroServiziException{
  1167.         return this.pddDriver.existsPortaDominio(nome);
  1168.     }

  1169.     /**
  1170.      * Aggiorna la Porta di Dominio con i nuovi valori.
  1171.      *  
  1172.      * @param pdd
  1173.      * @throws DriverRegistroServiziException
  1174.      */
  1175.     @Override
  1176.     public void updatePortaDominio(PortaDominio pdd) throws DriverRegistroServiziException{
  1177.         this.pddDriver.updatePortaDominio(pdd);
  1178.     }  

  1179.     /**
  1180.      * Aggiorna la Porta di Dominio con i nuovi valori.
  1181.      *  
  1182.      * @param nomePdd
  1183.      * @param tipo
  1184.      * @throws DriverRegistroServiziException
  1185.      */
  1186.     public void updateTipoPortaDominio(String nomePdd,String tipo) throws DriverRegistroServiziException{
  1187.         this.pddDriver.updateTipoPortaDominio(nomePdd, tipo);
  1188.     }  
  1189.    
  1190.     public String getTipoPortaDominio(String nome) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
  1191.         return this.pddDriver.getTipoPortaDominio(nome);
  1192.     }

  1193.     /**
  1194.      * Elimina una Porta di Dominio
  1195.      *  
  1196.      * @param pdd
  1197.      * @throws DriverRegistroServiziException
  1198.      */
  1199.     @Override
  1200.     public void deletePortaDominio(PortaDominio pdd) throws DriverRegistroServiziException{
  1201.         this.pddDriver.deletePortaDominio(pdd);
  1202.     }
  1203.    
  1204.     /**
  1205.      * Ritorna la lista di Porte di Dominio
  1206.      * Tiene conto dei criteri di ricerca Settati
  1207.      * @param ricerca
  1208.      * @return la lista degli accordi di servizio che soddisfa la ricerca
  1209.      */
  1210.     public List<PortaDominio> porteDominioList(String superuser, ISearch ricerca) throws DriverRegistroServiziException{
  1211.         return this.pddDriver.porteDominioList(superuser, ricerca);
  1212.     }
  1213.     public List<PortaDominio> porteDominioList(String superuser,String tipo, ISearch ricerca) throws DriverRegistroServiziException{
  1214.         return this.pddDriver.porteDominioList(superuser, tipo, ricerca);
  1215.     }

  1216.     public boolean isPddInUso(PortaDominio pdd, List<String> whereIsInUso)
  1217.             throws DriverRegistroServiziException {
  1218.         return this.pddDriver.isPddInUso(pdd, whereIsInUso);
  1219.     }

  1220.     public List<Soggetto> pddSoggettiList(long idPdd, ISearch ricerca) throws DriverRegistroServiziException {
  1221.         return this.pddDriver.pddSoggettiList(idPdd, ricerca);
  1222.     }
  1223.    
  1224.     public List<PortaDominio> porteDominioWithSubject(String subject)throws DriverRegistroServiziException {
  1225.         return this.pddDriver.porteDominioWithSubject(subject);
  1226.     }
  1227.    
  1228.    
  1229.    
  1230.     /* Gruppi */

  1231.     /**
  1232.      * Si occupa di ritornare l'oggetto {@link org.openspcoop2.core.registry.Gruppo},
  1233.      * identificato grazie al parametro
  1234.      * <var>nome</var>
  1235.      *
  1236.      * @param idGruppo Identificativo del gruppo
  1237.      * @return un oggetto di tipo {@link org.openspcoop2.core.registry.Gruppo}.
  1238.      *
  1239.      */
  1240.     @Override
  1241.     public Gruppo getGruppo(IDGruppo idGruppo) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
  1242.         return this.gruppiDriver.getGruppo(idGruppo);
  1243.     }

  1244.     public Gruppo getGruppo(long idGruppo) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
  1245.         return this.gruppiDriver.getGruppo(idGruppo);
  1246.     }

  1247.     /**
  1248.      * Ritorna gli identificatori dei Gruppi che rispettano il parametro di ricerca
  1249.      *
  1250.      * @param filtroRicerca
  1251.      * @return Una lista di ID dei gruppi trovati
  1252.      * @throws DriverRegistroServiziException
  1253.      * @throws DriverRegistroServiziNotFound
  1254.      */
  1255.     @Override
  1256.     public List<IDGruppo> getAllIdGruppi(FiltroRicercaGruppi filtroRicerca) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
  1257.         return this.gruppiDriver.getAllIdGruppi(filtroRicerca);
  1258.     }

  1259.     /**
  1260.      * Crea una nuovo Gruppo
  1261.      *
  1262.      * @param gruppo
  1263.      * @throws DriverRegistroServiziException
  1264.      */
  1265.     @Override
  1266.     public void createGruppo(Gruppo gruppo) throws DriverRegistroServiziException{
  1267.         this.gruppiDriver.createGruppo(gruppo);
  1268.     }

  1269.     /**
  1270.      * Verifica l'esistenza di un Gruppo
  1271.      *
  1272.      * @param idGruppo idGruppo del gruppo da verificare
  1273.      * @return true se il gruppo esiste, false altrimenti
  1274.      * @throws DriverRegistroServiziException
  1275.      */    
  1276.     @Override
  1277.     public boolean existsGruppo(IDGruppo idGruppo) throws DriverRegistroServiziException{
  1278.         return this.gruppiDriver.existsGruppo(idGruppo);
  1279.     }

  1280.     /**
  1281.      * Aggiorna il Gruppo con i nuovi valori.
  1282.      *  
  1283.      * @param gruppo
  1284.      * @throws DriverRegistroServiziException
  1285.      */
  1286.     @Override
  1287.     public void updateGruppo(Gruppo gruppo) throws DriverRegistroServiziException{
  1288.         this.gruppiDriver.updateGruppo(gruppo);
  1289.     }  

  1290.     /**
  1291.      * Elimina un Gruppo
  1292.      *  
  1293.      * @param gruppo
  1294.      * @throws DriverRegistroServiziException
  1295.      */
  1296.     @Override
  1297.     public void deleteGruppo(Gruppo gruppo) throws DriverRegistroServiziException{
  1298.         this.gruppiDriver.deleteGruppo(gruppo);
  1299.     }
  1300.    
  1301.     public List<Gruppo> gruppiList(String superuser, ISearch ricerca) throws DriverRegistroServiziException {
  1302.         return this.gruppiDriver.gruppiList(superuser, ricerca);
  1303.     }
  1304.    
  1305.    
  1306.     /* Ruoli */

  1307.     /**
  1308.      * Si occupa di ritornare l'oggetto {@link org.openspcoop2.core.registry.Ruolo},
  1309.      * identificato grazie al parametro
  1310.      * <var>nome</var>
  1311.      *
  1312.      * @param idRuolo Identificativo del ruolo
  1313.      * @return un oggetto di tipo {@link org.openspcoop2.core.registry.Ruolo}.
  1314.      *
  1315.      */
  1316.     @Override
  1317.     public Ruolo getRuolo(IDRuolo idRuolo) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
  1318.         return this.ruoliDriver.getRuolo(idRuolo);
  1319.     }
  1320.     public Ruolo getRuolo(Connection conParam, IDRuolo idRuolo) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
  1321.         return this.ruoliDriver.getRuolo(conParam, idRuolo);
  1322.     }

  1323.     public Ruolo getRuolo(long idRuolo) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
  1324.         return this.ruoliDriver.getRuolo(idRuolo);
  1325.     }
  1326.     public Ruolo getRuolo(Connection conParam, long idRuolo) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
  1327.         return this.ruoliDriver.getRuolo(conParam, idRuolo);
  1328.     }

  1329.     /**
  1330.      * Ritorna gli identificatori dei Ruoli che rispettano il parametro di ricerca
  1331.      *
  1332.      * @param filtroRicerca
  1333.      * @return Una lista di ID dei ruoli trovati
  1334.      * @throws DriverRegistroServiziException
  1335.      * @throws DriverRegistroServiziNotFound
  1336.      */
  1337.     @Override
  1338.     public List<IDRuolo> getAllIdRuoli(FiltroRicercaRuoli filtroRicerca) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
  1339.         return this.ruoliDriver.getAllIdRuoli(filtroRicerca);
  1340.     }

  1341.     /**
  1342.      * Crea una nuovo Ruolo
  1343.      *
  1344.      * @param ruolo
  1345.      * @throws DriverRegistroServiziException
  1346.      */
  1347.     @Override
  1348.     public void createRuolo(Ruolo ruolo) throws DriverRegistroServiziException{
  1349.         this.ruoliDriver.createRuolo(ruolo);
  1350.     }

  1351.     /**
  1352.      * Verifica l'esistenza di un Ruolo
  1353.      *
  1354.      * @param idRuolo idRuolo del ruolo da verificare
  1355.      * @return true se il ruolo esiste, false altrimenti
  1356.      * @throws DriverRegistroServiziException
  1357.      */    
  1358.     @Override
  1359.     public boolean existsRuolo(IDRuolo idRuolo) throws DriverRegistroServiziException{
  1360.         return this.ruoliDriver.existsRuolo(idRuolo);
  1361.     }

  1362.     /**
  1363.      * Aggiorna il Ruolo con i nuovi valori.
  1364.      *  
  1365.      * @param ruolo
  1366.      * @throws DriverRegistroServiziException
  1367.      */
  1368.     @Override
  1369.     public void updateRuolo(Ruolo ruolo) throws DriverRegistroServiziException{
  1370.         this.ruoliDriver.updateRuolo(ruolo);
  1371.     }  

  1372.     /**
  1373.      * Elimina un Ruolo
  1374.      *  
  1375.      * @param ruolo
  1376.      * @throws DriverRegistroServiziException
  1377.      */
  1378.     @Override
  1379.     public void deleteRuolo(Ruolo ruolo) throws DriverRegistroServiziException{
  1380.         this.ruoliDriver.deleteRuolo(ruolo);
  1381.     }
  1382.    
  1383.     public List<Ruolo> ruoliList(String superuser, ISearch ricerca) throws DriverRegistroServiziException {
  1384.         return this.ruoliDriver.ruoliList(superuser, ricerca);
  1385.     }
  1386.    
  1387.    
  1388.    
  1389.     /* Scope */

  1390.     /**
  1391.      * Si occupa di ritornare l'oggetto {@link org.openspcoop2.core.registry.Scope},
  1392.      * identificato grazie al parametro
  1393.      * <var>nome</var>
  1394.      *
  1395.      * @param idScope Identificativo del scope
  1396.      * @return un oggetto di tipo {@link org.openspcoop2.core.registry.Scope}.
  1397.      *
  1398.      */
  1399.     @Override
  1400.     public Scope getScope(IDScope idScope) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
  1401.         return this.scopeDriver.getScope(idScope);
  1402.     }

  1403.     public Scope getScope(long idScope) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
  1404.         return this.scopeDriver.getScope(idScope);
  1405.     }

  1406.     /**
  1407.      * Ritorna gli identificatori dei Scope che rispettano il parametro di ricerca
  1408.      *
  1409.      * @param filtroRicerca
  1410.      * @return Una lista di ID dei scope trovati
  1411.      * @throws DriverRegistroServiziException
  1412.      * @throws DriverRegistroServiziNotFound
  1413.      */
  1414.     @Override
  1415.     public List<IDScope> getAllIdScope(FiltroRicercaScope filtroRicerca) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
  1416.         return this.scopeDriver.getAllIdScope(filtroRicerca);
  1417.     }

  1418.     /**
  1419.      * Crea una nuovo Scope
  1420.      *
  1421.      * @param scope
  1422.      * @throws DriverRegistroServiziException
  1423.      */
  1424.     @Override
  1425.     public void createScope(Scope scope) throws DriverRegistroServiziException{
  1426.         this.scopeDriver.createScope(scope);
  1427.     }

  1428.     /**
  1429.      * Verifica l'esistenza di un Scope
  1430.      *
  1431.      * @param idScope idScope del scope da verificare
  1432.      * @return true se il scope esiste, false altrimenti
  1433.      * @throws DriverRegistroServiziException
  1434.      */    
  1435.     @Override
  1436.     public boolean existsScope(IDScope idScope) throws DriverRegistroServiziException{
  1437.         return this.scopeDriver.existsScope(idScope);
  1438.     }

  1439.     /**
  1440.      * Aggiorna il Scope con i nuovi valori.
  1441.      *  
  1442.      * @param scope
  1443.      * @throws DriverRegistroServiziException
  1444.      */
  1445.     @Override
  1446.     public void updateScope(Scope scope) throws DriverRegistroServiziException{
  1447.         this.scopeDriver.updateScope(scope);
  1448.     }  

  1449.     /**
  1450.      * Elimina un Scope
  1451.      *  
  1452.      * @param scope
  1453.      * @throws DriverRegistroServiziException
  1454.      */
  1455.     @Override
  1456.     public void deleteScope(Scope scope) throws DriverRegistroServiziException{
  1457.         this.scopeDriver.deleteScope(scope);
  1458.     }
  1459.    
  1460.     public List<Scope> scopeList(String superuser, ISearch ricerca) throws DriverRegistroServiziException {
  1461.         return this.scopeDriver.scopeList(superuser, ricerca);
  1462.     }
  1463.    
  1464.    
  1465.     /* Soggetti */

  1466.     /**
  1467.      * Si occupa di ritornare l'oggetto
  1468.      * {@link org.openspcoop2.core.registry.Soggetto}, identificato grazie
  1469.      * al parametro <var>idSoggetto</var> di tipo
  1470.      * {@link org.openspcoop2.core.id.IDSoggetto}.
  1471.      *
  1472.      * @param idSoggetto
  1473.      *                Identificatore del Soggetto di tipo
  1474.      *                {@link org.openspcoop2.core.id.IDSoggetto}.
  1475.      * @return l'oggetto di tipo
  1476.      *         {@link org.openspcoop2.core.registry.Soggetto} se la ricerca
  1477.      *         nel registro ha successo, null altrimenti.
  1478.      *
  1479.      */
  1480.     @Override
  1481.     public org.openspcoop2.core.registry.Soggetto getSoggetto(IDSoggetto idSoggetto) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1482.         return this.soggettiDriver.getSoggetto(idSoggetto);
  1483.     }

  1484.     public Soggetto getSoggetto(long idSoggetto) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1485.         return this.soggettiDriver.getSoggetto(idSoggetto);
  1486.     }
  1487.     public Soggetto getSoggetto(long idSoggetto,Connection conParam) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1488.         return this.soggettiDriver.getSoggetto(idSoggetto, conParam);
  1489.     }
  1490.    
  1491.     public Soggetto soggettoWithCredenzialiBasic(String utente, String password, boolean checkPassword) throws DriverRegistroServiziException {
  1492.         return this.soggettiCredenzialiDriver.soggettoWithCredenzialiBasic(utente, password, checkPassword);
  1493.     }
  1494.    
  1495.     public Soggetto soggettoWithCredenzialiApiKey(String utente, boolean appId) throws DriverRegistroServiziException {
  1496.         return this.soggettiCredenzialiDriver.soggettoWithCredenzialiApiKey(utente, appId);
  1497.     }
  1498.    
  1499.     @Override
  1500.     public Soggetto getSoggettoByCredenzialiBasic(String user,String password, CryptConfig config) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
  1501.         return this.soggettiCredenzialiDriver.getSoggettoByCredenzialiBasic(user, password, config);
  1502.     }
  1503.    
  1504.     @Override
  1505.     public Soggetto getSoggettoByCredenzialiApiKey(String user,String password, boolean appId, CryptConfig config) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
  1506.         return this.soggettiCredenzialiDriver.getSoggettoByCredenzialiApiKey(user, password, appId, config);
  1507.     }
  1508.    
  1509.     @Override
  1510.     public Soggetto getSoggettoByCredenzialiSsl(String subject, String issuer) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
  1511.         return this.soggettiCredenzialiDriver.getSoggettoByCredenzialiSsl(subject, issuer);
  1512.     }
  1513.    
  1514.     @Override
  1515.     public Soggetto getSoggettoByCredenzialiSsl(CertificateInfo certificate, boolean strictVerifier) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  1516.         return this.soggettiCredenzialiDriver.getSoggettoByCredenzialiSsl(certificate, strictVerifier);
  1517.     }
  1518.    
  1519.     @Override
  1520.     public Soggetto getSoggettoByCredenzialiPrincipal(String principal) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
  1521.         return this.soggettiCredenzialiDriver.getSoggettoByCredenzialiPrincipal(principal);
  1522.     }
  1523.        
  1524.     public List<Soggetto> soggettoWithCredenzialiSslList(CertificateInfo certificate, boolean strictVerifier) throws DriverRegistroServiziException {
  1525.         return this.soggettiCredenzialiDriver.soggettoWithCredenzialiSslList(certificate, strictVerifier);
  1526.     }
  1527.    
  1528.     /***
  1529.      * Restituisce tutti i soggetti con i tipi indicati che utilizzano le credenziali indicate
  1530.      *
  1531.      * @param tipiSoggetto
  1532.      * @param superuser
  1533.      * @param credenziale
  1534.      * @return tutti i soggetti con i tipi indicati che utilizzano le credenziali indicate
  1535.      */
  1536.     public List<IDSoggettoDB> getSoggettiFromTipoAutenticazione(List<String> tipiSoggetto, String superuser, CredenzialeTipo credenziale, Boolean appId, PddTipologia pddTipologia) throws DriverRegistroServiziException {
  1537.         return this.soggettiCredenzialiDriver.getSoggettiFromTipoAutenticazione(tipiSoggetto, superuser, credenziale, appId, pddTipologia);
  1538.     }
  1539.    
  1540.     /**
  1541.      *  Ritorna gli identificatori dei soggetti che rispettano il parametro di ricerca
  1542.      *
  1543.      * @param filtroRicerca
  1544.      * @return Una lista di ID dei soggetti trovati
  1545.      * @throws DriverRegistroServiziException
  1546.      * @throws DriverRegistroServiziNotFound
  1547.      */
  1548.     @Override
  1549.     public List<IDSoggetto> getAllIdSoggetti(FiltroRicercaSoggetti filtroRicerca) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  1550.         return this.soggettiDriver.getAllIdSoggetti(filtroRicerca);
  1551.     }

  1552.     /**
  1553.      * Crea un nuovo Soggetto
  1554.      *
  1555.      * @param soggetto
  1556.      * @throws DriverRegistroServiziException
  1557.      */
  1558.     @Override
  1559.     public void createSoggetto(org.openspcoop2.core.registry.Soggetto soggetto) throws DriverRegistroServiziException {
  1560.         this.soggettiDriver.createSoggetto(soggetto);
  1561.     }

  1562.     /**
  1563.      * Verifica l'esistenza di un soggetto registrato.
  1564.      *
  1565.      * @param idSoggetto
  1566.      *                Identificativo del soggetto
  1567.      * @return true se il soggetto esiste, false altrimenti
  1568.      */
  1569.     @Override
  1570.     public boolean existsSoggetto(IDSoggetto idSoggetto) throws DriverRegistroServiziException {
  1571.         return this.soggettiDriver.existsSoggetto(idSoggetto);
  1572.     }
  1573.     public boolean existsSoggetto(Connection conParam, IDSoggetto idSoggetto) throws DriverRegistroServiziException {
  1574.         return this.soggettiDriver.existsSoggetto(conParam, idSoggetto);
  1575.     }

  1576.     public boolean existsSoggetto(long idSoggetto) throws DriverRegistroServiziException {
  1577.         return this.soggettiDriver.existsSoggetto(idSoggetto);
  1578.     }

  1579.     public boolean existsSoggetto(String codiceIPA) throws DriverRegistroServiziException {
  1580.         return this.soggettiDriver.existsSoggetto(codiceIPA);
  1581.     }

  1582.     public Soggetto getSoggetto(String codiceIPA) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1583.         return this.soggettiDriver.getSoggetto(codiceIPA);
  1584.     }

  1585.     public String getCodiceIPA(IDSoggetto idSoggetto) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1586.         return this.soggettiDriver.getCodiceIPA(idSoggetto);
  1587.     }

  1588.     /**
  1589.      * Aggiorna un Soggetto e il Connettore con i nuovi dati passati
  1590.      *
  1591.      * @param soggetto
  1592.      * @throws DriverRegistroServiziException
  1593.      */
  1594.     @Override
  1595.     public void updateSoggetto(org.openspcoop2.core.registry.Soggetto soggetto) throws DriverRegistroServiziException {
  1596.         this.soggettiDriver.updateSoggetto(soggetto);
  1597.     }

  1598.     /**
  1599.      * Cancella un Soggetto e il Connettore
  1600.      *
  1601.      * @param soggetto
  1602.      * @throws DriverRegistroServiziException
  1603.      */
  1604.     @Override
  1605.     public void deleteSoggetto(org.openspcoop2.core.registry.Soggetto soggetto) throws DriverRegistroServiziException {
  1606.         this.soggettiDriver.deleteSoggetto(soggetto);
  1607.     }

  1608.     public IDSoggetto[] getSoggettiWithSuperuser(String user) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1609.         return this.soggettiDriver.getSoggettiWithSuperuser(user);
  1610.     }

  1611.     public List<String> soggettiRuoliList(long idSoggetto, ISearch ricerca) throws DriverRegistroServiziException {
  1612.         return this.soggettiSearchDriver.soggettiRuoliList(idSoggetto, ricerca);
  1613.     }
  1614.    
  1615.     public List<Proprieta> soggettiProprietaList(long idSoggetto, ISearch ricerca) throws DriverRegistroServiziException {
  1616.         return this.soggettiSearchDriver.soggettiProprietaList(idSoggetto, ricerca);
  1617.     }
  1618.    
  1619.     /**
  1620.      * Ritorna la lista di nomi delle proprieta registrate
  1621.      */
  1622.     public List<String> nomiProprietaSoggetti(List<String> tipoSoggettiProtocollo) throws DriverConfigurazioneException {
  1623.         return this.soggettiDriver.nomiProprietaSoggetti(tipoSoggettiProtocollo);
  1624.     }
  1625.    
  1626.     /**
  1627.      * Controlla se il soggetto e' in uso
  1628.      */
  1629.     public boolean isSoggettoInUsoInPackageFinali(Soggetto ss, Map<ErrorsHandlerCostant,String> whereIsInUso) throws DriverRegistroServiziException {
  1630.         return this.soggettiDriver.isSoggettoInUsoInPackageFinali(ss,whereIsInUso);
  1631.     }
  1632.     public boolean isSoggettoInUsoInPackagePubblici(Soggetto ss, Map<ErrorsHandlerCostant,String> whereIsInUso) throws DriverRegistroServiziException {
  1633.         return this.soggettiDriver.isSoggettoInUsoInPackagePubblici(ss,whereIsInUso);
  1634.     }
  1635.     public boolean isSoggettoInUso(Soggetto ss, Map<ErrorsHandlerCostant,String> whereIsInUso) throws DriverRegistroServiziException {
  1636.         return this.soggettiDriver.isSoggettoInUso(ss,whereIsInUso);
  1637.     }
  1638.    
  1639.     public List<Soggetto> soggettiRegistroListByTipo(String tipoSoggetto,ISearch ricerca) throws DriverRegistroServiziException{
  1640.         return this.soggettiSearchDriver.soggettiRegistroListByTipo(tipoSoggetto, ricerca);
  1641.     }

  1642.     public List<Soggetto> soggettiRegistroList(String superuser, ISearch ricerca) throws DriverRegistroServiziException {
  1643.         return this.soggettiSearchDriver.soggettiRegistroList(superuser, ricerca);
  1644.     }
  1645.    
  1646.     public List<IDSoggetto> idSoggettiRegistroListByTipo(String tipoSoggetto,ISearch ricerca) throws DriverRegistroServiziException{
  1647.         return this.soggettiSearchDriver.idSoggettiRegistroListByTipo(tipoSoggetto, ricerca);
  1648.     }

  1649.     public List<IDSoggetto> idSoggettiRegistroList(String superuser, ISearch ricerca) throws DriverRegistroServiziException {
  1650.         return this.soggettiSearchDriver.idSoggettiRegistroList(superuser, ricerca);
  1651.     }
  1652.    
  1653.     public IDSoggetto getIdSoggetto(long idSoggetto) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1654.         return this.soggettiDriver.getIdSoggetto(idSoggetto);
  1655.     }
  1656.     public IDSoggetto getIdSoggetto(long idSoggetto,Connection conParam) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1657.         return this.soggettiDriver.getIdSoggetto(idSoggetto, conParam);
  1658.     }
  1659.    
  1660.     public List<IDSoggetto> getSoggettiDefault() throws DriverRegistroServiziException {
  1661.         return this.soggettiDriver.getSoggettiDefault();
  1662.     }
  1663.     public List<IDSoggetto> getSoggettiDefault(Connection conParam) throws DriverRegistroServiziException {
  1664.         return this.soggettiDriver.getSoggettiDefault(conParam);
  1665.     }
  1666.    
  1667.    
  1668.     /* Accordi Servizio Parte Specifica */
  1669.    
  1670.     @Override
  1671.     public AccordoServizioParteSpecifica getAccordoServizioParteSpecifica(IDServizio idServizio) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1672.         return this.accordiParteSpecificaDriver.getAccordoServizioParteSpecifica(idServizio);
  1673.     }
  1674.     public AccordoServizioParteSpecifica getAccordoServizioParteSpecifica(IDServizio idServizio,Connection con) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1675.         return this.accordiParteSpecificaDriver.getAccordoServizioParteSpecifica(idServizio, con);
  1676.     }
  1677.     public AccordoServizioParteSpecifica getAccordoServizioParteSpecifica(IDServizio idServizio,boolean readContenutoAllegati) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1678.         return this.accordiParteSpecificaDriver.getAccordoServizioParteSpecifica(idServizio, readContenutoAllegati);
  1679.     }
  1680.     public AccordoServizioParteSpecifica getAccordoServizioParteSpecifica(IDServizio idServizio,boolean readContenutoAllegati,Connection con) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1681.         return this.accordiParteSpecificaDriver.getAccordoServizioParteSpecifica(idServizio, readContenutoAllegati, con);
  1682.     }

  1683.     @Override
  1684.     public AccordoServizioParteSpecifica getAccordoServizioParteSpecifica_ServizioCorrelato(IDSoggetto idSoggetto,IDAccordo idAccordoServizioParteComune) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1685.         return this.accordiParteSpecificaDriver.getAccordoServizioParteSpecifica_ServizioCorrelato(idSoggetto, idAccordoServizioParteComune);
  1686.     }
  1687.     public AccordoServizioParteSpecifica getAccordoServizioParteSpecifica_ServizioCorrelato(IDSoggetto idSoggetto,IDAccordo idAccordoServizioParteComune,Connection con) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1688.         return this.accordiParteSpecificaDriver.getAccordoServizioParteSpecifica_ServizioCorrelato(idSoggetto, idAccordoServizioParteComune, con);
  1689.     }
  1690.     public AccordoServizioParteSpecifica getAccordoServizioParteSpecifica_ServizioCorrelato(IDSoggetto idSoggetto,IDAccordo idAccordoServizioParteComune,boolean readContenutoAllegati) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1691.         return this.accordiParteSpecificaDriver.getAccordoServizioParteSpecifica_ServizioCorrelato(idSoggetto, idAccordoServizioParteComune, readContenutoAllegati);
  1692.     }
  1693.     public AccordoServizioParteSpecifica getAccordoServizioParteSpecifica_ServizioCorrelato(IDSoggetto idSoggetto,IDAccordo idAccordoServizioParteComune,boolean readContenutoAllegati,Connection con) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1694.         return this.accordiParteSpecificaDriver.getAccordoServizioParteSpecifica_ServizioCorrelato(idSoggetto, idAccordoServizioParteComune, readContenutoAllegati, con);
  1695.     }

  1696.     @Override
  1697.     public List<IDServizio> getAllIdServizi(FiltroRicercaServizi filtroRicerca) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
  1698.         return this.accordiParteSpecificaDriver.getAllIdServizi(filtroRicerca);
  1699.     }
  1700.    
  1701.     @Override
  1702.     public List<IDFruizione> getAllIdFruizioniServizio(FiltroRicercaFruizioniServizio filtroRicerca) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
  1703.         return this.accordiParteSpecificaDriver.getAllIdFruizioniServizio(filtroRicerca);
  1704.     }

  1705.     /**
  1706.      *  Ritorna gli identificatori dei servizi del soggetto dato
  1707.      *
  1708.      * @param idSoggetto
  1709.      * @return identificatori dei servizi del soggetto dato
  1710.      * @throws DriverRegistroServiziException
  1711.      * @throws DriverRegistroServiziNotFound
  1712.      */
  1713.     public IDServizio[] getAllIdServiziWithSoggettoErogatore(Long idSoggetto) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
  1714.         return this.accordiParteSpecificaDriver.getAllIdServiziWithSoggettoErogatore(idSoggetto);
  1715.     }

  1716.     @Override
  1717.     public void createAccordoServizioParteSpecifica(AccordoServizioParteSpecifica accordoServizioParteSpecifica) throws DriverRegistroServiziException {
  1718.         this.accordiParteSpecificaDriver.createAccordoServizioParteSpecifica(accordoServizioParteSpecifica);
  1719.     }

  1720.     /**
  1721.      * Verifica l'esistenza di un servizio registrato.
  1722.      *
  1723.      * @param idServizio
  1724.      *                Identificativo del servizio
  1725.      * @return true se il servizio esiste, false altrimenti
  1726.      */
  1727.     @Override
  1728.     public boolean existsAccordoServizioParteSpecifica(IDServizio idServizio) throws DriverRegistroServiziException {
  1729.         return this.accordiParteSpecificaDriver.existsAccordoServizioParteSpecifica(idServizio);
  1730.     }

  1731.     public boolean existsAccordoServizioParteSpecifica(long idServizio) throws DriverRegistroServiziException {
  1732.         return this.accordiParteSpecificaDriver.existsAccordoServizioParteSpecifica(idServizio);
  1733.     }

  1734.     /**
  1735.      * Verifica l'esistenza di un servizio con un certo soggetto
  1736.      * accordo e servizio correlato
  1737.      */
  1738.     public long getServizioWithSoggettoAccordoServCorr(long idSoggetto, long idAccordo, String servizioCorrelato) throws DriverRegistroServiziException {
  1739.         return this.accordiParteSpecificaDriver.getServizioWithSoggettoAccordoServCorr(idSoggetto, idAccordo, servizioCorrelato);
  1740.     }

  1741.     /**
  1742.      * Verifica l'esistenza di un servizio con un certo soggetto,
  1743.      * accordo e servizio correlato
  1744.      */
  1745.     public long getServizioWithSoggettoAccordoServCorrPt(long idSoggetto, long idAccordo, String servizioCorrelato,String portType) throws DriverRegistroServiziException {
  1746.         return this.accordiParteSpecificaDriver.getServizioWithSoggettoAccordoServCorrPt(idSoggetto, idAccordo, servizioCorrelato, portType);
  1747.     }

  1748.     /**
  1749.      * Verifica l'esistenza di un fruitore con un certo soggetto,
  1750.      * ed un certo servizio
  1751.      */
  1752.     public long getServizioFruitore(IDServizio idServizio, long idSogg) throws DriverRegistroServiziException {
  1753.         return this.accordiParteSpecificaFruitoreDriver.getServizioFruitore(idServizio, idSogg);
  1754.     }

  1755.     /**
  1756.      * Ritorna l'id del soggetto fruitore di un servizio fruitore
  1757.      *
  1758.      * @param idServizioFruitore
  1759.      *                del servizio fruitore
  1760.      * @return l'id del soggetto fruitore
  1761.      */
  1762.     public long getServizioFruitoreSoggettoFruitoreID(long idServizioFruitore) throws DriverRegistroServiziException {
  1763.         return this.accordiParteSpecificaFruitoreDriver.getServizioFruitoreSoggettoFruitoreID(idServizioFruitore);
  1764.     }

  1765.     /**
  1766.      * Ritorna l'id del servizio di un servizio fruitore
  1767.      *
  1768.      * @param idServizioFruitore
  1769.      *                del servizio fruitore
  1770.      * @return l'id del servizio
  1771.      */
  1772.     public long getServizioFruitoreServizioID(long idServizioFruitore) throws DriverRegistroServiziException {
  1773.         return this.accordiParteSpecificaFruitoreDriver.getServizioFruitoreServizioID(idServizioFruitore);
  1774.     }

  1775.     @Override
  1776.     public void updateAccordoServizioParteSpecifica(AccordoServizioParteSpecifica servizio) throws DriverRegistroServiziException {
  1777.         this.accordiParteSpecificaDriver.updateAccordoServizioParteSpecifica(servizio);
  1778.     }

  1779.     @Override
  1780.     public void deleteAccordoServizioParteSpecifica(AccordoServizioParteSpecifica servizio) throws DriverRegistroServiziException {
  1781.         this.accordiParteSpecificaDriver.deleteAccordoServizioParteSpecifica(servizio);
  1782.     }

  1783.     /**
  1784.      * Dato un soggetto, verifica che i suoi servizi non abbiano
  1785.      * il connettore disabilitato
  1786.      *
  1787.      * @param idSoggetto
  1788.      *                Identificativo del soggetto
  1789.      * @return true se esistono servizi senza connettore, false altrimenti
  1790.      */
  1791.     public boolean existsSoggettoServiziWithoutConnettore(long idSoggetto) throws DriverRegistroServiziException {
  1792.         return this.accordiParteSpecificaDriver.existsSoggettoServiziWithoutConnettore(idSoggetto);
  1793.     }
  1794.    
  1795.     public boolean existFruizioniServiziSoggettoWithoutConnettore(long idSoggetto, boolean escludiSoggettiEsterni) throws DriverRegistroServiziException {
  1796.         return this.accordiParteSpecificaFruitoreDriver.existFruizioniServiziSoggettoWithoutConnettore(idSoggetto, escludiSoggettiEsterni);
  1797.     }

  1798.     public boolean existFruizioniServizioWithoutConnettore(long idServizio, boolean escludiSoggettiEsterni) throws DriverRegistroServiziException {
  1799.         return this.accordiParteSpecificaFruitoreDriver.existFruizioniServizioWithoutConnettore(idServizio, escludiSoggettiEsterni);
  1800.     }
  1801.    
  1802.     public List<AccordoServizioParteSpecifica> serviziList(String superuser,ISearch ricerca) throws DriverRegistroServiziException {
  1803.         return this.accordiParteSpecificaSearchDriver.serviziList(superuser, ricerca);
  1804.     }

  1805.     public List<AccordoServizioParteSpecifica> servizioWithSoggettoFruitore(IDSoggetto idSoggetto) throws DriverRegistroServiziException {
  1806.         return this.accordiParteSpecificaFruitoreDriver.servizioWithSoggettoFruitore(idSoggetto);
  1807.     }
  1808.    
  1809.     public List<Soggetto> accordiErogatoriList(long idAccordo, ISearch ricerca) throws DriverRegistroServiziException {
  1810.         return this.accordiParteSpecificaSearchDriver.accordiErogatoriList(idAccordo, ricerca);
  1811.     }

  1812.     public Fruitore getAccordoErogatoreFruitore(long id) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1813.         return this.accordiParteSpecificaFruitoreDriver.getAccordoErogatoreFruitore(id);
  1814.     }

  1815.     public Fruitore getErogatoreFruitore(long id) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1816.         return this.accordiParteSpecificaFruitoreDriver.getErogatoreFruitore(id);
  1817.     }
  1818.    
  1819.     public Fruitore getServizioFruitore(long idServFru) throws DriverRegistroServiziException {
  1820.         return this.accordiParteSpecificaFruitoreDriver.getServizioFruitore(idServFru);
  1821.     }
  1822.    
  1823.     public AccordoServizioParteSpecifica getAccordoServizioParteSpecifica(long idServizio) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1824.         return this.accordiParteSpecificaDriver.getAccordoServizioParteSpecifica(idServizio);
  1825.     }
  1826.     public AccordoServizioParteSpecifica getAccordoServizioParteSpecifica(long idServizio,boolean readContenutoAllegati) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1827.         return this.accordiParteSpecificaDriver.getAccordoServizioParteSpecifica(idServizio,readContenutoAllegati);
  1828.     }

  1829.     public AccordoServizioParteSpecifica getAccordoServizioParteSpecifica(long idServizio,Connection conParam) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1830.         return this.accordiParteSpecificaDriver.getAccordoServizioParteSpecifica(idServizio,conParam);
  1831.     }
  1832.     public AccordoServizioParteSpecifica getAccordoServizioParteSpecifica(long idServizio,Connection conParam,boolean readContenutoAllegati) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  1833.         return this.accordiParteSpecificaDriver.getAccordoServizioParteSpecifica(idServizio,conParam,readContenutoAllegati);
  1834.     }
  1835.    
  1836.     public List<Fruitore> serviziFruitoriList(long idServizi, ISearch ricerca) throws DriverRegistroServiziException {
  1837.         return this.accordiParteSpecificaFruitoreDriver.serviziFruitoriList(idServizi, ricerca);
  1838.     }

  1839.     public List<AccordoServizioParteSpecifica> serviziWithIdAccordoList(long idAccordo) throws DriverRegistroServiziException {
  1840.         return this.accordiParteSpecificaDriver.serviziWithIdAccordoList(idAccordo);
  1841.     }

  1842.     /**
  1843.      * Recupero l'id del servizio fruitore
  1844.      * @param idServizio
  1845.      * @param idSoggetto
  1846.      * @return L'id del servizio fruitore
  1847.      * @throws DriverRegistroServiziException
  1848.      */
  1849.     public long getIdServizioFruitore(long idServizio, long idSoggetto) throws DriverRegistroServiziException {
  1850.         return this.accordiParteSpecificaFruitoreDriver.getIdServizioFruitore(idServizio, idSoggetto);
  1851.     }

  1852.     public List<Fruitore> getServiziFruitoriWithServizio(long idServizio) throws DriverRegistroServiziException {
  1853.         return this.accordiParteSpecificaFruitoreDriver.getServiziFruitoriWithServizio(idServizio);
  1854.     }

  1855.     public List<AccordoServizioParteSpecifica> getServiziByIdErogatore(long idErogatore,ISearch filters) throws DriverRegistroServiziException {
  1856.         return this.accordiParteSpecificaSearchDriver.getServiziByIdErogatore(idErogatore, filters);
  1857.     }

  1858.     public List<AccordoServizioParteSpecifica> getServiziByFruitore(Fruitore fruitore) throws DriverRegistroServiziException {
  1859.         return this.accordiParteSpecificaFruitoreDriver.getServiziByFruitore(fruitore);
  1860.     }

  1861.     public List<Fruitore> getSoggettiWithServizioNotFruitori(long idServizio, boolean escludiSoggettiEsterni, CredenzialeTipo credenzialeTipo) throws DriverRegistroServiziException {
  1862.         return this.accordiParteSpecificaFruitoreDriver.getSoggettiWithServizioNotFruitori(idServizio, escludiSoggettiEsterni, credenzialeTipo);
  1863.     }
  1864.    
  1865.     /***
  1866.      *
  1867.      * @param superuser
  1868.      * @param ricerca
  1869.      * @param permessiUtente se permessiUtente[0] = true l'utente ha permessi per la categoria Servizi 'S', se permessiUtente[1] = true l'utente ha permessi per la categoria Accordi Cooperazione 'P'
  1870.      * @return lista di accordi di servizio parte specifica
  1871.      * @throws DriverRegistroServiziException
  1872.      */
  1873.     public List<AccordoServizioParteSpecifica> soggettiServizioList(String superuser, ISearch ricerca,boolean [] permessiUtente,
  1874.             boolean gestioneFruitori, boolean gestioneErogatori) throws DriverRegistroServiziException {
  1875.         return this.accordiParteSpecificaSearchDriver.soggettiServizioList(superuser, ricerca, permessiUtente,
  1876.                 gestioneFruitori, gestioneErogatori);
  1877.     }
  1878.    
  1879.     /**
  1880.      * Recupera gli id dei soggetti che erogano un determinato servizio
  1881.      * Si puo passare il tipo di soggetti che si desidera controllare, oppure null per tutti i soggetti.
  1882.      * @param tipoServizio
  1883.      * @param nomeServizio
  1884.      * @param uriAccordo
  1885.      * @param nomePortType
  1886.      * @param tipoSoggetto Il tipo del soggetto erogatore
  1887.      * @return List<IDSoggetto>
  1888.      * @throws DriverRegistroServiziException
  1889.      */
  1890.     public List<IDSoggetto> getAllIdSoggettiErogatori(String tipoServizio,String nomeServizio,String uriAccordo,String nomePortType,String tipoSoggetto) throws DriverRegistroServiziException {
  1891.         return this.accordiParteSpecificaDriver.getAllIdSoggettiErogatori(tipoServizio, nomeServizio,uriAccordo, nomePortType, tipoSoggetto);
  1892.     }
  1893.    
  1894.     public void validaStatoAccordoServizioParteSpecifica(AccordoServizioParteSpecifica servizio, boolean gestioneWsdlImplementativo, boolean checkConnettore) throws ValidazioneStatoPackageException{
  1895.         this.accordiParteSpecificaDriver.validaStatoAccordoServizioParteSpecifica(servizio, gestioneWsdlImplementativo, checkConnettore);
  1896.     }

  1897.     public void validaStatoFruitoreServizio(Fruitore fruitore,AccordoServizioParteSpecifica serv) throws ValidazioneStatoPackageException{
  1898.         this.accordiParteSpecificaFruitoreDriver.validaStatoFruitoreServizio(fruitore, serv);
  1899.     }
  1900.    
  1901.     public void updateProprietaOggettoErogazione(IDServizio idServizio, String user) throws DriverRegistroServiziException {
  1902.         this.accordiParteSpecificaDriver.updateProprietaOggettoErogazione(idServizio, user);
  1903.     }
  1904.     public void updateProprietaOggettoErogazione(long idServizio, String user) throws DriverRegistroServiziException {
  1905.         this.accordiParteSpecificaDriver.updateProprietaOggettoErogazione(idServizio, user);
  1906.     }
  1907.     public void updateProprietaOggettoFruizione(IDServizio idServizio, IDSoggetto idFruitore, String user) throws DriverRegistroServiziException {
  1908.         this.accordiParteSpecificaDriver.updateProprietaOggettoFruizione(idServizio, idFruitore, user);
  1909.     }
  1910.     public void updateProprietaOggettoFruizione(long idFruizione, String user) throws DriverRegistroServiziException {
  1911.         this.accordiParteSpecificaDriver.updateProprietaOggettoFruizione(idFruizione, user);
  1912.     }
  1913.    


  1914.     /* Connettori */

  1915.     public Connettore getConnettore(long idConnettore) throws DriverRegistroServiziException, DriverRegistroServiziNotFound {
  1916.         return this.connettoriDriver.getConnettore(idConnettore);
  1917.     }
  1918.     public Connettore getConnettore(String nomeConnettore) throws DriverRegistroServiziException {
  1919.         return this.connettoriDriver.getConnettore(nomeConnettore);
  1920.     }
  1921.    
  1922.     /**
  1923.      * Accede alla tabella connettori, recupera il connettore con idConnettore
  1924.      * in caso di errore lancia un'eccezione.
  1925.      *
  1926.      * @param idConnettore -
  1927.      *                id da prelevare
  1928.      * @param connection -
  1929.      *                una connesione con il db
  1930.      * @return Connettore
  1931.      *
  1932.      */
  1933.     public Connettore getConnettore(long idConnettore, Connection connection) throws DriverRegistroServiziException {
  1934.         return this.connettoriDriver.getConnettore(idConnettore, connection);
  1935.     }

  1936.     /**
  1937.      * Accede alla tabella connettori_properties, recupera le properties del connettore con nomeConnettore
  1938.      * in caso di errore lancia un'eccezione.
  1939.      *
  1940.      * @param nomeConnettore -
  1941.      *                nome da prelevare
  1942.      * @return Property[]
  1943.      *
  1944.      */
  1945.     public Property[] getPropertiesConnettore(String nomeConnettore) throws DriverRegistroServiziException {
  1946.         return this.connettoriDriver.getPropertiesConnettore(nomeConnettore);
  1947.     }
  1948.     public Property[] getPropertiesConnettore(String nomeConnettore, Connection connection) throws DriverRegistroServiziException {
  1949.         return this.connettoriDriver.getPropertiesConnettore(nomeConnettore, connection);
  1950.     }
  1951.    
  1952.     /**
  1953.      * Crea un nuovo Connettore
  1954.      *
  1955.      * @param connettore
  1956.      * @throws DriverRegistroServiziException
  1957.      */
  1958.     public void createConnettore(Connettore connettore) throws DriverRegistroServiziException {
  1959.         this.connettoriDriver.createConnettore(connettore);
  1960.     }

  1961.     /**
  1962.      * Aggiorna un Connettore
  1963.      *
  1964.      * @param connettore
  1965.      * @throws DriverRegistroServiziException
  1966.      */
  1967.     public void updateConnettore(Connettore connettore) throws DriverRegistroServiziException {
  1968.         this.connettoriDriver.updateConnettore(connettore);
  1969.     }

  1970.     /**
  1971.      * Elimina un Connettore
  1972.      *
  1973.      * @param connettore
  1974.      * @throws DriverRegistroServiziException
  1975.      */
  1976.     public void deleteConnettore(Connettore connettore) throws DriverRegistroServiziException {
  1977.         this.connettoriDriver.deleteConnettore(connettore);
  1978.     }

  1979.    
  1980.     /* Protocol Properties */
  1981.    
  1982.     public boolean existsProtocolProperty(ProprietariProtocolProperty proprietarioProtocolProperty, long idProprietario, String nome) throws DriverRegistroServiziException {
  1983.         return this.protocolPropertiesDriver.existsProtocolProperty(proprietarioProtocolProperty, idProprietario, nome);
  1984.     }

  1985.     public ProtocolProperty getProtocolProperty(ProprietariProtocolProperty proprietarioProtocolProperty, long idProprietario, String nome) throws DriverRegistroServiziException {
  1986.         return this.protocolPropertiesDriver.getProtocolProperty(proprietarioProtocolProperty, idProprietario, nome);
  1987.     }

  1988.     public ProtocolProperty getProtocolProperty(long idProtocolProperty) throws DriverRegistroServiziException {
  1989.         return this.protocolPropertiesDriver.getProtocolProperty(idProtocolProperty);
  1990.     }
  1991.    
  1992.    

  1993.     /* RESET */
  1994.    
  1995.     @Override
  1996.     public void reset() throws DriverRegistroServiziException {
  1997.         this.utilsDriver.reset();
  1998.     }

  1999.     /**
  2000.      * Reset delle tabelle del db govwayConsole gestito da questo driver
  2001.      */
  2002.     public void resetCtrlstat() throws DriverRegistroServiziException {
  2003.         this.utilsDriver.resetCtrlstat();
  2004.     }

  2005.     /**
  2006.      * Metodo che verica la connessione ad una risorsa.
  2007.      * Se la connessione non e' presente, viene lanciata una eccezione che contiene il motivo della mancata connessione
  2008.      *
  2009.      * @throws CoreException eccezione che contiene il motivo della mancata connessione
  2010.      */
  2011.     @Override
  2012.     public void isAlive() throws CoreException{
  2013.         this.utilsDriver.isAlive();
  2014.     }
  2015.    

  2016. }