AccordiServizioParteSpecificaCore.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.web.ctrlstat.servlet.aps;

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

  25. import javax.servlet.http.HttpServletRequest;
  26. import javax.servlet.http.HttpSession;

  27. import org.openspcoop2.core.commons.DBUtils;
  28. import org.openspcoop2.core.commons.ErrorsHandlerCostant;
  29. import org.openspcoop2.core.commons.ISearch;
  30. import org.openspcoop2.core.config.PortaApplicativa;
  31. import org.openspcoop2.core.config.PortaDelegata;
  32. import org.openspcoop2.core.config.driver.DriverConfigurazioneException;
  33. import org.openspcoop2.core.id.IDAccordo;
  34. import org.openspcoop2.core.id.IDFruizione;
  35. import org.openspcoop2.core.id.IDPortType;
  36. import org.openspcoop2.core.id.IDPortaApplicativa;
  37. import org.openspcoop2.core.id.IDPortaDelegata;
  38. import org.openspcoop2.core.id.IDServizio;
  39. import org.openspcoop2.core.id.IDSoggetto;
  40. import org.openspcoop2.core.mapping.DBMappingUtils;
  41. import org.openspcoop2.core.mapping.MappingErogazionePortaApplicativa;
  42. import org.openspcoop2.core.mapping.MappingFruizionePortaDelegata;
  43. import org.openspcoop2.core.registry.AccordoServizioParteComune;
  44. import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
  45. import org.openspcoop2.core.registry.Documento;
  46. import org.openspcoop2.core.registry.Fruitore;
  47. import org.openspcoop2.core.registry.constants.CostantiRegistroServizi;
  48. import org.openspcoop2.core.registry.constants.CredenzialeTipo;
  49. import org.openspcoop2.core.registry.driver.DriverRegistroServiziException;
  50. import org.openspcoop2.core.registry.driver.DriverRegistroServiziNotFound;
  51. import org.openspcoop2.core.registry.driver.FiltroRicercaAccordi;
  52. import org.openspcoop2.core.registry.driver.FiltroRicercaServizi;
  53. import org.openspcoop2.core.registry.driver.IDAccordoFactory;
  54. import org.openspcoop2.core.registry.driver.IDServizioFactory;
  55. import org.openspcoop2.core.registry.driver.IDriverRegistroServiziGet;
  56. import org.openspcoop2.core.registry.driver.ValidazioneStatoPackageException;
  57. import org.openspcoop2.core.registry.driver.db.DriverRegistroServiziDB;
  58. import org.openspcoop2.message.constants.ServiceBinding;
  59. import org.openspcoop2.protocol.engine.ProtocolFactoryManager;
  60. import org.openspcoop2.protocol.engine.utils.DBOggettiInUsoUtils;
  61. import org.openspcoop2.protocol.sdk.IProtocolFactory;
  62. import org.openspcoop2.protocol.sdk.ProtocolException;
  63. import org.openspcoop2.protocol.sdk.validator.ValidazioneResult;
  64. import org.openspcoop2.web.ctrlstat.core.ConsoleSearch;
  65. import org.openspcoop2.web.ctrlstat.core.ControlStationCore;
  66. import org.openspcoop2.web.ctrlstat.driver.DriverControlStationDB;
  67. import org.openspcoop2.web.ctrlstat.driver.DriverControlStationException;
  68. import org.openspcoop2.web.ctrlstat.registro.GestoreRegistroServiziRemoto;
  69. import org.openspcoop2.web.ctrlstat.servlet.soggetti.SoggettiCore;
  70. import org.openspcoop2.web.lib.mvc.ServletUtils;
  71. import org.openspcoop2.web.lib.mvc.TipoOperazione;

  72. /**
  73.  * AccordiServizioParteSpecificaCore
  74.  *
  75.  * @author Poli Andrea (apoli@link.it)
  76.  * @author $Author$
  77.  * @version $Rev$, $Date$
  78.  */
  79. public class AccordiServizioParteSpecificaCore extends ControlStationCore {

  80.     public AccordiServizioParteSpecificaCore() throws DriverControlStationException {
  81.         super();
  82.     }
  83.     public AccordiServizioParteSpecificaCore(ControlStationCore core) throws DriverControlStationException {
  84.         super(core);
  85.     }

  86.    
  87.     public boolean isConnettoreStatic(String protocollo) throws ProtocolException   {
  88.        
  89.         return this.protocolFactoryManager.getProtocolFactoryByName(protocollo).createProtocolVersionManager(null).isStaticRoute();
  90.     }
  91.    
  92.    
  93.     public boolean isSupportatoVersionamentoAccordiServizioParteSpecifica(String protocollo) throws DriverRegistroServiziException {
  94.         String nomeMetodo = "isSupportatoVersionamentoAccordiServizioParteSpecifica";
  95.         try{
  96.            
  97.             return this.protocolFactoryManager.getProtocolFactoryByName(protocollo).createProtocolConfiguration().isSupportoVersionamentoAccordiParteSpecifica();
  98.            
  99.         }catch (Exception e) {
  100.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  101.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  102.         }
  103.     }
  104.    
  105.    
  106.     public List<String> getTipiServiziGestitiProtocollo(String protocollo,ServiceBinding serviceBinding) throws DriverRegistroServiziException {
  107.         String nomeMetodo = "getTipiServiziGestitiProtocollo";
  108.         try{
  109.            
  110.             return this.protocolFactoryManager.getProtocolFactoryByName(protocollo).createProtocolConfiguration().getTipiServizi(serviceBinding);
  111.            
  112.         }catch (Exception e) {
  113.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  114.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  115.         }
  116.     }
  117.    
  118.     public String getTipoServizioDefaultProtocollo(String protocollo,ServiceBinding serviceBinding) throws  DriverRegistroServiziException {
  119.         String getTipoServizioDefault = "getTipoServizioDefaultProtocollo";
  120.         try{
  121.            
  122.             return this.protocolFactoryManager.getProtocolFactoryByName(protocollo).createProtocolConfiguration().getTipoServizioDefault(serviceBinding);
  123.            
  124.         }catch (Exception e) {
  125.             String error = getPrefixError(getTipoServizioDefault, e);
  126.             ControlStationCore.logError(error, e);
  127.             throw new DriverRegistroServiziException(error,e);
  128.         }
  129.     }

  130.     public String getProtocolloAssociatoTipoServizio(String tipoServizio) throws DriverRegistroServiziException {
  131.         String nomeMetodo = "getProtocolloAssociatoTipoServizio";
  132.         try{
  133.            
  134.             return this.protocolFactoryManager.getProtocolByServiceType(tipoServizio);
  135.            
  136.         }catch (Exception e) {
  137.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  138.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  139.         }
  140.     }
  141.    
  142.    
  143.     public void controlloUnicitaImplementazioneAccordoPerSoggetto(String portType,
  144.             IDSoggetto idSoggettoErogatore, long idSoggettoErogatoreLong,
  145.             IDAccordo idAccordoServizioParteComune, long idAccordoServizioParteComuneLong,
  146.             IDServizio idAccordoServizioParteSpecifica, long idAccordoServizioParteSpecificaLong,
  147.             TipoOperazione tipoOperazione,boolean servizioCorrelato) throws DriverRegistroServiziException{
  148.        
  149.        
  150.         Connection con = null;
  151.         String nomeMetodo = "controlloUnicitaImplementazioneAccordoPerSoggetto";
  152.         try {
  153.             // prendo una connessione
  154.             con = ControlStationCore.dbM.getConnection();
  155.             // istanzio il driver
  156.             DriverRegistroServiziDB driver = new DriverRegistroServiziDB(con, ControlStationCore.log, this.tipoDB);

  157.             driver.controlloUnicitaImplementazioneAccordoPerSoggetto(portType, idSoggettoErogatore, idSoggettoErogatoreLong,
  158.                     idAccordoServizioParteComune, idAccordoServizioParteComuneLong,
  159.                     idAccordoServizioParteSpecifica, idAccordoServizioParteSpecificaLong,
  160.                     TipoOperazione.CHANGE.equals(tipoOperazione), servizioCorrelato,
  161.                     this.isAbilitatoControlloUnicitaImplementazioneAccordoPerSoggetto(),
  162.                     this.isAbilitatoControlloUnicitaImplementazionePortTypePerSoggetto());
  163.            
  164.         } catch (Exception e) {
  165.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  166.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e), e);
  167.         } finally {
  168.             ControlStationCore.dbM.releaseConnection(con);
  169.         }
  170.        
  171.        
  172.        
  173.        
  174.         /*
  175.          * Controllo che non esistano 2 servizi con stesso soggetto erogatore e accordo di servizio
  176.          * che siano entrambi correlati o non correlati.
  177.          * Al massimo possono esistere 2 servizi di uno stesso accordo erogati da uno stesso soggetto,
  178.          * purche' siano uno correlato e uno no.
  179.          * Se tipoOp = change, devo fare attenzione a non escludere il servizio selezionato che sto
  180.          * cambiando
  181.          */

  182.         String tmpServCorr = CostantiRegistroServizi.DISABILITATO.toString();
  183.         if(servizioCorrelato){
  184.             tmpServCorr = CostantiRegistroServizi.ABILITATO.toString();
  185.         }
  186.         String s = "servizio";
  187.         if (servizioCorrelato) {
  188.             s = "servizio correlato";
  189.         }
  190.        
  191.         // se il servizio non definisce port type effettuo controllo che non
  192.         // esistano 2 servizi con stesso soggetto,
  193.         // accordo e servizio correlato
  194.         if (portType == null || "-".equals(portType)) {
  195.            
  196.             if(this.isAbilitatoControlloUnicitaImplementazioneAccordoPerSoggetto()){
  197.            
  198.                 // Controllo che non esistano 2 servizi con stesso soggetto,
  199.                 // accordo e servizio correlato
  200.                 // Se tipoOp = change, devo fare attenzione a non escludere il servizio selezionato

  201.                 long idAccordoServizioParteSpecificaAlreadyExists =
  202.                         this.getServizioWithSoggettoAccordoServCorr(idSoggettoErogatoreLong, idAccordoServizioParteComuneLong,
  203.                                 tmpServCorr);

  204.                 boolean addError = (tipoOperazione.equals(TipoOperazione.ADD) && (idAccordoServizioParteSpecificaAlreadyExists > 0));
  205.                 boolean changeError = false;
  206.                 if (tipoOperazione.equals(TipoOperazione.CHANGE) && (idAccordoServizioParteSpecificaAlreadyExists > 0)) {
  207.                     changeError = (idAccordoServizioParteSpecificaLong != idAccordoServizioParteSpecificaAlreadyExists);
  208.                 }
  209.                
  210.                 if (addError || changeError) {
  211.                     throw new DriverRegistroServiziException("Esiste gi&agrave; un " + s + " del Soggetto "+idSoggettoErogatore+
  212.                             " che implementa l'accordo selezionato ["+IDAccordoFactory.getInstance().getUriFromIDAccordo(idAccordoServizioParteComune)+"]");
  213.                 }
  214.                
  215.             }
  216.                
  217.         } else {
  218.            
  219.             if(this.isAbilitatoControlloUnicitaImplementazionePortTypePerSoggetto()){
  220.            
  221.                 // Controllo che non esistano 2 servizi con stesso soggetto,
  222.                 // accordo e servizio correlato e port-type

  223.                 long idAccordoServizioParteSpecificaAlreadyExists =  
  224.                         this.getServizioWithSoggettoAccordoServCorrPt(idSoggettoErogatoreLong, idAccordoServizioParteComuneLong,
  225.                                 tmpServCorr, portType);

  226.                 boolean addError = (tipoOperazione.equals(TipoOperazione.ADD) && (idAccordoServizioParteSpecificaAlreadyExists > 0));
  227.                 boolean changeError = false;
  228.                 if (tipoOperazione.equals(TipoOperazione.CHANGE) && (idAccordoServizioParteSpecificaAlreadyExists > 0)) {
  229.                     changeError = (idAccordoServizioParteSpecificaLong != idAccordoServizioParteSpecificaAlreadyExists);
  230.                 }
  231.                
  232.                 if (addError || changeError) {
  233.                     throw new DriverRegistroServiziException("Esiste gi&agrave; un " + s + " del Soggetto "+idSoggettoErogatore+
  234.                             " che implementa il servizio "+portType+" dell'accordo selezionato ["+IDAccordoFactory.getInstance().getUriFromIDAccordo(idAccordoServizioParteComune)+"]");
  235.                 }
  236.                
  237.             }
  238.         }
  239.     }
  240.    
  241.    
  242.    
  243.     public long getIdAccordoServizioParteSpecifica(IDServizio idAccordo) throws DriverRegistroServiziException {
  244.         Connection con = null;
  245.         String nomeMetodo = "getIdAccordoServizioParteSpecifica(id)";
  246.         try {
  247.             // prendo una connessione
  248.             con = ControlStationCore.dbM.getConnection();
  249.             return DBUtils.getIdServizio(idAccordo.getNome(), idAccordo.getTipo(), idAccordo.getVersione(),
  250.                     idAccordo.getSoggettoErogatore().getNome(), idAccordo.getSoggettoErogatore().getTipo(),
  251.                     con, this.tipoDB);
  252.         } catch (Exception e) {
  253.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  254.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e), e);
  255.         } finally {
  256.             ControlStationCore.dbM.releaseConnection(con);
  257.         }
  258.     }
  259.     public long getIdAccordoServizioParteSpecifica(Connection con, IDServizio idAccordo) throws DriverRegistroServiziException {
  260.         String nomeMetodo = "getIdAccordoServizioParteSpecifica(con,id)";
  261.         try {
  262.             // prendo una connessione
  263.             return DBUtils.getIdServizio(idAccordo.getNome(), idAccordo.getTipo(), idAccordo.getVersione(),
  264.                     idAccordo.getSoggettoErogatore().getNome(), idAccordo.getSoggettoErogatore().getTipo(),
  265.                     con, this.tipoDB);
  266.         } catch (Exception e) {
  267.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  268.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e), e);
  269.         }
  270.     }
  271.    
  272.     public long getIdFruizioneAccordoServizioParteSpecifica(IDSoggetto idFruitore, IDServizio idAccordo) throws DriverRegistroServiziException {
  273.         Connection con = null;
  274.         String nomeMetodo = "getIdFruizioneAccordoServizioParteSpecifica";
  275.         try {
  276.             // prendo una connessione
  277.             con = ControlStationCore.dbM.getConnection();
  278.             return DBUtils.getIdFruizioneServizio(idAccordo, idFruitore, con, this.tipoDB);
  279.         } catch (Exception e) {
  280.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  281.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e), e);
  282.         } finally {
  283.             ControlStationCore.dbM.releaseConnection(con);
  284.         }
  285.     }
  286.    
  287.    
  288.     public List<AccordoServizioParteComune> findAccordiParteComuneBySoggettoAndNome(String nomeAccordoParteComune,IDSoggetto idSoggetto) throws DriverRegistroServiziException {
  289.         String nomeMetodo = "findAccordiParteComuneBySoggettoAndNome(" + nomeAccordoParteComune + ", "+idSoggetto.toString()+")";
  290.         Connection con = null;
  291.         DriverControlStationDB driver = null;
  292.         try {
  293.             // prendo una connessione
  294.             con = ControlStationCore.dbM.getConnection();
  295.             // istanzio il driver
  296.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  297.             IDriverRegistroServiziGet driverRegistro = null;
  298.             if(this.isRegistroServiziLocale()){
  299.                 driverRegistro = driver.getDriverRegistroServiziDB();
  300.             }
  301.             else{
  302.                 driverRegistro = GestoreRegistroServiziRemoto.getDriverRegistroServizi(ControlStationCore.log);
  303.             }

  304.             FiltroRicercaAccordi filtroRicerca = new FiltroRicercaAccordi();
  305.             filtroRicerca.setNomeAccordo(nomeAccordoParteComune);
  306.             filtroRicerca.setTipoSoggettoReferente(idSoggetto.getTipo());
  307.             filtroRicerca.setNomeSoggettoReferente(idSoggetto.getNome());
  308.            
  309.             List<IDAccordo> idAccordi = null;
  310.             List<AccordoServizioParteComune> accordi = new ArrayList<>();
  311.             try{
  312.                 idAccordi = driverRegistro.getAllIdAccordiServizioParteComune(filtroRicerca);
  313.             }catch(DriverRegistroServiziNotFound dnf){
  314.                 // ignore
  315.             }
  316.             if(idAccordi!=null && !idAccordi.isEmpty()){
  317.                 // se long
  318.                 for (IDAccordo idAccordo : idAccordi) {
  319.                     accordi.add(driverRegistro.getAccordoServizioParteComune(idAccordo));
  320.                 }
  321.             }

  322.             return accordi;

  323.         }  catch (Exception e) {
  324.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  325.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  326.         } finally {
  327.             ControlStationCore.dbM.releaseConnection(con);
  328.         }
  329.     }
  330.    
  331.    
  332.     public List<AccordoServizioParteSpecifica> serviziByAccordoFilterList(IDAccordo idAccordo) throws DriverRegistroServiziException {
  333.         String nomeMetodo = "serviziByAccordoFilterList(" + idAccordo + ")";
  334.         Connection con = null;
  335.         DriverControlStationDB driver = null;
  336.         try {
  337.             // prendo una connessione
  338.             con = ControlStationCore.dbM.getConnection();
  339.             // istanzio il driver
  340.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  341.             DriverRegistroServiziDB driverRegistro = driver.getDriverRegistroServiziDB();

  342.             FiltroRicercaServizi filtroRicerca = new FiltroRicercaServizi();
  343.             filtroRicerca.setIdAccordoServizioParteComune(idAccordo);
  344.                        
  345.             List<IDServizio> idServizi = null;
  346.             try{
  347.                 idServizi = driverRegistro.getAllIdServizi(filtroRicerca);
  348.             }catch(DriverRegistroServiziNotFound dnf){
  349.                 // ignore
  350.             }
  351.             List<AccordoServizioParteSpecifica> lista = new ArrayList<>();
  352.             if(idServizi!=null && !idServizi.isEmpty()){
  353.                 for(int i=0; i<idServizi.size(); i++){
  354.                     lista.add(driverRegistro.getAccordoServizioParteSpecifica(idServizi.get(i)));
  355.                 }
  356.             }
  357.             return lista;

  358.         }  catch (Exception e) {
  359.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  360.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  361.         } finally {
  362.             ControlStationCore.dbM.releaseConnection(con);
  363.         }
  364.     }

  365.    
  366.        
  367.     public boolean isAccordoServizioParteSpecificaInUso(AccordoServizioParteSpecifica as, Map<ErrorsHandlerCostant, List<String>> whereIsInUso,
  368.             List<IDPortaDelegata> nomePDGenerateAutomaticamente, List<IDPortaApplicativa> nomePAGenerateAutomaticamente, boolean normalizeObjectIds) throws DriverRegistroServiziException {
  369.         Connection con = null;
  370.         String nomeMetodo = "isAccordoServizioPArteSpecificaInUso";
  371.         try {
  372.             // prendo una connessione
  373.             con = ControlStationCore.dbM.getConnection();
  374.            
  375.             IDServizio idServizio = IDServizioFactory.getInstance().getIDServizioFromAccordo(as);
  376.             return DBOggettiInUsoUtils.isAccordoServizioParteSpecificaInUso(con, this.tipoDB, idServizio, whereIsInUso, nomePDGenerateAutomaticamente, nomePAGenerateAutomaticamente, normalizeObjectIds);          
  377.         } catch (Exception e) {
  378.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  379.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e), e);
  380.         } finally {
  381.             ControlStationCore.dbM.releaseConnection(con);
  382.         }
  383.     }
  384.    
  385.    
  386.     public void validaStatoAccordoServizioParteSpecifica(AccordoServizioParteSpecifica serv, boolean gestioneWsdlImplementativo, boolean checkConnettore) throws DriverRegistroServiziException,ValidazioneStatoPackageException{
  387.         Connection con = null;
  388.         String nomeMetodo = "validaStatoAccordoServizioParteSpecifica";
  389.         DriverRegistroServiziDB driver = null;

  390.         try {
  391.             // prendo una connessione
  392.             con = ControlStationCore.dbM.getConnection();
  393.             // istanzio il driver
  394.             driver = new DriverRegistroServiziDB(con, ControlStationCore.log, this.tipoDB);

  395.             driver.validaStatoAccordoServizioParteSpecifica(serv, gestioneWsdlImplementativo, checkConnettore);
  396.            
  397.         } catch (ValidazioneStatoPackageException e) {
  398.             ControlStationCore.logError("[ControlStationCore::" + nomeMetodo + "] ValidazioneStatoPackageException :" + e.getMessage(), e);
  399.             throw e;
  400.         }  catch (DriverRegistroServiziException e) {
  401.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  402.             throw e;
  403.         } catch (Exception e) {
  404.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  405.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e), e);
  406.         } finally {
  407.             ControlStationCore.dbM.releaseConnection(con);
  408.         }
  409.     }
  410.    
  411.     public void validaStatoFruitoreAccordoServizioParteSpecifica(Fruitore fruitore,AccordoServizioParteSpecifica serv) throws DriverRegistroServiziException,ValidazioneStatoPackageException{
  412.         Connection con = null;
  413.         String nomeMetodo = "validaStatoFruitoreAccordoServizioParteSpecifica";
  414.         DriverRegistroServiziDB driver = null;

  415.         try {
  416.             // prendo una connessione
  417.             con = ControlStationCore.dbM.getConnection();
  418.             // istanzio il driver
  419.             driver = new DriverRegistroServiziDB(con, ControlStationCore.log, this.tipoDB);

  420.             driver.validaStatoFruitoreServizio(fruitore,serv);
  421.            
  422.         } catch (ValidazioneStatoPackageException e) {
  423.             ControlStationCore.logError("[ControlStationCore::" + nomeMetodo + "] validaStatoFruitoreAccordoServizioParteSpecifica :" + e.getMessage(), e);
  424.             throw e;
  425.         }  catch (DriverRegistroServiziException e) {
  426.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  427.             throw e;
  428.         } catch (Exception e) {
  429.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  430.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e), e);
  431.         } finally {
  432.             ControlStationCore.dbM.releaseConnection(con);
  433.         }
  434.     }
  435.    
  436.     public List<IDServizio> getAllIdServizi(FiltroRicercaServizi filtroRicerca) throws DriverRegistroServiziException, DriverRegistroServiziNotFound {
  437.         Connection con = null;
  438.         String nomeMetodo = "getAllIdServizi";
  439.         DriverControlStationDB driver = null;

  440.         try {
  441.             if(this.isRegistroServiziLocale()){
  442.                 // prendo una connessione
  443.                 con = ControlStationCore.dbM.getConnection();
  444.                 // istanzio il driver
  445.                 driver = new DriverControlStationDB(con, null, this.tipoDB);
  446.    
  447.                 return driver.getDriverRegistroServiziDB().getAllIdServizi(filtroRicerca);
  448.             }
  449.             else{
  450.                 return GestoreRegistroServiziRemoto.getDriverRegistroServizi(ControlStationCore.log).getAllIdServizi(filtroRicerca);
  451.             }

  452.         } catch (DriverRegistroServiziNotFound de) {
  453.             ControlStationCore.logDebug(getPrefixError(nomeMetodo,  de),de);
  454.             throw de;
  455.         } catch (Exception e) {
  456.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  457.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  458.         } finally {
  459.             ControlStationCore.dbM.releaseConnection(con);
  460.         }
  461.     }

  462.     public List<AccordoServizioParteSpecifica> servizioWithSoggettoFruitore(IDSoggetto idSoggetto) throws DriverRegistroServiziException {
  463.         Connection con = null;
  464.         String nomeMetodo = "servizioWithSoggettoFruitore";
  465.         DriverRegistroServiziDB driver = null;

  466.         try {
  467.             // prendo una connessione
  468.             con = ControlStationCore.dbM.getConnection();
  469.             // istanzio il driver
  470.             driver = new DriverRegistroServiziDB(con, ControlStationCore.log, this.tipoDB);

  471.             return driver.servizioWithSoggettoFruitore(idSoggetto);
  472.         } catch (DriverRegistroServiziException e) {
  473.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  474.             throw e;
  475.         } catch (Exception e) {
  476.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  477.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e), e);
  478.         } finally {
  479.             ControlStationCore.dbM.releaseConnection(con);
  480.         }
  481.     }
  482.    
  483.     public List<AccordoServizioParteSpecifica> serviziWithIdAccordoList(long idAccordo) throws DriverRegistroServiziException {
  484.         Connection con = null;
  485.         String nomeMetodo = "serviziWithIdAccordoList";
  486.         DriverControlStationDB driver = null;

  487.         try {
  488.             // prendo una connessione
  489.             con = ControlStationCore.dbM.getConnection();
  490.             // istanzio il driver
  491.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  492.             return driver.getDriverRegistroServiziDB().serviziWithIdAccordoList(idAccordo);

  493.         } catch (Exception e) {
  494.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  495.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  496.         } finally {
  497.             ControlStationCore.dbM.releaseConnection(con);
  498.         }
  499.     }

  500.     public List<Fruitore> getSoggettiWithServizioNotFruitori(long idServizio, boolean escludiSoggettiEsterni, CredenzialeTipo credenzialeTipo) throws DriverRegistroServiziException {
  501.         Connection con = null;
  502.         String nomeMetodo = "getSoggettiWithServizioNotFruitori";
  503.         DriverControlStationDB driver = null;

  504.         try {
  505.             // prendo una connessione
  506.             con = ControlStationCore.dbM.getConnection();
  507.             // istanzio il driver
  508.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  509.             return driver.getDriverRegistroServiziDB().getSoggettiWithServizioNotFruitori(idServizio, escludiSoggettiEsterni, credenzialeTipo);

  510.         } catch (Exception e) {
  511.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  512.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  513.         } finally {
  514.             ControlStationCore.dbM.releaseConnection(con);
  515.         }
  516.     }
  517.    
  518.     public Fruitore getErogatoreFruitore(long id) throws DriverRegistroServiziException {
  519.         Connection con = null;
  520.         String nomeMetodo = "getErogatoreFruitore";
  521.         DriverControlStationDB driver = null;

  522.         try {
  523.             // prendo una connessione
  524.             con = ControlStationCore.dbM.getConnection();
  525.             // istanzio il driver
  526.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  527.             return driver.getDriverRegistroServiziDB().getErogatoreFruitore(id);

  528.         } catch (Exception e) {
  529.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  530.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  531.         } finally {
  532.             ControlStationCore.dbM.releaseConnection(con);
  533.         }
  534.     }
  535.    
  536.     public long getServizioWithSoggettoAccordoServCorr(long idSoggetto, long idAccordo, String servizioCorrelato) throws DriverRegistroServiziException {
  537.         Connection con = null;
  538.         String nomeMetodo = "getServizioWithSoggettoAccordoServCorr";
  539.         DriverControlStationDB driver = null;

  540.         try {
  541.             // prendo una connessione
  542.             con = ControlStationCore.dbM.getConnection();
  543.             // istanzio il driver
  544.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  545.             return driver.getDriverRegistroServiziDB().getServizioWithSoggettoAccordoServCorr(idSoggetto, idAccordo, servizioCorrelato);

  546.         } catch (Exception e) {
  547.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  548.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  549.         } finally {
  550.             ControlStationCore.dbM.releaseConnection(con);
  551.         }
  552.     }

  553.     public long getServizioWithSoggettoAccordoServCorrPt(long idSoggetto, long idAccordo, String servizioCorrelato, String portType) throws DriverRegistroServiziException {
  554.         Connection con = null;
  555.         String nomeMetodo = "getServizioWithSoggettoAccordoServCorrPt";
  556.         DriverControlStationDB driver = null;

  557.         try {
  558.             // prendo una connessione
  559.             con = ControlStationCore.dbM.getConnection();
  560.             // istanzio il driver
  561.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  562.             return driver.getDriverRegistroServiziDB().getServizioWithSoggettoAccordoServCorrPt(idSoggetto, idAccordo, servizioCorrelato, portType);

  563.         } catch (Exception e) {
  564.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  565.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  566.         } finally {
  567.             ControlStationCore.dbM.releaseConnection(con);
  568.         }
  569.     }

  570.     public Fruitore getServizioFruitore(long idServFru) throws DriverRegistroServiziException {
  571.         Connection con = null;
  572.         String nomeMetodo = "getServizioFruitore";
  573.         DriverControlStationDB driver = null;

  574.         try {
  575.             // prendo una connessione
  576.             con = ControlStationCore.dbM.getConnection();
  577.             // istanzio il driver
  578.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  579.             return driver.getDriverRegistroServiziDB().getServizioFruitore(idServFru);

  580.         } catch (Exception e) {
  581.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  582.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e), e);
  583.         } finally {
  584.             ControlStationCore.dbM.releaseConnection(con);
  585.         }
  586.     }

  587.     public long getServizioFruitore(IDServizio idServizio, long idSogg) throws DriverRegistroServiziException {
  588.         Connection con = null;
  589.         String nomeMetodo = "getServizioFruitore";
  590.         DriverControlStationDB driver = null;

  591.         try {
  592.             // prendo una connessione
  593.             con = ControlStationCore.dbM.getConnection();
  594.             // istanzio il driver
  595.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  596.             return driver.getDriverRegistroServiziDB().getServizioFruitore(idServizio, idSogg);

  597.         } catch (Exception e) {
  598.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  599.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e), e);
  600.         } finally {
  601.             ControlStationCore.dbM.releaseConnection(con);
  602.         }
  603.     }

  604.     public long getServizioFruitoreSoggettoFruitoreID(long idServFru) throws DriverRegistroServiziException {
  605.         Connection con = null;
  606.         String nomeMetodo = "getServizioFruitoreSoggettoFruitoreID";
  607.         DriverControlStationDB driver = null;

  608.         try {
  609.             // prendo una connessione
  610.             con = ControlStationCore.dbM.getConnection();
  611.             // istanzio il driver
  612.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  613.             return driver.getDriverRegistroServiziDB().getServizioFruitoreSoggettoFruitoreID(idServFru);

  614.         } catch (Exception e) {
  615.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  616.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e), e);
  617.         } finally {
  618.             ControlStationCore.dbM.releaseConnection(con);
  619.         }
  620.     }

  621.     public long getServizioFruitoreServizioID(long idServFru) throws DriverRegistroServiziException {
  622.         Connection con = null;
  623.         String nomeMetodo = "getServizioFruitoreServizioID";
  624.         DriverControlStationDB driver = null;

  625.         try {
  626.             // prendo una connessione
  627.             con = ControlStationCore.dbM.getConnection();
  628.             // istanzio il driver
  629.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  630.             return driver.getDriverRegistroServiziDB().getServizioFruitoreServizioID(idServFru);

  631.         } catch (Exception e) {
  632.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  633.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e), e);
  634.         } finally {
  635.             ControlStationCore.dbM.releaseConnection(con);
  636.         }
  637.     }
  638.    
  639.     public boolean existsServizio(long idServizio) throws DriverRegistroServiziException {
  640.         Connection con = null;
  641.         String nomeMetodo = "existsServizio";
  642.         DriverControlStationDB driver = null;

  643.         try {
  644.             // prendo una connessione
  645.             con = ControlStationCore.dbM.getConnection();
  646.             // istanzio il driver
  647.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  648.             return driver.getDriverRegistroServiziDB().existsAccordoServizioParteSpecifica(idServizio);

  649.         } catch (Exception e) {
  650.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  651.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  652.         } finally {
  653.             ControlStationCore.dbM.releaseConnection(con);
  654.         }
  655.     }

  656.    
  657.     public boolean existsServizio(IDServizio idSE) throws DriverRegistroServiziException {
  658.         Connection con = null;
  659.         String nomeMetodo = "existsServizio";
  660.         DriverControlStationDB driver = null;

  661.         try {
  662.             // prendo una connessione
  663.             con = ControlStationCore.dbM.getConnection();
  664.             // istanzio il driver
  665.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  666.             return driver.getDriverRegistroServiziDB().existsAccordoServizioParteSpecifica(idSE);

  667.         } catch (Exception e) {
  668.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  669.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  670.         } finally {
  671.             ControlStationCore.dbM.releaseConnection(con);
  672.         }
  673.     }


  674.     public boolean existsAccordoServizioParteSpecifica(IDServizio idAccordo) throws DriverRegistroServiziException {
  675.         Connection con = null;
  676.         String nomeMetodo = "existsAccordoServizioParteSpecifica";
  677.         DriverControlStationDB driver = null;

  678.         try {
  679.             // prendo una connessione
  680.             con = ControlStationCore.dbM.getConnection();
  681.             // istanzio il driver
  682.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  683.             return driver.getDriverRegistroServiziDB().existsAccordoServizioParteSpecifica(idAccordo);

  684.         } catch (Exception e) {
  685.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  686.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  687.         } finally {
  688.             ControlStationCore.dbM.releaseConnection(con);
  689.         }
  690.     }
  691.    
  692.     public AccordoServizioParteSpecifica getServizio(IDServizio idService) throws DriverRegistroServiziNotFound, DriverRegistroServiziException {
  693.         Connection con = null;
  694.         String nomeMetodo = "getServizio";
  695.         DriverControlStationDB driver = null;

  696.         try {
  697.             if(this.isRegistroServiziLocale()){
  698.                 // prendo una connessione
  699.                 con = ControlStationCore.dbM.getConnection();
  700.                 // istanzio il driver
  701.                 driver = new DriverControlStationDB(con, null, this.tipoDB);
  702.    
  703.                 return driver.getDriverRegistroServiziDB().getAccordoServizioParteSpecifica(idService);
  704.                
  705.             }else{
  706.                 return GestoreRegistroServiziRemoto.getDriverRegistroServizi(ControlStationCore.log).getAccordoServizioParteSpecifica(idService);
  707.             }

  708.         } catch (DriverRegistroServiziNotFound de) {
  709.             ControlStationCore.logDebug(getPrefixError(nomeMetodo,  de),de);
  710.             throw de;
  711.         } catch (Exception e) {
  712.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  713.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  714.         } finally {
  715.             ControlStationCore.dbM.releaseConnection(con);
  716.         }

  717.     }

  718.     public AccordoServizioParteSpecifica getServizio(IDServizio idService,boolean deepRead) throws DriverRegistroServiziException, DriverRegistroServiziNotFound {
  719.         Connection con = null;
  720.         String nomeMetodo = "getServizio";
  721.         DriverControlStationDB driver = null;

  722.         try {
  723.             // prendo una connessione
  724.             con = ControlStationCore.dbM.getConnection();
  725.             // istanzio il driver
  726.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  727.             return driver.getDriverRegistroServiziDB().getAccordoServizioParteSpecifica(idService,deepRead);
  728.         } catch (DriverRegistroServiziNotFound e) {
  729.             ControlStationCore.logDebug(getPrefixError(nomeMetodo,  e), e);
  730.             throw e;
  731.         } catch (DriverRegistroServiziException e) {
  732.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  733.             throw e;
  734.         } catch (Exception e) {
  735.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  736.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e), e);
  737.         } finally {
  738.             ControlStationCore.dbM.releaseConnection(con);
  739.         }
  740.     }

  741.    

  742.     public AccordoServizioParteSpecifica getServizioCorrelato(IDSoggetto idSoggetto, IDAccordo idAccordo) throws DriverRegistroServiziNotFound, DriverRegistroServiziException {
  743.         Connection con = null;
  744.         String nomeMetodo = "getServizioCorrelato";
  745.         DriverControlStationDB driver = null;

  746.         try {
  747.             // prendo una connessione
  748.             con = ControlStationCore.dbM.getConnection();
  749.             // istanzio il driver
  750.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  751.             return driver.getDriverRegistroServiziDB().getAccordoServizioParteSpecifica_ServizioCorrelato(idSoggetto, idAccordo);

  752.         } catch (DriverRegistroServiziNotFound de) {
  753.             ControlStationCore.logDebug(getPrefixError(nomeMetodo,  de),de);
  754.             throw de;
  755.         } catch (Exception e) {
  756.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  757.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  758.         } finally {
  759.             ControlStationCore.dbM.releaseConnection(con);
  760.         }

  761.     }


  762.    
  763.    
  764.     public List<AccordoServizioParteSpecifica> soggettiServizioList(String superuser, ISearch ricerca,boolean [] permessiUtente, HttpSession session, HttpServletRequest request) throws DriverRegistroServiziException {
  765.         boolean gestioneFruitori = false;
  766.         boolean gestioneErogatori = false;
  767.         String tipologia = ServletUtils.getObjectFromSession(request, session, String.class, AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_TIPO_EROGAZIONE);
  768.         if(tipologia!=null) {
  769.             if(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_TIPO_EROGAZIONE_VALUE_FRUIZIONE.equals(tipologia)) {
  770.                 gestioneFruitori = true;
  771.             }
  772.             else if(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_TIPO_EROGAZIONE_VALUE_EROGAZIONE.equals(tipologia)) {
  773.                 gestioneErogatori = true;
  774.             }
  775.         }
  776.         return soggettiServizioList(superuser, ricerca, permessiUtente, gestioneFruitori, gestioneErogatori);

  777.     }
  778.     public List<AccordoServizioParteSpecifica> soggettiServizioList(String superuser, ISearch ricerca,boolean [] permessiUtente,
  779.             boolean gestioneFruitori, boolean gestioneErogatori) throws DriverRegistroServiziException {
  780.         Connection con = null;
  781.         String nomeMetodo = "soggettiServizioList";
  782.         DriverControlStationDB driver = null;

  783.         try {
  784.             // prendo una connessione
  785.             con = ControlStationCore.dbM.getConnection();
  786.             // istanzio il driver
  787.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  788.             return driver.getDriverRegistroServiziDB().soggettiServizioList(superuser, ricerca,permessiUtente,
  789.                     gestioneFruitori, gestioneErogatori);

  790.         } catch (Exception e) {
  791.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  792.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  793.         } finally {
  794.             ControlStationCore.dbM.releaseConnection(con);
  795.         }

  796.     }

  797.    

  798.     public List<IDServizio> getIdServiziWithPortType(IDPortType idPT) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  799.         Connection con = null;
  800.         String nomeMetodo = "getIdServiziWithPortType";
  801.         DriverControlStationDB driver = null;

  802.         try {
  803.             // prendo una connessione
  804.             con = ControlStationCore.dbM.getConnection();
  805.             // istanzio il driver
  806.             driver = new DriverControlStationDB(con, null, this.tipoDB);
  807.             return driver.getDriverRegistroServiziDB().getIdServiziWithPortType(idPT);
  808.         } catch (DriverRegistroServiziNotFound e) {
  809.             ControlStationCore.logDebug(getPrefixError(nomeMetodo,  e), e);
  810.             throw e;
  811.         } catch (Exception e) {
  812.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  813.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  814.         } finally {
  815.             ControlStationCore.dbM.releaseConnection(con);
  816.         }
  817.     }
  818.    
  819.     public List<IDServizio> getIdServiziWithAccordo(IDAccordo idAccordo,boolean checkPTisNull) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
  820.         Connection con = null;
  821.         String nomeMetodo = "getIdServiziWithAccordo";
  822.         DriverControlStationDB driver = null;

  823.         try {
  824.             // prendo una connessione
  825.             con = ControlStationCore.dbM.getConnection();
  826.             // istanzio il driver
  827.             driver = new DriverControlStationDB(con, null, this.tipoDB);
  828.             return driver.getDriverRegistroServiziDB().getIdServiziWithAccordo(idAccordo,checkPTisNull);
  829.         } catch (DriverRegistroServiziNotFound e) {
  830.             ControlStationCore.logDebug(getPrefixError(nomeMetodo,  e), e);
  831.             throw e;
  832.         } catch (Exception e) {
  833.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  834.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  835.         } finally {
  836.             ControlStationCore.dbM.releaseConnection(con);
  837.         }
  838.     }
  839.    
  840.    
  841.     public List<AccordoServizioParteSpecifica> serviziList(ISearch ricerca) throws DriverRegistroServiziException {
  842.         Connection con = null;
  843.         String nomeMetodo = "serviziList";
  844.         DriverControlStationDB driver = null;

  845.         try {
  846.             // prendo una connessione
  847.             con = ControlStationCore.dbM.getConnection();
  848.             // istanzio il driver
  849.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  850.             return driver.getDriverRegistroServiziDB().serviziList(null,ricerca);

  851.         } catch (Exception e) {
  852.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  853.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  854.         } finally {
  855.             ControlStationCore.dbM.releaseConnection(con);
  856.         }

  857.     }
  858.    
  859.     public List<AccordoServizioParteSpecifica> serviziList(String superUser,ISearch ricerca) throws DriverRegistroServiziException {
  860.         Connection con = null;
  861.         String nomeMetodo = "serviziList";
  862.         DriverControlStationDB driver = null;

  863.         try {
  864.             // prendo una connessione
  865.             con = ControlStationCore.dbM.getConnection();
  866.             // istanzio il driver
  867.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  868.             return driver.getDriverRegistroServiziDB().serviziList(superUser,ricerca);

  869.         } catch (Exception e) {
  870.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  871.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  872.         } finally {
  873.             ControlStationCore.dbM.releaseConnection(con);
  874.         }

  875.     }
  876.    

  877.     public long existServizio(String nomeServizio, String tipoServizio, int versioneServizio, long idSoggettoErogatore) throws DriverControlStationException {
  878.         Connection con = null;
  879.         String nomeMetodo = "existServizio(nome,tipo,versione,idErogatore)";
  880.         DriverControlStationDB driver = null;

  881.         try {
  882.             // prendo una connessione
  883.             con = ControlStationCore.dbM.getConnection();
  884.             // istanzio il driver
  885.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  886.             return driver.existServizio(nomeServizio, tipoServizio, versioneServizio, idSoggettoErogatore);

  887.         } catch (Exception e) {
  888.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  889.             throw new DriverControlStationException(getPrefixError(nomeMetodo,  e),e);
  890.         } finally {
  891.             ControlStationCore.dbM.releaseConnection(con);
  892.         }
  893.     }

  894.     public ValidazioneResult validazione(AccordoServizioParteSpecifica as,SoggettiCore soggettiCore) throws DriverRegistroServiziException {
  895.         String nomeMetodo = "validazione";
  896.         try {
  897.             String protocollo = soggettiCore.getProtocolloAssociatoTipoSoggetto(as.getTipoSoggettoErogatore());
  898.             IProtocolFactory<?> protocol = ProtocolFactoryManager.getInstance().getProtocolFactoryByName(protocollo);
  899.             return protocol.createValidazioneAccordi().valida(as);
  900.         }catch (Exception e) {
  901.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  902.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e), e);
  903.         }
  904.     }

  905.     public ValidazioneResult validaInterfacciaWsdlParteSpecifica(AccordoServizioParteSpecifica as,AccordoServizioParteComune apc,SoggettiCore soggettiCore) throws DriverRegistroServiziException {
  906.         String nomeMetodo = "validaInterfacciaWsdlParteSpecifica";
  907.         try {
  908.             String protocollo = soggettiCore.getProtocolloAssociatoTipoSoggetto(as.getTipoSoggettoErogatore());
  909.             IProtocolFactory<?> protocol = ProtocolFactoryManager.getInstance().getProtocolFactoryByName(protocollo);
  910.             return protocol.createValidazioneDocumenti().validaSpecificaInterfaccia(as,apc);
  911.         }catch (Exception e) {
  912.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  913.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e), e);
  914.         }
  915.     }
  916.    
  917.     public ValidazioneResult validaInterfacciaWsdlParteSpecifica(Fruitore fruitore,AccordoServizioParteSpecifica as,AccordoServizioParteComune apc,SoggettiCore soggettiCore) throws DriverRegistroServiziException {
  918.         String nomeMetodo = "validaInterfacciaWsdlParteSpecifica_Fruitore";
  919.         try {
  920.             String protocollo = soggettiCore.getProtocolloAssociatoTipoSoggetto(as.getTipoSoggettoErogatore());
  921.             IProtocolFactory<?> protocol = ProtocolFactoryManager.getInstance().getProtocolFactoryByName(protocollo);
  922.             return protocol.createValidazioneDocumenti().validaSpecificaInterfaccia(fruitore, as, apc);
  923.         }catch (Exception e) {
  924.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  925.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e), e);
  926.         }
  927.     }

  928.     public  long getIdAccordoServizioParteSpecifica(String nomeServizio, String tipoServizio,Integer versioneServizio, String nomeProprietario,String tipoProprietario) throws DriverRegistroServiziException{
  929.         Connection con = null;
  930.         String nomeMetodo = "getIdAccordoServizioParteSpecifica";

  931.         long idServizio=-1;
  932.         try
  933.         {
  934.             // prendo una connessione
  935.             con = ControlStationCore.dbM.getConnection();

  936.             idServizio = DBUtils.getIdServizio(nomeServizio, tipoServizio, versioneServizio, nomeProprietario, tipoProprietario, con, this.tipoDB);


  937.         } catch (Exception e) {
  938.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  939.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  940.         }finally
  941.         {
  942.             ControlStationCore.dbM.releaseConnection(con);
  943.         }
  944.         return idServizio;
  945.     }

  946.     public AccordoServizioParteSpecifica getAccordoServizioParteSpecifica(long idServizio) throws DriverRegistroServiziNotFound, DriverRegistroServiziException {
  947.         Connection con = null;
  948.         String nomeMetodo = "getAccordoServizioParteSpecifica";
  949.         DriverControlStationDB driver = null;

  950.         try {
  951.             // prendo una connessione
  952.             con = ControlStationCore.dbM.getConnection();
  953.             // istanzio il driver
  954.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  955.             return driver.getDriverRegistroServiziDB().getAccordoServizioParteSpecifica(idServizio);

  956.         } catch (DriverRegistroServiziNotFound de) {
  957.             ControlStationCore.logDebug(getPrefixError(nomeMetodo,  de),de);
  958.             throw de;
  959.         } catch (Exception e) {
  960.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  961.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e), e);
  962.         } finally {
  963.             ControlStationCore.dbM.releaseConnection(con);
  964.         }
  965.     }
  966.    
  967.     public AccordoServizioParteSpecifica getAccordoServizioParteSpecifica(IDServizio idServizio) throws DriverRegistroServiziNotFound, DriverRegistroServiziException {
  968.         Connection con = null;
  969.         String nomeMetodo = "getAccordoServizioParteSpecifica(IDServizio)";
  970.         DriverControlStationDB driver = null;

  971.         try {
  972.             // prendo una connessione
  973.             con = ControlStationCore.dbM.getConnection();
  974.             // istanzio il driver
  975.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  976.             return driver.getDriverRegistroServiziDB().getAccordoServizioParteSpecifica(idServizio);

  977.         } catch (DriverRegistroServiziNotFound de) {
  978.             ControlStationCore.logDebug(getPrefixError(nomeMetodo,  de),de);
  979.             throw de;
  980.         } catch (Exception e) {
  981.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  982.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e), e);
  983.         } finally {
  984.             ControlStationCore.dbM.releaseConnection(con);
  985.         }
  986.     }

  987.     public List<PortaApplicativa> serviziPorteAppList(String tipoServizio,String nomeServizio, Integer versioneServizio,
  988.             long idServizio, long idSoggettoErogatore, ISearch ricerca) throws DriverConfigurazioneException {
  989.         Connection con = null;
  990.         String nomeMetodo = "serviziPorteAppList";
  991.         DriverControlStationDB driver = null;

  992.         try {
  993.             // prendo una connessione
  994.             con = ControlStationCore.dbM.getConnection();
  995.             // istanzio il driver
  996.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  997.             return driver.getDriverConfigurazioneDB().serviziPorteAppList(tipoServizio,nomeServizio,versioneServizio,idServizio, idSoggettoErogatore, ricerca);

  998.         } catch (Exception e) {
  999.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1000.             throw new DriverConfigurazioneException(getPrefixError(nomeMetodo,  e),e);
  1001.         } finally {
  1002.             ControlStationCore.dbM.releaseConnection(con);
  1003.         }
  1004.     }
  1005.    
  1006.     public List<MappingErogazionePortaApplicativa> mappingServiziPorteAppList(IDServizio idAccordoServizioParteSpecifica, ISearch ricerca) throws DriverConfigurazioneException, DriverRegistroServiziException {
  1007.         return mappingServiziPorteAppListEngine(idAccordoServizioParteSpecifica, this.getIdAccordoServizioParteSpecifica(idAccordoServizioParteSpecifica), ricerca);
  1008.     }
  1009.    
  1010.     public List<MappingErogazionePortaApplicativa> mappingServiziPorteAppList(IDServizio idAccordoServizioParteSpecifica, Long idServizio, ISearch ricerca) throws DriverConfigurazioneException {
  1011.         return mappingServiziPorteAppListEngine(idAccordoServizioParteSpecifica, idServizio, ricerca);
  1012.     }
  1013.    
  1014.     private List<MappingErogazionePortaApplicativa> mappingServiziPorteAppListEngine(IDServizio idAccordoServizioParteSpecifica, Long idServizio, ISearch ricerca) throws DriverConfigurazioneException {
  1015.         Connection con = null;
  1016.         String nomeMetodo = "mappingServiziPorteAppList";

  1017.         try {
  1018.             // prendo una connessione
  1019.             con = ControlStationCore.dbM.getConnection();
  1020.             boolean orderByDescrizione = true;
  1021.             boolean ricercaUseOffsetLimit = false; // non esiste paginazione per adesso
  1022.             return DBMappingUtils.mappingErogazionePortaApplicativaList(con,this.tipoDB,idAccordoServizioParteSpecifica,idServizio, ricerca, ricercaUseOffsetLimit, orderByDescrizione);
  1023.         } catch (Exception e) {
  1024.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1025.             throw new DriverConfigurazioneException(getPrefixError(nomeMetodo,  e),e);
  1026.         } finally {
  1027.             ControlStationCore.dbM.releaseConnection(con);
  1028.         }
  1029.     }
  1030.    
  1031.     public void deleteMappingErogazione(IDServizio idServizio, IDPortaApplicativa idPortaApplicativaByNome) throws DriverConfigurazioneException {
  1032.         Connection con = null;
  1033.         String nomeMetodo = "deleteMappingErogazione";
  1034.         try{
  1035.             con = ControlStationCore.dbM.getConnection();
  1036.             DBMappingUtils.deleteMappingErogazione(idServizio, idPortaApplicativaByNome, con, this.tipoDB);
  1037.         } catch (Exception e) {
  1038.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1039.             throw new DriverConfigurazioneException(getPrefixError(nomeMetodo,  e),e);
  1040.         } finally {
  1041.             ControlStationCore.dbM.releaseConnection(con);
  1042.         }
  1043.     }
  1044.    
  1045.     public boolean isDefaultMappingErogazione(IDServizio idServizio, IDPortaApplicativa idPortaApplicativaByNome) throws DriverConfigurazioneException {
  1046.         Connection con = null;
  1047.         String nomeMetodo = "isDefaultMappingErogazione";
  1048.         try{
  1049.             con = ControlStationCore.dbM.getConnection();
  1050.             return DBMappingUtils.checkMappingErogazione(idServizio, idPortaApplicativaByNome, true, con, this.tipoDB);
  1051.         } catch (Exception e) {
  1052.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1053.             throw new DriverConfigurazioneException(getPrefixError(nomeMetodo,  e),e);
  1054.         } finally {
  1055.             ControlStationCore.dbM.releaseConnection(con);
  1056.         }
  1057.     }

  1058.     public AccordoServizioParteSpecifica getAccordoServizioParteSpecifica(long idServizio,boolean readContenutoAllegati) throws DriverRegistroServiziNotFound, DriverRegistroServiziException {
  1059.         Connection con = null;
  1060.         String nomeMetodo = "getAccordoServizioParteSpecifica";
  1061.         DriverControlStationDB driver = null;

  1062.         try {
  1063.             // prendo una connessione
  1064.             con = ControlStationCore.dbM.getConnection();
  1065.             // istanzio il driver
  1066.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  1067.             return driver.getDriverRegistroServiziDB().getAccordoServizioParteSpecifica(idServizio,readContenutoAllegati);

  1068.         } catch (DriverRegistroServiziNotFound de) {
  1069.             ControlStationCore.logDebug(getPrefixError(nomeMetodo,  de),de);
  1070.             throw de;
  1071.         } catch (Exception e) {
  1072.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1073.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e), e);
  1074.         } finally {
  1075.             ControlStationCore.dbM.releaseConnection(con);
  1076.         }
  1077.     }

  1078.     public List<Fruitore> serviziFruitoriList(long idServizi, ISearch ricerca) throws DriverRegistroServiziException {
  1079.         Connection con = null;
  1080.         String nomeMetodo = "serviziFruitoriList";
  1081.         DriverControlStationDB driver = null;

  1082.         try {
  1083.             // prendo una connessione
  1084.             con = ControlStationCore.dbM.getConnection();
  1085.             // istanzio il driver
  1086.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  1087.             return driver.getDriverRegistroServiziDB().serviziFruitoriList(idServizi, ricerca);
  1088.         } catch (Exception e) {
  1089.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1090.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  1091.         } finally {
  1092.             ControlStationCore.dbM.releaseConnection(con);
  1093.         }
  1094.     }
  1095.     public List<Fruitore> serviziFruitoriList(Connection con, long idServizi, ISearch ricerca) throws DriverRegistroServiziException {
  1096.         String nomeMetodo = "serviziFruitoriList";
  1097.         DriverControlStationDB driver = null;

  1098.         try {
  1099.             // istanzio il driver
  1100.             driver = new DriverControlStationDB(con, null, this.tipoDB);
  1101.             return driver.getDriverRegistroServiziDB().serviziFruitoriList(idServizi, ricerca);
  1102.         } catch (Exception e) {
  1103.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1104.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  1105.         }
  1106.     }


  1107.     public IDServizio getIdAccordoServizioParteSpecifica(long idAccordo) throws DriverRegistroServiziNotFound, DriverRegistroServiziException {
  1108.         Connection con = null;
  1109.         String nomeMetodo = "getIdAccordoServizioParteSpecifica";
  1110.         DriverControlStationDB driver = null;

  1111.         try {
  1112.             // prendo una connessione
  1113.             con = ControlStationCore.dbM.getConnection();
  1114.             // istanzio il driver
  1115.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  1116.             return IDServizioFactory.getInstance().getIDServizioFromAccordo(driver.getDriverRegistroServiziDB().getAccordoServizioParteSpecifica(idAccordo,con));

  1117.         } catch (DriverRegistroServiziNotFound de) {
  1118.             ControlStationCore.logDebug(getPrefixError(nomeMetodo,  de),de);
  1119.             throw de;
  1120.         } catch (Exception e) {
  1121.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1122.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  1123.         } finally {
  1124.             ControlStationCore.dbM.releaseConnection(con);
  1125.         }

  1126.     }
  1127.    


  1128.     public List<Fruitore> getServiziFruitoriWithServizio(long idServizio) throws DriverRegistroServiziException {
  1129.         Connection con = null;
  1130.         String nomeMetodo = "getServiziFruitoriWithServizio";
  1131.         DriverControlStationDB driver = null;

  1132.         try {
  1133.             // prendo una connessione
  1134.             con = ControlStationCore.dbM.getConnection();
  1135.             // istanzio il driver
  1136.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  1137.             return driver.getDriverRegistroServiziDB().getServiziFruitoriWithServizio(idServizio);
  1138.         } catch (Exception e) {
  1139.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1140.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  1141.         } finally {
  1142.             ControlStationCore.dbM.releaseConnection(con);
  1143.         }
  1144.     }

  1145.     public List<Documento> serviziAllegatiList(long idServizio, ISearch ricerca) throws DriverRegistroServiziException {
  1146.         Connection con = null;
  1147.         String nomeMetodo = "serviziAllegatiList";
  1148.         DriverControlStationDB driver = null;

  1149.         try {
  1150.             // prendo una connessione
  1151.             con = ControlStationCore.dbM.getConnection();
  1152.             // istanzio il driver
  1153.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  1154.             return driver.getDriverRegistroServiziDB().serviziAllegatiList(idServizio, ricerca);
  1155.         } catch (Exception e) {
  1156.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1157.             throw new DriverRegistroServiziException(getPrefixError(nomeMetodo,  e),e);
  1158.         } finally {
  1159.             ControlStationCore.dbM.releaseConnection(con);
  1160.         }
  1161.     }

  1162.    
  1163.     public List<PortaDelegata> serviziFruitoriPorteDelegateList(Long idSoggetto,
  1164.             String tipoServizio, String nomeServizio, Long idServizio,
  1165.             String tipoSoggettoErogatore, String nomeSoggettoErogatore, Long idSoggettoErogatore,
  1166.             ISearch ricerca) throws DriverConfigurazioneException {
  1167.         Connection con = null;
  1168.         String nomeMetodo = "serviziPorteAppList";
  1169.         DriverControlStationDB driver = null;

  1170.         try {
  1171.             // prendo una connessione
  1172.             con = ControlStationCore.dbM.getConnection();
  1173.             // istanzio il driver
  1174.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  1175.             return driver.getDriverConfigurazioneDB().serviziFruitoriPorteDelegateList(idSoggetto,
  1176.                     tipoServizio, nomeServizio, idServizio,
  1177.                     tipoSoggettoErogatore, nomeSoggettoErogatore, idSoggettoErogatore,
  1178.                     ricerca);

  1179.         } catch (Exception e) {
  1180.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1181.             throw new DriverConfigurazioneException(getPrefixError(nomeMetodo,  e),e);
  1182.         } finally {
  1183.             ControlStationCore.dbM.releaseConnection(con);
  1184.         }
  1185.     }
  1186.    
  1187.     public List<MappingFruizionePortaDelegata> serviziFruitoriMappingList(Long idFru, IDSoggetto idSoggettoFruitore,
  1188.             IDServizio idAccordoServizio,
  1189.             ISearch ricerca) throws DriverConfigurazioneException {
  1190.         Connection con = null;
  1191.         String nomeMetodo = "serviziFruitoriMappingList";

  1192.         try {
  1193.             // prendo una connessione
  1194.             con = ControlStationCore.dbM.getConnection();
  1195.             boolean orderByDescrizione = true;
  1196.             boolean ricercaUseOffsetLimit = false; // non esiste paginazione per adesso
  1197.             return DBMappingUtils.mappingFruizionePortaDelegataList(con,this.tipoDB,idFru,idSoggettoFruitore,  
  1198.                     idAccordoServizio,
  1199.                     ricerca, ricercaUseOffsetLimit,
  1200.                     orderByDescrizione);

  1201.         } catch (Exception e) {
  1202.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1203.             throw new DriverConfigurazioneException(getPrefixError(nomeMetodo,  e),e);
  1204.         } finally {
  1205.             ControlStationCore.dbM.releaseConnection(con);
  1206.         }
  1207.     }
  1208.     public List<MappingFruizionePortaDelegata> serviziFruitoriMappingList(IDSoggetto idSoggettoFruitore,
  1209.             IDServizio idAccordoServizio,
  1210.             ISearch ricerca) throws DriverConfigurazioneException {
  1211.         Connection con = null;
  1212.         String nomeMetodo = "serviziFruitoriMappingList";

  1213.         try {
  1214.             // prendo una connessione
  1215.             con = ControlStationCore.dbM.getConnection();
  1216.             boolean orderByDescrizione = true;
  1217.             boolean ricercaUseOffsetLimit = false; // non esiste paginazione per adesso
  1218.             return DBMappingUtils.mappingFruizionePortaDelegataList(con,this.tipoDB,idSoggettoFruitore,  
  1219.                     idAccordoServizio,
  1220.                     ricerca, ricercaUseOffsetLimit,
  1221.                     orderByDescrizione);

  1222.         } catch (Exception e) {
  1223.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1224.             throw new DriverConfigurazioneException(getPrefixError(nomeMetodo,  e),e);
  1225.         } finally {
  1226.             ControlStationCore.dbM.releaseConnection(con);
  1227.         }
  1228.     }
  1229.    
  1230.     public void deleteMappingFruizione(IDServizio idServizio, IDSoggetto idFruitore, IDPortaDelegata idPortaDelegata) throws DriverConfigurazioneException {
  1231.         Connection con = null;
  1232.         String nomeMetodo = "deleteMappingFruizione";
  1233.         try{
  1234.             con = ControlStationCore.dbM.getConnection();
  1235.             DBMappingUtils.deleteMappingFruizione(idServizio, idFruitore, idPortaDelegata, con, this.tipoDB);
  1236.         } catch (Exception e) {
  1237.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1238.             throw new DriverConfigurazioneException(getPrefixError(nomeMetodo,  e),e);
  1239.         } finally {
  1240.             ControlStationCore.dbM.releaseConnection(con);
  1241.         }
  1242.     }
  1243.    
  1244.     public boolean isDefaultMappingFruizione(IDServizio idServizio, IDSoggetto idFruitore, IDPortaDelegata idPortaDelegata) throws DriverConfigurazioneException {
  1245.         Connection con = null;
  1246.         String nomeMetodo = "isDefaultMappingFruizione";
  1247.         try{
  1248.             con = ControlStationCore.dbM.getConnection();
  1249.             return DBMappingUtils.checkMappingFruizione(idServizio, idFruitore, idPortaDelegata, true, con, this.tipoDB);
  1250.         } catch (Exception e) {
  1251.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1252.             throw new DriverConfigurazioneException(getPrefixError(nomeMetodo,  e),e);
  1253.         } finally {
  1254.             ControlStationCore.dbM.releaseConnection(con);
  1255.         }
  1256.     }
  1257.    
  1258.     public boolean existFruizioniServizioWithoutConnettore(long idServizio, boolean escludiSoggettiEsterni) throws DriverControlStationException {
  1259.         Connection con = null;
  1260.         String nomeMetodo = "existServizio";
  1261.         DriverControlStationDB driver = null;

  1262.         try {
  1263.             // prendo una connessione
  1264.             con = ControlStationCore.dbM.getConnection();
  1265.             // istanzio il driver
  1266.             driver = new DriverControlStationDB(con, null, this.tipoDB);

  1267.             return driver.getDriverRegistroServiziDB().existFruizioniServizioWithoutConnettore(idServizio,escludiSoggettiEsterni);

  1268.         } catch (Exception e) {
  1269.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1270.             throw new DriverControlStationException(getPrefixError(nomeMetodo,  e),e);
  1271.         } finally {
  1272.             ControlStationCore.dbM.releaseConnection(con);
  1273.         }
  1274.     }
  1275.    
  1276.     public boolean filterFruitoriRispettoAutenticazione(AccordoServizioParteSpecifica asps) throws DriverConfigurazioneException{
  1277.         List<PortaApplicativa> lista = this.serviziPorteAppList(asps.getTipo(),asps.getNome(),asps.getVersione(),
  1278.                 asps.getId().intValue(), asps.getIdSoggetto(), new ConsoleSearch(true));
  1279.         return lista.size()==1;
  1280.     }
  1281.     public boolean filterFruitoriRispettoAutenticazione(IDServizio idSE) throws DriverConfigurazioneException, DriverRegistroServiziNotFound, DriverRegistroServiziException{
  1282.         AccordoServizioParteSpecifica asps = this.getServizio(idSE);
  1283.         return filterFruitoriRispettoAutenticazione(asps);
  1284.     }
  1285.    
  1286.    
  1287.     public List<IDServizio> getErogazioni(List<String> protocolli,
  1288.             String gruppo,
  1289.             String tipoSoggetto, String nomeSoggetto) throws DriverControlStationException {
  1290.         String nomeMetodo = "getErogazioni";
  1291.         Connection con = null;
  1292.         DriverControlStationDB driver = null;
  1293.         try {
  1294.             // prendo una connessione
  1295.             con = ControlStationCore.dbM.getConnection();
  1296.            
  1297.             // istanzio il driver
  1298.             driver = new DriverControlStationDB(con, null, this.tipoDB);
  1299.            
  1300.             return driver.getErogazioni(protocolli, gruppo, tipoSoggetto, nomeSoggetto);
  1301.         } catch (Exception e) {
  1302.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1303.             throw new DriverControlStationException(getPrefixError(nomeMetodo,  e),e);
  1304.         }finally{
  1305.             ControlStationCore.dbM.releaseConnection(con);
  1306.         }
  1307.     }
  1308.     public List<IDServizio> getErogazioni(List<String> protocolli,
  1309.             String gruppo,
  1310.             String tipoSoggetto, String nomeSoggetto,
  1311.             String tipoServizio ,String nomeServizio, Integer versioneServizio,
  1312.             String nomeAzione) throws DriverControlStationException {
  1313.         String nomeMetodo = "getErogazioni";
  1314.         Connection con = null;
  1315.         DriverControlStationDB driver = null;
  1316.         try {
  1317.             // prendo una connessione
  1318.             con = ControlStationCore.dbM.getConnection();
  1319.            
  1320.             // istanzio il driver
  1321.             driver = new DriverControlStationDB(con, null, this.tipoDB);
  1322.            
  1323.             return driver.getErogazioni(protocolli, gruppo, tipoSoggetto, nomeSoggetto, tipoServizio, nomeServizio, versioneServizio, nomeAzione);
  1324.         } catch (Exception e) {
  1325.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1326.             throw new DriverControlStationException(getPrefixError(nomeMetodo,  e),e);
  1327.         }finally{
  1328.             ControlStationCore.dbM.releaseConnection(con);
  1329.         }
  1330.     }
  1331.    
  1332.    
  1333.     public List<IDFruizione> getFruizioni(List<String> protocolli,
  1334.             String gruppo,
  1335.             String tipoSoggetto, String nomeSoggetto) throws DriverControlStationException {
  1336.         String nomeMetodo = "getFruizioni";
  1337.         Connection con = null;
  1338.         DriverControlStationDB driver = null;
  1339.         try {
  1340.             // prendo una connessione
  1341.             con = ControlStationCore.dbM.getConnection();
  1342.            
  1343.             // istanzio il driver
  1344.             driver = new DriverControlStationDB(con, null, this.tipoDB);
  1345.            
  1346.             return driver.getFruizioni(protocolli, gruppo, tipoSoggetto, nomeSoggetto);
  1347.         } catch (Exception e) {
  1348.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1349.             throw new DriverControlStationException(getPrefixError(nomeMetodo,  e),e);
  1350.         }finally{
  1351.             ControlStationCore.dbM.releaseConnection(con);
  1352.         }
  1353.     }
  1354.     public List<IDFruizione> getFruizioni(List<String> protocolli,
  1355.             String gruppo,
  1356.             String tipoSoggetto, String nomeSoggetto,
  1357.             String tipoErogatore, String nomeErogatore,
  1358.             String tipoServizio ,String nomeServizio, Integer versioneServizio,
  1359.             String nomeAzione) throws DriverControlStationException {
  1360.         String nomeMetodo = "getFruizioni";
  1361.         Connection con = null;
  1362.         DriverControlStationDB driver = null;
  1363.         try {
  1364.             // prendo una connessione
  1365.             con = ControlStationCore.dbM.getConnection();
  1366.            
  1367.             // istanzio il driver
  1368.             driver = new DriverControlStationDB(con, null, this.tipoDB);
  1369.            
  1370.             return driver.getFruizioni(protocolli, gruppo, tipoSoggetto, nomeSoggetto, tipoErogatore, nomeErogatore, tipoServizio, nomeServizio, versioneServizio, nomeAzione);
  1371.         } catch (Exception e) {
  1372.             ControlStationCore.logError(getPrefixError(nomeMetodo,  e), e);
  1373.             throw new DriverControlStationException(getPrefixError(nomeMetodo,  e),e);
  1374.         }finally{
  1375.             ControlStationCore.dbM.releaseConnection(con);
  1376.         }
  1377.     }
  1378.    
  1379. }