DBOggettiInUsoUtils.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.protocol.engine.utils;

  21. import java.sql.Connection;
  22. import java.sql.PreparedStatement;
  23. import java.sql.ResultSet;
  24. import java.util.ArrayList;
  25. import java.util.HashMap;
  26. import java.util.List;
  27. import java.util.Map;

  28. import org.openspcoop2.core.commons.ErrorsHandlerCostant;
  29. import org.openspcoop2.core.config.CanaleConfigurazione;
  30. import org.openspcoop2.core.config.constants.CostantiConfigurazione;
  31. import org.openspcoop2.core.constants.CostantiDB;
  32. import org.openspcoop2.core.controllo_traffico.IdPolicy;
  33. import org.openspcoop2.core.id.IDAccordo;
  34. import org.openspcoop2.core.id.IDAccordoCooperazione;
  35. import org.openspcoop2.core.id.IDGenericProperties;
  36. import org.openspcoop2.core.id.IDGruppo;
  37. import org.openspcoop2.core.id.IDPortType;
  38. import org.openspcoop2.core.id.IDPortTypeAzione;
  39. import org.openspcoop2.core.id.IDPortaApplicativa;
  40. import org.openspcoop2.core.id.IDPortaDelegata;
  41. import org.openspcoop2.core.id.IDResource;
  42. import org.openspcoop2.core.id.IDRuolo;
  43. import org.openspcoop2.core.id.IDScope;
  44. import org.openspcoop2.core.id.IDServizio;
  45. import org.openspcoop2.core.id.IDServizioApplicativo;
  46. import org.openspcoop2.core.id.IDSoggetto;
  47. import org.openspcoop2.core.mapping.DBMappingUtils;
  48. import org.openspcoop2.core.mapping.MappingErogazionePortaApplicativa;
  49. import org.openspcoop2.core.mapping.MappingFruizionePortaDelegata;
  50. import org.openspcoop2.core.registry.driver.IDServizioFactory;
  51. import org.openspcoop2.protocol.engine.ProtocolFactoryManager;
  52. import org.openspcoop2.protocol.engine.constants.Costanti;
  53. import org.openspcoop2.protocol.engine.constants.ModalitaIdentificazioneAzione;
  54. import org.openspcoop2.utils.UtilsException;
  55. import org.openspcoop2.utils.jdbc.JDBCUtilities;
  56. import org.openspcoop2.utils.sql.ISQLQueryObject;
  57. import org.openspcoop2.utils.sql.SQLObjectFactory;

  58. /**
  59.  * DBOggettiInUsoUtils
  60.  *
  61.  * @author Andrea Poli (apoli@link.it)
  62.  * @author $Author$
  63.  * @version $Rev$, $Date$
  64.  *
  65.  */
  66. public class DBOggettiInUsoUtils  {

  67.    
  68.     protected static String getProtocolPrefix(String protocollo) throws UtilsException {
  69.         try {
  70.             return "["+NamingUtils.getLabelProtocollo(protocollo)+"] ";
  71.         } catch (Exception se) {
  72.             throw new UtilsException(se.getMessage(),se);
  73.         }
  74.     }
  75.     protected static String getSubjectSuffix(String protocollo, IDSoggetto idSoggetto)throws UtilsException {
  76.         try {
  77.             return " ("+NamingUtils.getLabelSoggetto(protocollo, idSoggetto)+")";
  78.         } catch (Exception se) {
  79.             throw new UtilsException(se.getMessage(),se);
  80.         }
  81.     }
  82.     public static String formatList(List<String> whereIsInUso, String separator) {
  83.         StringBuilder sb = new StringBuilder();
  84.         for (String v : whereIsInUso) {
  85.             sb.append(separator);
  86.             sb.append("- ");
  87.             sb.append(v);
  88.         }
  89.         return sb.toString();
  90.     }
  91.     protected static ResultPorta formatPortaDelegata(String nomePorta, String tipoDB, Connection con, boolean normalizeObjectIds) throws Exception {
  92.        
  93.         PreparedStatement stmt = null;
  94.         ResultSet risultato = null;
  95.         String queryString;

  96.         try {
  97.        
  98.             ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(tipoDB);
  99.             sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  100.             sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
  101.             sqlQueryObject.addSelectField("tipo_soggetto");
  102.             sqlQueryObject.addSelectField("nome_soggetto");
  103.             sqlQueryObject.addSelectField(CostantiDB.PORTE_DELEGATE+".nome_porta");
  104.             sqlQueryObject.addSelectField(CostantiDB.PORTE_DELEGATE+".tipo_soggetto_erogatore");
  105.             sqlQueryObject.addSelectField(CostantiDB.PORTE_DELEGATE+".nome_soggetto_erogatore");
  106.             sqlQueryObject.addSelectField(CostantiDB.PORTE_DELEGATE+".tipo_servizio");
  107.             sqlQueryObject.addSelectField(CostantiDB.PORTE_DELEGATE+".nome_servizio");
  108.             sqlQueryObject.addSelectField(CostantiDB.PORTE_DELEGATE+".versione_servizio");
  109.             sqlQueryObject.setANDLogicOperator(true);
  110.             sqlQueryObject.setSelectDistinct(true);
  111.             sqlQueryObject.addWhereCondition(CostantiDB.PORTE_DELEGATE+".nome_porta = ?");
  112.             sqlQueryObject.addWhereCondition(CostantiDB.PORTE_DELEGATE+".id_soggetto = "+CostantiDB.SOGGETTI+".id");
  113.             queryString = sqlQueryObject.createSQLQuery();
  114.             stmt = con.prepareStatement(queryString);
  115.             stmt.setString(1, nomePorta);
  116.             risultato = stmt.executeQuery();
  117.             if (risultato.next()) {
  118.                 String tipo_soggetto = risultato.getString("tipo_soggetto");
  119.                 String nome_soggetto = risultato.getString("nome_soggetto");
  120.                 String nome = risultato.getString("nome_porta");
  121.                 IDSoggetto idSoggetto = new IDSoggetto(tipo_soggetto, nome_soggetto);
  122.                 if(normalizeObjectIds) {
  123.                    
  124.                     String tipoSoggettoErogatore = risultato.getString("tipo_soggetto_erogatore");
  125.                     String nomeSoggettoErogatore = risultato.getString("nome_soggetto_erogatore");
  126.                     IDSoggetto idSoggettoErogatore = null;
  127.                     if(tipoSoggettoErogatore!=null && !"".equals(tipoSoggettoErogatore) &&
  128.                             nomeSoggettoErogatore!=null && !"".equals(nomeSoggettoErogatore)) {
  129.                         idSoggettoErogatore = new IDSoggetto(tipoSoggettoErogatore, nomeSoggettoErogatore);
  130.                     }
  131.                    
  132.                     String tipoServizio = risultato.getString("tipo_servizio");
  133.                     String nomeServizio = risultato.getString("nome_servizio");
  134.                     Integer versioneServizio = risultato.getInt("versione_servizio");
  135.                    
  136.                     String protocollo = ProtocolFactoryManager.getInstance().getProtocolByOrganizationType(tipo_soggetto);
  137.                    
  138.                     MappingFruizionePortaDelegata mappingPD = null;
  139.                     if(tipoServizio!=null && !"".equals(tipoServizio) &&
  140.                             nomeServizio!=null && !"".equals(nomeServizio) &&
  141.                                     versioneServizio!=null && versioneServizio>0) {
  142.                         IDPortaDelegata idPD = new IDPortaDelegata();
  143.                         idPD.setNome(nome);
  144.                         IDServizio idServizio = IDServizioFactory.getInstance().getIDServizioFromValues(tipoServizio, nomeServizio, idSoggettoErogatore, versioneServizio);
  145.                         boolean existsMapping = DBMappingUtils.existsMappingFruizione(idServizio, idSoggetto, idPD, con, tipoDB);
  146.                         if(existsMapping) {
  147.                             mappingPD = DBMappingUtils.getMappingFruizione(idServizio, idSoggetto, idPD, con, tipoDB);
  148.                         }
  149.                     }
  150.                     if(mappingPD!=null) {
  151.                         String suffixGruppo = "";
  152.                         if(!mappingPD.isDefault()) {
  153.                             suffixGruppo = " (Gruppo: "+mappingPD.getDescrizione()+")";
  154.                         }
  155.                         ResultPorta result = new ResultPorta();
  156.                         result.label=getProtocolPrefix(protocollo)+
  157.                                 NamingUtils.getLabelAccordoServizioParteSpecifica(protocollo, mappingPD.getIdServizio())+
  158.                                 " (Fruitore:"+NamingUtils.getLabelSoggetto(protocollo, idSoggetto)+")"+
  159.                                 suffixGruppo;
  160.                         result.mapping=true;
  161.                         return result;
  162.                     }
  163.                     else {
  164.                         ResultPorta result = new ResultPorta();
  165.                         result.label=getProtocolPrefix(protocollo)+nome+getSubjectSuffix(protocollo, idSoggetto);
  166.                         return result;
  167.                     }
  168.                 }
  169.                 else {
  170.                     ResultPorta result = new ResultPorta();
  171.                     result.label=tipo_soggetto + "/" + nome_soggetto+"_"+nome;
  172.                     return result;
  173.                 }
  174.                
  175.             }
  176.            
  177.             throw new Exception("Porta Delegata '"+nomePorta+"' not found");
  178.            
  179.         } finally {
  180.             // Chiudo statement and resultset
  181.             JDBCUtilities.closeResources(risultato, stmt);
  182.         }
  183.     }
  184.     protected static ResultPorta formatPortaApplicativa(String nomePorta, String tipoDB, Connection con, boolean normalizeObjectIds) throws Exception {
  185.         PreparedStatement stmt = null;
  186.         ResultSet risultato = null;
  187.         String queryString;

  188.         try {
  189.             ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(tipoDB);
  190.             sqlQueryObject.addFromTable(CostantiDB.PORTE_APPLICATIVE);
  191.             sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
  192.             sqlQueryObject.addSelectField("tipo_soggetto");
  193.             sqlQueryObject.addSelectField("nome_soggetto");
  194.             sqlQueryObject.addSelectField(CostantiDB.PORTE_APPLICATIVE+".nome_porta");
  195.             sqlQueryObject.addSelectField(CostantiDB.PORTE_APPLICATIVE+".tipo_servizio");
  196.             sqlQueryObject.addSelectField(CostantiDB.PORTE_APPLICATIVE+".servizio");
  197.             sqlQueryObject.addSelectField(CostantiDB.PORTE_APPLICATIVE+".versione_servizio");
  198.             sqlQueryObject.setANDLogicOperator(true);
  199.             sqlQueryObject.setSelectDistinct(true);
  200.             sqlQueryObject.addWhereCondition(CostantiDB.PORTE_APPLICATIVE+".nome_porta = ?");
  201.             sqlQueryObject.addWhereCondition(CostantiDB.PORTE_APPLICATIVE+".id_soggetto = "+CostantiDB.SOGGETTI+".id");
  202.             queryString = sqlQueryObject.createSQLQuery();
  203.             stmt = con.prepareStatement(queryString);
  204.             stmt.setString(1, nomePorta);
  205.             risultato = stmt.executeQuery();
  206.             if (risultato.next()) {
  207.                 String tipo_soggetto = risultato.getString("tipo_soggetto");
  208.                 String nome_soggetto = risultato.getString("nome_soggetto");
  209.                 String nome = risultato.getString("nome_porta");
  210.                 IDSoggetto idSoggetto = new IDSoggetto(tipo_soggetto, nome_soggetto);
  211.                 if(normalizeObjectIds) {
  212.                    
  213.                     String tipoServizio = risultato.getString("tipo_servizio");
  214.                     String nomeServizio = risultato.getString("servizio");
  215.                     Integer versioneServizio = risultato.getInt("versione_servizio");
  216.                    
  217.                     String protocollo = ProtocolFactoryManager.getInstance().getProtocolByOrganizationType(tipo_soggetto);
  218.                    
  219.                     MappingErogazionePortaApplicativa mappingPA = null;
  220.                     if(tipoServizio!=null && !"".equals(tipoServizio) &&
  221.                             nomeServizio!=null && !"".equals(nomeServizio) &&
  222.                                     versioneServizio!=null && versioneServizio>0) {
  223.                         IDPortaApplicativa idPA = new IDPortaApplicativa();
  224.                         idPA.setNome(nome);
  225.                         IDServizio idServizio = IDServizioFactory.getInstance().getIDServizioFromValues(tipoServizio, nomeServizio, idSoggetto, versioneServizio);
  226.                         boolean existsMapping = DBMappingUtils.existsMappingErogazione(idServizio, idPA, con, tipoDB);
  227.                         if(existsMapping) {
  228.                             mappingPA = DBMappingUtils.getMappingErogazione(idServizio, idPA, con, tipoDB);
  229.                         }
  230.                     }
  231.                     if(mappingPA!=null) {
  232.                         String suffixGruppo = "";
  233.                         if(!mappingPA.isDefault()) {
  234.                             suffixGruppo = " (Gruppo: "+mappingPA.getDescrizione()+")";
  235.                         }
  236.                         ResultPorta result = new ResultPorta();
  237.                         result.label=getProtocolPrefix(protocollo)+
  238.                                 NamingUtils.getLabelAccordoServizioParteSpecifica(protocollo, mappingPA.getIdServizio())+
  239.                                 suffixGruppo;
  240.                         result.mapping = true;
  241.                         result.erogazioneModi = Costanti.MODIPA_PROTOCOL_NAME.equals(protocollo);
  242.                         return result;
  243.                     }
  244.                     else {
  245.                         ResultPorta result = new ResultPorta();
  246.                         result.label=getProtocolPrefix(protocollo)+nome+getSubjectSuffix(protocollo, idSoggetto);
  247.                         result.erogazioneModi = Costanti.MODIPA_PROTOCOL_NAME.equals(protocollo);
  248.                         return result;
  249.                     }
  250.                    
  251.                 }
  252.                 else {
  253.                     ResultPorta result = new ResultPorta();
  254.                     result.label=tipo_soggetto + "/" + nome_soggetto+"_"+nome;
  255.                    
  256.                     if(tipo_soggetto!=null) {
  257.                         String protocollo = ProtocolFactoryManager.getInstance().getProtocolByOrganizationType(tipo_soggetto);
  258.                         result.erogazioneModi = Costanti.MODIPA_PROTOCOL_NAME.equals(protocollo);
  259.                     }
  260.                    
  261.                     return result;
  262.                 }
  263.                
  264.             }
  265.            
  266.             throw new Exception("Porta Delegata '"+nomePorta+"' not found");
  267.            
  268.         } finally {
  269.             // Chiudo statement and resultset
  270.             JDBCUtilities.closeResources(risultato, stmt);
  271.         }
  272.     }

  273.     public static void formatConnettori(List<Long> idConnettori,Map<ErrorsHandlerCostant, List<String>> whereIsInUso,
  274.             Connection con, boolean normalizeObjectIds, String tipoDB) throws Exception {
  275.         if(idConnettori!=null && !idConnettori.isEmpty()) {
  276.            
  277.             List<String> connettorePA_list = whereIsInUso.get(ErrorsHandlerCostant.CONNETTORE_PA);
  278.             List<String> connettorePD_list = whereIsInUso.get(ErrorsHandlerCostant.CONNETTORE_PD);
  279.             List<String> mapping_connettorePA_list = whereIsInUso.get(ErrorsHandlerCostant.CONNETTORE_MAPPING_PA);
  280.             List<String> mapping_connettorePD_list = whereIsInUso.get(ErrorsHandlerCostant.CONNETTORE_MAPPING_PD);
  281.            
  282.             if (connettorePA_list == null) {
  283.                 connettorePA_list = new ArrayList<>();
  284.                 whereIsInUso.put(ErrorsHandlerCostant.CONNETTORE_PA, connettorePA_list);
  285.             }
  286.             if (connettorePD_list == null) {
  287.                 connettorePD_list = new ArrayList<>();
  288.                 whereIsInUso.put(ErrorsHandlerCostant.CONNETTORE_PD, connettorePD_list);
  289.             }
  290.            
  291.             if (mapping_connettorePA_list == null) {
  292.                 mapping_connettorePA_list = new ArrayList<>();
  293.                 whereIsInUso.put(ErrorsHandlerCostant.CONNETTORE_MAPPING_PA, mapping_connettorePA_list);
  294.             }
  295.             if (mapping_connettorePD_list == null) {
  296.                 mapping_connettorePD_list = new ArrayList<>();
  297.                 whereIsInUso.put(ErrorsHandlerCostant.CONNETTORE_MAPPING_PD, mapping_connettorePD_list);
  298.             }
  299.            
  300.             List<Long> idFruizioniDefault = new ArrayList<>();
  301.            
  302.             List<Long> idFruizioniGruppi_idFruizione = new ArrayList<>();
  303.             List<Long> idFruizioniGruppi_id = new ArrayList<>();
  304.             Map<Long,List<String>> idFruizioniGruppi_azioni = new HashMap<Long, List<String>>();
  305.            
  306.             List<Long> idServiziApplicativi = new ArrayList<>();
  307.             List<String> idServiziApplicativi_server = new ArrayList<>();
  308.             List<String> idServiziApplicativi_nome = new ArrayList<>();
  309.            
  310.             PreparedStatement stmt = null;
  311.             ResultSet risultato = null;
  312.             String queryString;

  313.             try {
  314.                                
  315.                 for (Long idConnettore : idConnettori) {
  316.                    
  317.                    
  318.                     // Controllo che il connettore non sia in uso nelle porte applicative sia di default che dei gruppi
  319.                    
  320.                     ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(tipoDB);
  321.                     sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI);
  322.                     sqlQueryObject.addSelectField("id");
  323.                     sqlQueryObject.addSelectField("tipo");
  324.                     sqlQueryObject.addSelectField("nome");
  325.                     sqlQueryObject.setANDLogicOperator(true);
  326.                     sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+".id_connettore_inv=?");
  327.                     queryString = sqlQueryObject.createSQLQuery();
  328.                     stmt = con.prepareStatement(queryString);
  329.                     stmt.setLong(1, idConnettore);
  330.                     risultato = stmt.executeQuery();
  331.                     while (risultato.next()) {
  332.                         Long id = risultato.getLong("id");
  333.                         String tipo = risultato.getString("tipo");
  334.                         String nome = risultato.getString("nome");
  335.                         idServiziApplicativi.add(id);
  336.                         idServiziApplicativi_server.add(tipo);
  337.                         idServiziApplicativi_nome.add(nome);
  338.                     }
  339.                     risultato.close();
  340.                     stmt.close();
  341.                    
  342.                    
  343.                     // Controllo che il connettore non sia in uso nelle porte delegate di default
  344.                    
  345.                     sqlQueryObject = SQLObjectFactory.createSQLQueryObject(tipoDB);
  346.                     sqlQueryObject.addFromTable(CostantiDB.SERVIZI_FRUITORI);
  347.                     sqlQueryObject.addSelectField("id");
  348.                     sqlQueryObject.setANDLogicOperator(true);
  349.                     sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_FRUITORI+".id_connettore=?");
  350.                     queryString = sqlQueryObject.createSQLQuery();
  351.                     stmt = con.prepareStatement(queryString);
  352.                     stmt.setLong(1, idConnettore);
  353.                     risultato = stmt.executeQuery();
  354.                     while (risultato.next()) {
  355.                         Long id = risultato.getLong("id");
  356.                         idFruizioniDefault.add(id);
  357.                     }
  358.                     risultato.close();
  359.                     stmt.close();
  360.                    
  361.                    
  362.                     // Controllo che il connettore non sia in uso nelle porte delegate associate ai gruppi
  363.                    
  364.                     sqlQueryObject = SQLObjectFactory.createSQLQueryObject(tipoDB);
  365.                     sqlQueryObject.addFromTable(CostantiDB.SERVIZI_FRUITORI_AZIONI);
  366.                     sqlQueryObject.addSelectField("id_fruizione");
  367.                     sqlQueryObject.addSelectField("id");
  368.                     sqlQueryObject.setANDLogicOperator(true);
  369.                     sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_FRUITORI_AZIONI+".id_connettore=?");
  370.                     queryString = sqlQueryObject.createSQLQuery();
  371.                     stmt = con.prepareStatement(queryString);
  372.                     stmt.setLong(1, idConnettore);
  373.                     risultato = stmt.executeQuery();
  374.                     while (risultato.next()) {
  375.                         Long idF = risultato.getLong("id_fruizione");
  376.                         idFruizioniGruppi_idFruizione.add(idF);
  377.                        
  378.                         Long id = risultato.getLong("id");
  379.                         idFruizioniGruppi_id.add(id);
  380.                     }
  381.                     risultato.close();
  382.                     stmt.close();
  383.                    
  384.                     if(!idFruizioniGruppi_id.isEmpty()) {
  385.                         for (int i = 0; i < idFruizioniGruppi_id.size(); i++) {
  386.                            
  387.                             Long id = idFruizioniGruppi_id.get(0);
  388.                             Long idF = idFruizioniGruppi_idFruizione.get(0);
  389.                            
  390.                             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(tipoDB);
  391.                             sqlQueryObject.addFromTable(CostantiDB.SERVIZI_FRUITORI_AZIONE);
  392.                             sqlQueryObject.addFromTable(CostantiDB.SERVIZI_FRUITORI_AZIONI);
  393.                             sqlQueryObject.addSelectField("nome_azione");
  394.                             sqlQueryObject.setANDLogicOperator(true);
  395.                             sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_FRUITORI_AZIONI+".id=?");
  396.                             sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_FRUITORI_AZIONE+".id_fruizione_azioni="+CostantiDB.SERVIZI_FRUITORI_AZIONI+".id");
  397.                             queryString = sqlQueryObject.createSQLQuery();
  398.                             stmt = con.prepareStatement(queryString);
  399.                             stmt.setLong(1, id);
  400.                             risultato = stmt.executeQuery();
  401.                             List<String> azioni = new ArrayList<>();
  402.                             while (risultato.next()) {
  403.                                 String nomeAzione = risultato.getString("nome_azione");
  404.                                 azioni.add(nomeAzione);
  405.                             }
  406.                             risultato.close();
  407.                             stmt.close();
  408.                            
  409.                             idFruizioniGruppi_azioni.put(idF, azioni);
  410.                         }
  411.                     }
  412.                    
  413.                 }
  414.                
  415.                
  416.                
  417.                 // Se ho rilevato che il connettore è in uso nelle porte applicative (sia di default che dei gruppi) traduco questa informazione
  418.                
  419.                 if(idServiziApplicativi!=null && !idServiziApplicativi.isEmpty()) {
  420.                     for (int i = 0; i < idServiziApplicativi.size(); i++) {
  421.                         Long idServiziApplicativo = idServiziApplicativi.get(i);
  422.                         String suffix = "";
  423.                         String tipoApplicativo = idServiziApplicativi_server.get(i);
  424.                         if(CostantiConfigurazione.SERVER.equals(tipoApplicativo)) {
  425.                             suffix = " (Applicativo Server: "+idServiziApplicativi_nome.get(i)+")";
  426.                         }
  427.                        
  428.                         ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(tipoDB);
  429.                         sqlQueryObject.addFromTable(CostantiDB.PORTE_APPLICATIVE_SA);
  430.                         sqlQueryObject.addFromTable(CostantiDB.PORTE_APPLICATIVE);
  431.                         sqlQueryObject.setSelectDistinct(true);
  432.                         sqlQueryObject.addSelectField("nome_porta");
  433.                         sqlQueryObject.addSelectField("connettore_nome");
  434.                         sqlQueryObject.setANDLogicOperator(true);
  435.                         sqlQueryObject.addWhereCondition(CostantiDB.PORTE_APPLICATIVE_SA+".id_servizio_applicativo=?");
  436.                         sqlQueryObject.addWhereCondition(CostantiDB.PORTE_APPLICATIVE+".id="+CostantiDB.PORTE_APPLICATIVE_SA+".id_porta");
  437.                         queryString = sqlQueryObject.createSQLQuery();
  438.                         stmt = con.prepareStatement(queryString);
  439.                         stmt.setLong(1, idServiziApplicativo);
  440.                         risultato = stmt.executeQuery();
  441.                         while (risultato.next()) {
  442.                             String nomePorta = risultato.getString("nome_porta");
  443.                            
  444.                             String nomeConnettore = risultato.getString("connettore_nome");
  445.                             String labelNomeConnettore = "";
  446.                             if(nomeConnettore!=null && !"".equals(nomeConnettore)) {
  447.                                 labelNomeConnettore = " (Connettore: "+nomeConnettore+")";
  448.                             }
  449.                            
  450.                             ResultPorta resultPorta = formatPortaApplicativa(nomePorta, tipoDB, con, normalizeObjectIds);
  451.                             if(resultPorta.mapping) {
  452.                                 mapping_connettorePA_list.add(resultPorta.label+labelNomeConnettore+suffix);
  453.                             }
  454.                             else {
  455.                                 connettorePA_list.add(resultPorta.label+labelNomeConnettore+suffix);
  456.                             }
  457.                         }
  458.                         risultato.close();
  459.                         stmt.close();
  460.                        
  461.                     }
  462.                 }
  463.                
  464.                
  465.                
  466.                 // Se ho rilevato che il connettore è in uso nelle porte delegate di default traduco questa informazione
  467.                
  468.                 if(idFruizioniDefault!=null && !idFruizioniDefault.isEmpty()) {
  469.                    
  470.                     for (Long idFruizione : idFruizioniDefault) {
  471.                        
  472.                         ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(tipoDB);
  473.                         sqlQueryObject.addFromTable(CostantiDB.MAPPING_FRUIZIONE_PD);
  474.                         sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  475.                         sqlQueryObject.setSelectDistinct(true);
  476.                         sqlQueryObject.addSelectField("nome_porta");
  477.                         sqlQueryObject.setANDLogicOperator(true);
  478.                         sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_FRUIZIONE_PD+".id_fruizione=?");
  479.                         sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_FRUIZIONE_PD+".id_porta="+CostantiDB.PORTE_DELEGATE+".id");
  480.                         sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_FRUIZIONE_PD+".is_default=?");
  481.                         queryString = sqlQueryObject.createSQLQuery();
  482.                         stmt = con.prepareStatement(queryString);
  483.                         stmt.setLong(1, idFruizione);
  484.                         stmt.setInt(2, CostantiDB.TRUE);
  485.                         risultato = stmt.executeQuery();
  486.                         while (risultato.next()) {
  487.                             String nomePorta = risultato.getString("nome_porta");
  488.                             ResultPorta resultPorta = formatPortaDelegata(nomePorta, tipoDB, con, normalizeObjectIds);
  489.                             if(resultPorta.mapping) {
  490.                                 mapping_connettorePD_list.add(resultPorta.label);
  491.                             }
  492.                             else {
  493.                                 connettorePD_list.add(resultPorta.label);
  494.                             }
  495.                         }
  496.                         risultato.close();
  497.                         stmt.close();
  498.                        
  499.                     }
  500.                    
  501.                 }
  502.            
  503.                
  504.                
  505.                 // Se ho rilevato che il token è in uso nelle porte delegate di qualche gruppo traduco questa informazione
  506.                
  507.                 if(idFruizioniGruppi_idFruizione!=null && !idFruizioniGruppi_idFruizione.isEmpty()) {
  508.                    
  509.                     for (Long idFruizione : idFruizioniGruppi_idFruizione) {
  510.                        
  511.                         ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(tipoDB);
  512.                         sqlQueryObject.addFromTable(CostantiDB.MAPPING_FRUIZIONE_PD);
  513.                         sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  514.                         sqlQueryObject.setSelectDistinct(true);
  515.                         sqlQueryObject.addSelectField("nome_porta");
  516.                         sqlQueryObject.setANDLogicOperator(true);
  517.                         sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_FRUIZIONE_PD+".id_fruizione=?");
  518.                         sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_FRUIZIONE_PD+".id_porta="+CostantiDB.PORTE_DELEGATE+".id");
  519.                         sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_FRUIZIONE_PD+".is_default=?");
  520.                         sqlQueryObject.addWhereCondition(CostantiDB.PORTE_DELEGATE+".mode_azione=?");
  521.                        
  522.                         List<String> azioni = idFruizioniGruppi_azioni.get(idFruizione);
  523.                         if(azioni!=null && !azioni.isEmpty()) {
  524.                             for (@SuppressWarnings("unused") String azione : azioni) {
  525.                                 ISQLQueryObject sqlQueryObjectAzione = SQLObjectFactory.createSQLQueryObject(tipoDB);
  526.                                 sqlQueryObjectAzione.addFromTable(CostantiDB.PORTE_DELEGATE_AZIONI);
  527.                                 sqlQueryObjectAzione.addSelectField(CostantiDB.PORTE_DELEGATE_AZIONI+".azione");
  528.                                 sqlQueryObjectAzione.setANDLogicOperator(true);
  529.                                 sqlQueryObjectAzione.addWhereCondition(CostantiDB.PORTE_DELEGATE_AZIONI+".id_porta="+CostantiDB.PORTE_DELEGATE+".id");
  530.                                 sqlQueryObjectAzione.addWhereCondition(CostantiDB.PORTE_DELEGATE_AZIONI+".azione=?");
  531.                                 sqlQueryObject.addWhereExistsCondition(false, sqlQueryObjectAzione);
  532.                             }
  533.                         }
  534.                        
  535.                         queryString = sqlQueryObject.createSQLQuery();
  536.                         stmt = con.prepareStatement(queryString);
  537.                         int index = 1;
  538.                         stmt.setLong(index++, idFruizione);
  539.                         stmt.setInt(index++, CostantiDB.FALSE);
  540.                         stmt.setString(index++, ModalitaIdentificazioneAzione.DELEGATED_BY.getValue());
  541.                         if(azioni!=null && !azioni.isEmpty()) {
  542.                             for (String azione : azioni) {
  543.                                 stmt.setString(index++, azione);
  544.                             }
  545.                         }
  546.                         risultato = stmt.executeQuery();
  547.                         while (risultato.next()) {
  548.                             String nomePorta = risultato.getString("nome_porta");
  549.                             ResultPorta resultPorta = formatPortaDelegata(nomePorta, tipoDB, con, normalizeObjectIds);
  550.                             if(resultPorta.mapping) {
  551.                                 mapping_connettorePD_list.add(resultPorta.label);
  552.                             }
  553.                             else {
  554.                                 connettorePD_list.add(resultPorta.label);
  555.                             }
  556.                         }
  557.                         risultato.close();
  558.                         stmt.close();
  559.                        
  560.                     }
  561.                    
  562.                 }
  563.             }
  564.             finally {
  565.                 // Chiudo statement and resultset
  566.                 JDBCUtilities.closeResources(risultato, stmt);
  567.             }
  568.         }
  569.     }

  570.     public static String formatGenericProperties(String tipologia, String nome) {
  571.        
  572.         /*
  573.         String template = null;
  574.         if(CostantiConfigurazione.GENERIC_PROPERTIES_TOKEN_TIPOLOGIA_VALIDATION.equals(tipologia)) {
  575.             template = "Token Policy Validazione [{0}]";
  576.         }
  577.         else if(CostantiConfigurazione.GENERIC_PROPERTIES_TOKEN_TIPOLOGIA_RETRIEVE.equals(tipologia)) {
  578.             template = "Token Policy Negoziazione [{0}]";
  579.         }
  580.         else {
  581.             template = "Attribute Authority [{0}]";
  582.         }
  583.         return MessageFormat.format(template, nome);
  584.         */
  585.         return nome;
  586.        
  587.     }
  588.    
  589.    
  590.    
  591.    
  592.    

  593.     // ***** PDD ******

  594.     public static boolean isPddInUso(Connection con, String tipoDB, String nomePdd, List<String> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  595.         return DBOggettiInUsoUtils_pdd.isPddInUso(con, tipoDB, nomePdd, whereIsInUso, normalizeObjectIds);
  596.     }

  597.     public static String toString(String nomePdd, List<String> whereIsInUso, boolean prefix, String separator){
  598.         return DBOggettiInUsoUtils_pdd.toString(nomePdd, whereIsInUso, prefix, separator);
  599.     }
  600.    
  601.    
  602.    
  603.    
  604.     // ***** GRUPPI ******

  605.     // Lascio i metodi se servissero in futuro
  606.     public static boolean isGruppoConfigInUso(Connection con, String tipoDB, IDGruppo idGruppo, Map<ErrorsHandlerCostant,
  607.             List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  608.         return DBOggettiInUsoUtils_gruppi.isGruppoConfigInUso(con, tipoDB, idGruppo, whereIsInUso, normalizeObjectIds);
  609.     }
  610.     public static boolean isGruppoRegistryInUso(Connection con, String tipoDB, IDGruppo idGruppo, Map<ErrorsHandlerCostant,
  611.             List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  612.         return DBOggettiInUsoUtils_gruppi.isGruppoRegistryInUso(con, tipoDB, idGruppo, whereIsInUso, normalizeObjectIds);
  613.     }
  614.     public static boolean isGruppoInUso(Connection con, String tipoDB, IDGruppo idGruppo, Map<ErrorsHandlerCostant,
  615.             List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  616.         return DBOggettiInUsoUtils_gruppi.isGruppoInUso(con, tipoDB, idGruppo, whereIsInUso, normalizeObjectIds);
  617.     }


  618.     public static String toString(IDGruppo idGruppo, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator){
  619.         return DBOggettiInUsoUtils_gruppi.toString(idGruppo, whereIsInUso, prefix, separator);
  620.     }
  621.     public static String toString(IDGruppo idGruppo, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator, String intestazione){
  622.         return DBOggettiInUsoUtils_gruppi.toString(idGruppo, whereIsInUso, prefix, separator, intestazione);
  623.     }
  624.    
  625.    
  626.    
  627.    
  628.     // ***** RUOLI ******

  629.     public static boolean isRuoloConfigInUso(Connection con, String tipoDB, IDRuolo idRuolo, Map<ErrorsHandlerCostant,
  630.             List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  631.         return DBOggettiInUsoUtils_ruoli.isRuoloConfigInUso(con, tipoDB, idRuolo, whereIsInUso, normalizeObjectIds);
  632.     }
  633.     public static boolean isRuoloRegistryInUso(Connection con, String tipoDB, IDRuolo idRuolo, Map<ErrorsHandlerCostant,
  634.             List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  635.         return DBOggettiInUsoUtils_ruoli.isRuoloRegistryInUso(con, tipoDB, idRuolo, whereIsInUso, normalizeObjectIds);
  636.     }
  637.     public static boolean isRuoloInUso(Connection con, String tipoDB, IDRuolo idRuolo, Map<ErrorsHandlerCostant,
  638.             List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  639.         return DBOggettiInUsoUtils_ruoli.isRuoloInUso(con, tipoDB, idRuolo, whereIsInUso, normalizeObjectIds);
  640.     }


  641.     public static String toString(IDRuolo idRuolo, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator){
  642.         return DBOggettiInUsoUtils_ruoli.toString(idRuolo, whereIsInUso, prefix, separator);
  643.     }
  644.     public static String toString(IDRuolo idRuolo, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator, String intestazione){
  645.         return DBOggettiInUsoUtils_ruoli.toString(idRuolo, whereIsInUso, prefix, separator, intestazione);
  646.     }
  647.    
  648.    
  649.    
  650.    
  651.     // ***** SCOPE ******

  652.     // Lascio i metodi se servissero in futuro
  653.     public static boolean isScopeConfigInUso(Connection con, String tipoDB, IDScope idScope, Map<ErrorsHandlerCostant,
  654.             List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  655.         return DBOggettiInUsoUtils_scope.isScopeConfigInUso(con, tipoDB, idScope, whereIsInUso, normalizeObjectIds);
  656.     }
  657. //  public static boolean isScopeRegistryInUso(Connection con, String tipoDB, IDScope idScope, Map<ErrorsHandlerCostant,
  658. //          List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  659. //      return DBOggettiInUsoUtils_scope.isScopeRegistryInUso(con, tipoDB, idScope, whereIsInUso, normalizeObjectIds);
  660. //  }
  661.     public static boolean isScopeInUso(Connection con, String tipoDB, IDScope idScope, Map<ErrorsHandlerCostant,
  662.             List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  663.         return DBOggettiInUsoUtils_scope.isScopeInUso(con, tipoDB, idScope, whereIsInUso, normalizeObjectIds);
  664.     }


  665.     public static String toString(IDScope idScope, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator){
  666.         return DBOggettiInUsoUtils_scope.toString(idScope, whereIsInUso, prefix, separator);
  667.     }
  668.     public static String toString(IDScope idScope, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator, String intestazione){
  669.         return DBOggettiInUsoUtils_scope.toString(idScope, whereIsInUso, prefix, separator, intestazione);
  670.     }
  671.    
  672.    
  673.    
  674.    
  675.     // ***** SOGGETTI ******

  676.     public static boolean isSoggettoConfigInUso(Connection con, String tipoDB, IDSoggetto idSoggettoConfig, boolean checkControlloTraffico,
  677.             Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean normalizeObjectIds,
  678.             boolean verificaRuoli) throws UtilsException {
  679.         return DBOggettiInUsoUtils_soggetti.isSoggettoConfigInUso(con, tipoDB, idSoggettoConfig, checkControlloTraffico, whereIsInUso, normalizeObjectIds, verificaRuoli);
  680.     }
  681.     public static boolean isSoggettoRegistryInUso(Connection con, String tipoDB, IDSoggetto idSoggettoRegistro, boolean checkControlloTraffico,
  682.             Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean normalizeObjectIds,
  683.             boolean verificaRuoli) throws UtilsException {
  684.         return DBOggettiInUsoUtils_soggetti.isSoggettoRegistryInUso(con, tipoDB, idSoggettoRegistro, checkControlloTraffico, whereIsInUso, normalizeObjectIds, verificaRuoli);
  685.     }
  686.    
  687.     public static String toString(IDSoggetto idSoggetto, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator, boolean normalizeObjectIds){
  688.         return DBOggettiInUsoUtils_soggetti.toString(idSoggetto, whereIsInUso, prefix, separator, normalizeObjectIds);
  689.     }
  690.    
  691.    
  692.    
  693.    
  694.     // ***** ACCORDI DI COOPERAZIONE ******

  695.     public static boolean isAccordoCooperazioneInUso(Connection con, String tipoDB, IDAccordoCooperazione idAccordo,
  696.             Map<ErrorsHandlerCostant,List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  697.         return DBOggettiInUsoUtils_accordiCooperazione.isAccordoCooperazioneInUso(con, tipoDB, idAccordo, whereIsInUso, normalizeObjectIds);
  698.     }

  699.     public static String toString(IDAccordoCooperazione idAccordo, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator, boolean normalizeObjectIds){
  700.         return DBOggettiInUsoUtils_accordiCooperazione.toString(idAccordo, whereIsInUso, prefix, separator, normalizeObjectIds);
  701.     }
  702.    
  703.    
  704.    
  705.    
  706.     // ***** ACCORDI DI SERVIZIO PARTE COMUNE ******

  707.     public static boolean isAccordoServizioParteComuneInUso(Connection con, String tipoDB, IDAccordo idAccordo,
  708.             Map<ErrorsHandlerCostant,List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  709.         return DBOggettiInUsoUtils_accordi.isAccordoServizioParteComuneInUso(con, tipoDB, idAccordo, whereIsInUso, normalizeObjectIds);
  710.     }

  711.     public static String toString(IDAccordo idAccordo, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator, boolean normalizeObjectIds){
  712.         return DBOggettiInUsoUtils_accordi.toString(idAccordo, whereIsInUso, prefix, separator, normalizeObjectIds);
  713.     }
  714.    
  715.    
  716.    
  717.    
  718.     // ***** RESOURCES ******

  719.     public static boolean isRisorsaConfigInUso(Connection con, String tipoDB, IDResource idRisorsa, Map<ErrorsHandlerCostant,
  720.             List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  721.         return DBOggettiInUsoUtils_accordiRest.isRisorsaConfigInUso(con, tipoDB, idRisorsa, whereIsInUso, normalizeObjectIds);
  722.     }
  723.     public static boolean isRisorsaRegistryInUso(Connection con, String tipoDB, IDResource idRisorsa, Map<ErrorsHandlerCostant,
  724.             List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  725.         return DBOggettiInUsoUtils_accordiRest.isRisorsaRegistryInUso(con, tipoDB, idRisorsa, whereIsInUso, normalizeObjectIds);
  726.     }
  727.     public static boolean isRisorsaInUso(Connection con, String tipoDB, IDResource idRisorsa, Map<ErrorsHandlerCostant,
  728.             List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  729.         return DBOggettiInUsoUtils_accordiRest.isRisorsaInUso(con, tipoDB, idRisorsa, whereIsInUso, normalizeObjectIds);
  730.     }

  731.     public static String toString(IDResource idRisorsa, String methodPath, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator){
  732.         return DBOggettiInUsoUtils_accordiRest.toString(idRisorsa, methodPath, whereIsInUso, prefix, separator);
  733.     }
  734.     public static String toString(IDResource idRisorsa, String methodPath, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator, String intestazione){
  735.         return DBOggettiInUsoUtils_accordiRest.toString(idRisorsa, methodPath, whereIsInUso, prefix, separator, intestazione);
  736.     }
  737.    
  738.    
  739.    
  740.    
  741.     // ***** PORT TYPES ******

  742.     public static boolean isPortTypeConfigInUso(Connection con, String tipoDB, IDPortType idPT, Map<ErrorsHandlerCostant,
  743.             List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  744.         return DBOggettiInUsoUtils_accordiSoap.isPortTypeConfigInUso(con, tipoDB, idPT, whereIsInUso, normalizeObjectIds);
  745.     }
  746.     public static boolean isPortTypeRegistryInUso(Connection con, String tipoDB, IDPortType idPT, Map<ErrorsHandlerCostant,
  747.             List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  748.         return DBOggettiInUsoUtils_accordiSoap.isPortTypeRegistryInUso(con, tipoDB, idPT, whereIsInUso, normalizeObjectIds);
  749.     }
  750.     public static boolean isPortTypeInUso(Connection con, String tipoDB, IDPortType idPT, Map<ErrorsHandlerCostant,
  751.             List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  752.         return DBOggettiInUsoUtils_accordiSoap.isPortTypeInUso(con, tipoDB, idPT, whereIsInUso, normalizeObjectIds);
  753.     }

  754.     public static String toString(IDPortType idPT, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator){
  755.         return DBOggettiInUsoUtils_accordiSoap.toString(idPT, whereIsInUso, prefix, separator);
  756.     }
  757.     public static String toString(IDPortType idPT, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator, String intestazione){
  758.         return DBOggettiInUsoUtils_accordiSoap.toString(idPT, whereIsInUso, prefix, separator, intestazione);
  759.     }
  760.    
  761.    
  762.    
  763.    
  764.     // ***** OPERATION ******

  765.     public static boolean isOperazioneConfigInUso(Connection con, String tipoDB, IDPortTypeAzione idOperazione, Map<ErrorsHandlerCostant,
  766.             List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  767.         return DBOggettiInUsoUtils_accordiSoap.isOperazioneConfigInUso(con, tipoDB, idOperazione, whereIsInUso, normalizeObjectIds);
  768.     }
  769.     public static boolean isOperazioneRegistryInUso(Connection con, String tipoDB, IDPortTypeAzione idOperazione, Map<ErrorsHandlerCostant,
  770.             List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  771.         return DBOggettiInUsoUtils_accordiSoap.isOperazioneRegistryInUso(con, tipoDB, idOperazione, whereIsInUso, normalizeObjectIds);
  772.     }
  773.     public static boolean isOperazioneInUso(Connection con, String tipoDB, IDPortTypeAzione idOperazione, Map<ErrorsHandlerCostant,
  774.             List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  775.         return DBOggettiInUsoUtils_accordiSoap.isOperazioneInUso(con, tipoDB, idOperazione, whereIsInUso, normalizeObjectIds);
  776.     }

  777.     public static String toString(IDPortTypeAzione idOperazione, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator){
  778.         return DBOggettiInUsoUtils_accordiSoap.toString(idOperazione, whereIsInUso, prefix, separator);
  779.     }
  780.     public static String toString(IDPortTypeAzione idOperazione, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator, String intestazione){
  781.         return DBOggettiInUsoUtils_accordiSoap.toString(idOperazione, whereIsInUso, prefix, separator, intestazione);
  782.     }
  783.    
  784.    
  785.    
  786.    
  787.     // ***** ACCORDI DI SERVIZIO PARTE SPECIFICA ******
  788.    
  789.     public static boolean isAccordoServizioParteSpecificaInUso(Connection con, String tipoDB, IDServizio idServizio,
  790.             Map<ErrorsHandlerCostant,List<String>> whereIsInUso,
  791.             List<IDPortaDelegata> nomePDGenerateAutomaticamente, List<IDPortaApplicativa> nomePAGenerateAutomaticamente, boolean normalizeObjectIds) throws UtilsException {
  792.         return DBOggettiInUsoUtils_accordiParteSpecifica.isAccordoServizioParteSpecificaInUso(con, tipoDB, idServizio, whereIsInUso,
  793.                 nomePDGenerateAutomaticamente, nomePAGenerateAutomaticamente, normalizeObjectIds);
  794.     }
  795.     public static String toString(IDServizio idServizio, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator,
  796.             boolean normalizeObjectIds, String oggetto){
  797.         return DBOggettiInUsoUtils_accordiParteSpecifica.toString(idServizio, whereIsInUso, prefix, separator, normalizeObjectIds, oggetto);
  798.     }
  799.    
  800.    
  801.    
  802.    
  803.     // ***** SERVIZI APPLICATIVI ******

  804.     public static boolean isServizioApplicativoInUso(Connection con, String tipoDB, IDServizioApplicativo idServizioApplicativo,
  805.             Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean isRegistroServiziLocale, boolean normalizeObjectIds,
  806.             boolean verificaRuoli) throws UtilsException {
  807.         return DBOggettiInUsoUtils_serviziApplicativi.isServizioApplicativoInUso(con, tipoDB, idServizioApplicativo, whereIsInUso,
  808.                 isRegistroServiziLocale, normalizeObjectIds, verificaRuoli);
  809.     }

  810.     public static String toString(IDServizioApplicativo idServizioApplicativo, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator, boolean normalizeObjectIds){
  811.         return DBOggettiInUsoUtils_serviziApplicativi.toString(idServizioApplicativo, whereIsInUso, prefix, separator, normalizeObjectIds);
  812.     }
  813.    
  814.    
  815.    
  816.    
  817.     // ***** GENERIC PROPERTIES ******

  818.     // Lascio i metodi se servissero in futuro
  819.     public static boolean isGenericPropertiesInUso(Connection con, String tipoDB, IDGenericProperties idGP, Map<ErrorsHandlerCostant,
  820.             List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  821.         return DBOggettiInUsoUtils_genericProperties.isGenericPropertiesInUso(con, tipoDB, idGP, whereIsInUso, normalizeObjectIds);
  822.     }

  823.     public static String toString(IDGenericProperties idGP, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator){
  824.         return DBOggettiInUsoUtils_genericProperties.toString(idGP, whereIsInUso, prefix, separator);
  825.     }
  826.     public static String toString(IDGenericProperties idGP, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator, String intestazione){
  827.         return DBOggettiInUsoUtils_genericProperties.toString(idGP, whereIsInUso, prefix, separator, intestazione);
  828.     }
  829.    
  830.    
  831.    
  832.    
  833.     // ***** CANALE ******
  834.    
  835.     public static boolean isCanaleInUsoRegistro(Connection con, String tipoDB, CanaleConfigurazione canale, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  836.         return DBOggettiInUsoUtils_canali.isCanaleInUsoRegistro(con, tipoDB, canale, whereIsInUso, normalizeObjectIds);
  837.     }
  838.     public static boolean isCanaleInUso(Connection con, String tipoDB, CanaleConfigurazione canale, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  839.         return DBOggettiInUsoUtils_canali.isCanaleInUso(con, tipoDB, canale, whereIsInUso, normalizeObjectIds);
  840.     }
  841.     public static boolean isCanaleInUso(Connection con, String tipoDB, CanaleConfigurazione canale, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean normalizeObjectIds,
  842.             boolean registry, boolean config, boolean nodi) throws UtilsException {
  843.         return DBOggettiInUsoUtils_canali.isCanaleInUso(con, tipoDB, canale, whereIsInUso, normalizeObjectIds,
  844.              registry, config, nodi);
  845.     }

  846.     public static String toString(CanaleConfigurazione canale, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator){
  847.         return DBOggettiInUsoUtils_canali.toString(canale, whereIsInUso, prefix, separator);
  848.     }
  849.     public static String toString(CanaleConfigurazione canale, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator, String intestazione){
  850.         return DBOggettiInUsoUtils_canali.toString(canale, whereIsInUso, prefix, separator, intestazione);
  851.     }
  852.    
  853.    
  854.    
  855.    
  856.     // ***** RATE LIMITNG POLICY ******

  857.     public static boolean isRateLimitingPolicyInUso(Connection con, String tipoDB, IdPolicy idPolicy,
  858.             Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  859.         return DBOggettiInUsoUtils_rateLimiting.isRateLimitingPolicyInUso(con, tipoDB, idPolicy, whereIsInUso, normalizeObjectIds);
  860.     }
  861.    
  862.     public static String toString(IdPolicy idPolicy, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator){
  863.         return DBOggettiInUsoUtils_rateLimiting.toString(idPolicy, whereIsInUso, prefix, separator);
  864.     }
  865.    
  866.    
  867.    
  868.    
  869.     // ***** PLUGINS ******

  870.     public static boolean isPluginInUso(Connection con, String tipoDB, String className, String label, String tipoPlugin, String tipo,
  871.             Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
  872.         return DBOggettiInUsoUtils_plugins.isPluginInUso(con, tipoDB, className, label, tipoPlugin, tipo, whereIsInUso, normalizeObjectIds);
  873.     }

  874.     public static String toString(String className, String label, String tipoPlugin, String tipo, Map<ErrorsHandlerCostant, List<String>> whereIsInUso, boolean prefix, String separator){
  875.         return DBOggettiInUsoUtils_plugins.toString(className, label, tipoPlugin, tipo, whereIsInUso, prefix, separator);
  876.     }

  877. }

  878. class ResultPorta {
  879.     boolean mapping = false;
  880.     String label;
  881.     boolean erogazioneModi = false;
  882. }