DriverConfigurazioneDBLib.java

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


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


  21. import java.sql.Connection;
  22. import java.text.MessageFormat;
  23. import java.util.List;

  24. import org.openspcoop2.core.byok.IDriverBYOK;
  25. import org.openspcoop2.core.config.ProtocolProperty;
  26. import org.openspcoop2.core.config.constants.AlgoritmoCache;
  27. import org.openspcoop2.core.config.constants.CorrelazioneApplicativaGestioneIdentificazioneFallita;
  28. import org.openspcoop2.core.config.constants.CorrelazioneApplicativaRichiestaIdentificazione;
  29. import org.openspcoop2.core.config.constants.CorrelazioneApplicativaRispostaIdentificazione;
  30. import org.openspcoop2.core.config.constants.CostantiConfigurazione;
  31. import org.openspcoop2.core.config.constants.CredenzialeTipo;
  32. import org.openspcoop2.core.config.constants.FaultIntegrazioneTipo;
  33. import org.openspcoop2.core.config.constants.GestioneErroreComportamento;
  34. import org.openspcoop2.core.config.constants.InvocazioneServizioTipoAutenticazione;
  35. import org.openspcoop2.core.config.constants.MTOMProcessorType;
  36. import org.openspcoop2.core.config.constants.PluginSorgenteArchivio;
  37. import org.openspcoop2.core.config.constants.PortaApplicativaSoggettiFruitori;
  38. import org.openspcoop2.core.config.constants.PortaDelegataSoggettiErogatori;
  39. import org.openspcoop2.core.config.constants.ProprietaProtocolloValore;
  40. import org.openspcoop2.core.config.constants.RuoloContesto;
  41. import org.openspcoop2.core.config.constants.ServiceBinding;
  42. import org.openspcoop2.core.config.constants.Severita;
  43. import org.openspcoop2.core.config.constants.StatoFunzionalita;
  44. import org.openspcoop2.core.config.constants.StatoFunzionalitaBloccante;
  45. import org.openspcoop2.core.config.constants.StatoFunzionalitaCacheDigestQueryParameter;
  46. import org.openspcoop2.core.config.constants.StatoFunzionalitaConPersonalizzazione;
  47. import org.openspcoop2.core.config.constants.StatoFunzionalitaConWarning;
  48. import org.openspcoop2.core.config.constants.TipoConnessioneRisposte;
  49. import org.openspcoop2.core.config.constants.TipoGestioneCORS;
  50. import org.openspcoop2.core.config.constants.TrasformazioneIdentificazioneRisorsaFallita;
  51. import org.openspcoop2.core.config.constants.TrasformazioneRegolaParametroTipoAzione;
  52. import org.openspcoop2.core.config.constants.ValidazioneBusteTipoControllo;
  53. import org.openspcoop2.core.config.constants.ValidazioneContenutiApplicativiTipo;
  54. import org.openspcoop2.core.config.constants.VersioneSOAP;
  55. import org.openspcoop2.core.config.driver.DriverConfigurazioneException;
  56. import org.openspcoop2.core.config.driver.DriverConfigurazioneNotFound;
  57. import org.openspcoop2.core.constants.CostantiDB;
  58. import org.openspcoop2.core.mapping.DBProtocolPropertiesUtils;
  59. import org.openspcoop2.generic_project.exception.NotFoundException;
  60. import org.openspcoop2.utils.LoggerWrapperFactory;
  61. import org.slf4j.Logger;

  62. /**
  63.  * Libreria contenente i metodi di accesso al db e metodi di utilita'
  64.  *
  65.  * @author Stefano Corallo - corallo@link.it
  66.  * @author $Author$
  67.  * @version $Rev$, $Date$
  68.  */

  69. public class DriverConfigurazioneDBLib {
  70.    
  71.     private DriverConfigurazioneDBLib() {}

  72.     /** Logger utilizzato per debug. */
  73.     protected static org.slf4j.Logger log = LoggerWrapperFactory.getLogger(CostantiConfigurazione.DRIVER_DB_LOGGER);
  74.     public static void logDebug(String msg) {
  75.         if(log!=null) {
  76.             log.debug(msg);
  77.         }
  78.     }
  79.     public static void logDebug(String msg, Throwable e) {
  80.         if(log!=null) {
  81.             log.debug(msg, e);
  82.         }
  83.     }
  84.     public static void logError(String msg, Throwable e) {
  85.         if(log!=null) {
  86.             log.error(msg, e);
  87.         }
  88.     }

  89.     // Tipo database e tabella Soggetto PDD ereditato da DriverConfigurazioneDB
  90.     static String tipoDB = null;
  91.     static String tabellaSoggetti = CostantiDB.SOGGETTI;

  92.     /** Log ereditato da DriverRegistroServiziDB
  93.      */
  94.     private static boolean initialize = false;
  95.     public static void initStaticLogger(Logger aLog){
  96.         if(!DriverConfigurazioneDBLib.initialize){
  97.             if(aLog!=null){
  98.                 DriverConfigurazioneDBLib.log = aLog;
  99.             }
  100.             DriverConfigurazioneDBLib.initialize = true;
  101.         }
  102.     }
  103.     public static boolean isStaticLoggerInitialized(){
  104.         return DriverConfigurazioneDBLib.initialize;
  105.     }

  106.     // Setto il tipoDB
  107.     public static void setTipoDB(String tipoDatabase) {
  108.         DriverConfigurazioneDBLib.tipoDB = tipoDatabase;
  109.     }
  110.     public static void setTabellaSoggetti(String tab) {
  111.         DriverConfigurazioneDBLib.tabellaSoggetti = tab;
  112.     }

  113.     public static String getValue(StatoFunzionalita funzionalita){
  114.         if(funzionalita==null){
  115.             return null;
  116.         }
  117.         else{
  118.             return funzionalita.getValue();
  119.         }
  120.     }
  121.     public static String getValue(StatoFunzionalitaConWarning funzionalita){
  122.         if(funzionalita==null){
  123.             return null;
  124.         }
  125.         else{
  126.             return funzionalita.getValue();
  127.         }
  128.     }
  129.     public static String getValue(StatoFunzionalitaConPersonalizzazione funzionalita){
  130.         if(funzionalita==null){
  131.             return null;
  132.         }
  133.         else{
  134.             return funzionalita.getValue();
  135.         }
  136.     }
  137.     public static String getValue(StatoFunzionalitaBloccante funzionalita){
  138.         if(funzionalita==null){
  139.             return null;
  140.         }
  141.         else{
  142.             return funzionalita.getValue();
  143.         }
  144.     }
  145.     public static String getValue(MTOMProcessorType tipo){
  146.         if(tipo==null){
  147.             return null;
  148.         }
  149.         else{
  150.             return tipo.getValue();
  151.         }
  152.     }
  153.     public static String getValue(ValidazioneContenutiApplicativiTipo tipo){
  154.         if(tipo==null){
  155.             return null;
  156.         }
  157.         else{
  158.             return tipo.getValue();
  159.         }
  160.     }
  161.     public static String getValue(CorrelazioneApplicativaRichiestaIdentificazione identificazione){
  162.         if(identificazione==null){
  163.             return null;
  164.         }
  165.         else{
  166.             return identificazione.getValue();
  167.         }
  168.     }
  169.     public static String getValue(CorrelazioneApplicativaRispostaIdentificazione identificazione){
  170.         if(identificazione==null){
  171.             return null;
  172.         }
  173.         else{
  174.             return identificazione.getValue();
  175.         }
  176.     }
  177.     public static String getValue(CorrelazioneApplicativaGestioneIdentificazioneFallita identificazione){
  178.         if(identificazione==null){
  179.             return null;
  180.         }
  181.         else{
  182.             return identificazione.getValue();
  183.         }
  184.     }
  185.     public static String getValue(InvocazioneServizioTipoAutenticazione tipo){
  186.         if(tipo==null){
  187.             return null;
  188.         }
  189.         else{
  190.             return tipo.getValue();
  191.         }
  192.     }
  193.     public static String getValue(FaultIntegrazioneTipo tipo){
  194.         if(tipo==null){
  195.             return null;
  196.         }
  197.         else{
  198.             return tipo.getValue();
  199.         }
  200.     }
  201.     public static String getValue(CredenzialeTipo tipo){
  202.         if(tipo==null){
  203.             return null;
  204.         }
  205.         else{
  206.             return tipo.getValue();
  207.         }
  208.     }
  209.     public static String getValue(ProprietaProtocolloValore valore){
  210.         if(valore==null){
  211.             return null;
  212.         }
  213.         else{
  214.             return valore.getValue();
  215.         }
  216.     }
  217.     public static String getValue(Severita valore){
  218.         if(valore==null){
  219.             return null;
  220.         }
  221.         else{
  222.             return valore.getValue();
  223.         }
  224.     }
  225.     public static String getValue(ValidazioneBusteTipoControllo valore){
  226.         if(valore==null){
  227.             return null;
  228.         }
  229.         else{
  230.             return valore.getValue();
  231.         }
  232.     }
  233.     public static String getValue(AlgoritmoCache valore){
  234.         if(valore==null){
  235.             return null;
  236.         }
  237.         else{
  238.             return valore.getValue();
  239.         }
  240.     }
  241.     public static String getValue(GestioneErroreComportamento valore){
  242.         if(valore==null){
  243.             return null;
  244.         }
  245.         else{
  246.             return valore.getValue();
  247.         }
  248.     }
  249.     public static String getValue(TipoConnessioneRisposte valore){
  250.         if(valore==null){
  251.             return null;
  252.         }
  253.         else{
  254.             return valore.getValue();
  255.         }
  256.     }
  257.     public static String getValue(PortaApplicativaSoggettiFruitori valore){
  258.         if(valore==null){
  259.             return null;
  260.         }
  261.         else{
  262.             return valore.getValue();
  263.         }
  264.     }
  265.     public static String getValue(PortaDelegataSoggettiErogatori valore){
  266.         if(valore==null){
  267.             return null;
  268.         }
  269.         else{
  270.             return valore.getValue();
  271.         }
  272.     }
  273.     public static String getValue(TipoGestioneCORS valore){
  274.         if(valore==null){
  275.             return null;
  276.         }
  277.         else{
  278.             return valore.getValue();
  279.         }
  280.     }
  281.     public static String getValue(VersioneSOAP valore){
  282.         if(valore==null){
  283.             return null;
  284.         }
  285.         else{
  286.             return valore.getValue();
  287.         }
  288.     }
  289.     public static String getValue(TrasformazioneRegolaParametroTipoAzione valore){
  290.         if(valore==null){
  291.             return null;
  292.         }
  293.         else{
  294.             return valore.getValue();
  295.         }
  296.     }
  297.     public static String getValue(StatoFunzionalitaCacheDigestQueryParameter valore){
  298.         if(valore==null){
  299.             return null;
  300.         }
  301.         else{
  302.             return valore.getValue();
  303.         }
  304.     }
  305.     public static String getValue(RuoloContesto valore){
  306.         if(valore==null){
  307.             return null;
  308.         }
  309.         else{
  310.             return valore.getValue();
  311.         }
  312.     }
  313.     public static String getValue(ServiceBinding valore){
  314.         if(valore==null){
  315.             return null;
  316.         }
  317.         else{
  318.             return valore.getValue();
  319.         }
  320.     }
  321.     public static String getValue(TrasformazioneIdentificazioneRisorsaFallita identificazione){
  322.         if(identificazione==null){
  323.             return null;
  324.         }
  325.         else{
  326.             return identificazione.getValue();
  327.         }
  328.     }
  329.     public static String getValue(PluginSorgenteArchivio sorgente){
  330.         if(sorgente==null){
  331.             return null;
  332.         }
  333.         else{
  334.             return sorgente.getValue();
  335.         }
  336.     }
  337.    
  338.    
  339.     public static StatoFunzionalita getEnumStatoFunzionalita(String value){
  340.         if(value==null){
  341.             return null;
  342.         }
  343.         else{
  344.             return StatoFunzionalita.toEnumConstant(value);
  345.         }
  346.     }
  347.     public static StatoFunzionalitaConWarning getEnumStatoFunzionalitaConWarning(String value){
  348.         if(value==null){
  349.             return null;
  350.         }
  351.         else{
  352.             return StatoFunzionalitaConWarning.toEnumConstant(value);
  353.         }
  354.     }
  355.     public static StatoFunzionalitaConPersonalizzazione getEnumStatoFunzionalitaConPersonalizzazione(String value){
  356.         if(value==null){
  357.             return null;
  358.         }
  359.         else{
  360.             return StatoFunzionalitaConPersonalizzazione.toEnumConstant(value);
  361.         }
  362.     }
  363.     public static StatoFunzionalitaBloccante getEnumStatoFunzionalitaBloccante(String value){
  364.         if(value==null){
  365.             return null;
  366.         }
  367.         else{
  368.             return StatoFunzionalitaBloccante.toEnumConstant(value);
  369.         }
  370.     }
  371.     public static MTOMProcessorType getEnumMTOMProcessorType(String value){
  372.         if(value==null){
  373.             return null;
  374.         }
  375.         else{
  376.             return MTOMProcessorType.toEnumConstant(value);
  377.         }
  378.     }
  379.     public static ValidazioneContenutiApplicativiTipo getEnumValidazioneContenutiApplicativiTipo(String value){
  380.         if(value==null){
  381.             return null;
  382.         }
  383.         else{
  384.             return ValidazioneContenutiApplicativiTipo.toEnumConstant(value);
  385.         }
  386.     }
  387.     public static CorrelazioneApplicativaRichiestaIdentificazione getEnumCorrelazioneApplicativaRichiestaIdentificazione(String value){
  388.         if(value==null){
  389.             return null;
  390.         }
  391.         else{
  392.             return CorrelazioneApplicativaRichiestaIdentificazione.toEnumConstant(value);
  393.         }
  394.     }
  395.     public static CorrelazioneApplicativaRispostaIdentificazione getEnumCorrelazioneApplicativaRispostaIdentificazione(String value){
  396.         if(value==null){
  397.             return null;
  398.         }
  399.         else{
  400.             return CorrelazioneApplicativaRispostaIdentificazione.toEnumConstant(value);
  401.         }
  402.     }
  403.     public static CorrelazioneApplicativaGestioneIdentificazioneFallita getEnumCorrelazioneApplicativaGestioneIdentificazioneFallita(String value){
  404.         if(value==null){
  405.             return null;
  406.         }
  407.         else{
  408.             return CorrelazioneApplicativaGestioneIdentificazioneFallita.toEnumConstant(value);
  409.         }
  410.     }
  411.     public static InvocazioneServizioTipoAutenticazione getEnumInvocazioneServizioTipoAutenticazione(String value){
  412.         if(value==null){
  413.             return null;
  414.         }
  415.         else{
  416.             return InvocazioneServizioTipoAutenticazione.toEnumConstant(value);
  417.         }
  418.     }
  419.     public static FaultIntegrazioneTipo getEnumFaultIntegrazioneTipo(String value){
  420.         if(value==null){
  421.             return null;
  422.         }
  423.         else{
  424.             return FaultIntegrazioneTipo.toEnumConstant(value);
  425.         }
  426.     }
  427.     public static CredenzialeTipo getEnumCredenzialeTipo(String value){
  428.         if(value==null){
  429.             return null;
  430.         }
  431.         else{
  432.             return CredenzialeTipo.toEnumConstant(value);
  433.         }
  434.     }
  435.     public static ProprietaProtocolloValore getEnumProprietaProtocolloValore(String value){
  436.         if(value==null){
  437.             return null;
  438.         }
  439.         else{
  440.             return ProprietaProtocolloValore.toEnumConstant(value);
  441.         }
  442.     }
  443.     public static Severita getEnumSeverita(String value){
  444.         if(value==null){
  445.             return null;
  446.         }
  447.         else{
  448.             return Severita.toEnumConstant(value);
  449.         }
  450.     }
  451.     public static ValidazioneBusteTipoControllo getEnumValidazioneBusteTipoControllo(String value){
  452.         if(value==null){
  453.             return null;
  454.         }
  455.         else{
  456.             return ValidazioneBusteTipoControllo.toEnumConstant(value);
  457.         }
  458.     }
  459.     public static AlgoritmoCache getEnumAlgoritmoCache(String value){
  460.         if(value==null){
  461.             return null;
  462.         }
  463.         else{
  464.             return AlgoritmoCache.toEnumConstant(value);
  465.         }
  466.     }
  467.     public static GestioneErroreComportamento getEnumGestioneErroreComportamento(String value){
  468.         if(value==null){
  469.             return null;
  470.         }
  471.         else{
  472.             return GestioneErroreComportamento.toEnumConstant(value);
  473.         }
  474.     }
  475.     public static TipoConnessioneRisposte getEnumTipoConnessioneRisposte(String value){
  476.         if(value==null){
  477.             return null;
  478.         }
  479.         else{
  480.             return TipoConnessioneRisposte.toEnumConstant(value);
  481.         }
  482.     }
  483.     public static PortaApplicativaSoggettiFruitori getEnumPortaApplicativaSoggettiFruitori(String value){
  484.         if(value==null){
  485.             return null;
  486.         }
  487.         else{
  488.             return PortaApplicativaSoggettiFruitori.toEnumConstant(value);
  489.         }
  490.     }
  491.     public static PortaDelegataSoggettiErogatori getEnumPortaDelegataSoggettiErogatori(String value){
  492.         if(value==null){
  493.             return null;
  494.         }
  495.         else{
  496.             return PortaDelegataSoggettiErogatori.toEnumConstant(value);
  497.         }
  498.     }
  499.     public static TipoGestioneCORS getEnumTipoGestioneCORS(String value){
  500.         if(value==null){
  501.             return null;
  502.         }
  503.         else{
  504.             return TipoGestioneCORS.toEnumConstant(value);
  505.         }
  506.     }
  507.     public static VersioneSOAP getEnumVersioneSOAP(String value){
  508.         if(value==null){
  509.             return null;
  510.         }
  511.         else{
  512.             return VersioneSOAP.toEnumConstant(value);
  513.         }
  514.     }
  515.     public static TrasformazioneRegolaParametroTipoAzione getEnumTrasformazioneRegolaParametroTipoAzione(String value){
  516.         if(value==null){
  517.             return null;
  518.         }
  519.         else{
  520.             return TrasformazioneRegolaParametroTipoAzione.toEnumConstant(value);
  521.         }
  522.     }
  523.     public static StatoFunzionalitaCacheDigestQueryParameter getEnumStatoFunzionalitaCacheDigestQueryParameter(String value){
  524.         if(value==null){
  525.             return null;
  526.         }
  527.         else{
  528.             return StatoFunzionalitaCacheDigestQueryParameter.toEnumConstant(value);
  529.         }
  530.     }
  531.     public static RuoloContesto getEnumRuoloContesto(String value){
  532.         if(value==null){
  533.             return null;
  534.         }
  535.         else{
  536.             return RuoloContesto.toEnumConstant(value);
  537.         }
  538.     }
  539.     public static ServiceBinding getEnumServiceBinding(String value){
  540.         if(value==null){
  541.             return null;
  542.         }
  543.         else{
  544.             return ServiceBinding.toEnumConstant(value);
  545.         }
  546.     }
  547.     public static TrasformazioneIdentificazioneRisorsaFallita getEnumTrasformazioneIdentificazioneRisorsaFallita(String value){
  548.         if(value==null){
  549.             return null;
  550.         }
  551.         else{
  552.             return TrasformazioneIdentificazioneRisorsaFallita.toEnumConstant(value);
  553.         }
  554.     }
  555.     public static PluginSorgenteArchivio getEnumPluginSorgenteArchivio(String value){
  556.         if(value==null){
  557.             return null;
  558.         }
  559.         else{
  560.             return PluginSorgenteArchivio.toEnumConstant(value);
  561.         }
  562.     }
  563.    
  564.    
  565.    
  566.    
  567.     public static String formatSQLString(String sql, Object... params) {
  568.         String res = sql;

  569.         for (int i = 0; i < params.length; i++) {
  570.             res = res.replaceFirst("\\?", "{" + i + "}");
  571.         }

  572.         return MessageFormat.format(res, params);

  573.     }
  574.    
  575.    

  576.    
  577.     public static void crudProtocolProperty(int type, List<ProtocolProperty> listPP, long idProprietario,
  578.             org.openspcoop2.core.constants.ProprietariProtocolProperty tipologiaProprietarioProtocolProperty, Connection connection,
  579.             String tipoDatabase, IDriverBYOK driverBYOK) throws DriverConfigurazioneException {
  580.         try {
  581.             DBProtocolPropertiesUtils.crudConfigProtocolProperty(log, type, listPP, idProprietario, tipologiaProprietarioProtocolProperty, connection, tipoDatabase, driverBYOK);
  582.         }catch(Exception e) {
  583.             throw new DriverConfigurazioneException(e.getMessage(),e);
  584.         }
  585.     }
  586.    
  587.    
  588.     public static List<ProtocolProperty> getListaProtocolProperty(long idProprietario, org.openspcoop2.core.constants.ProprietariProtocolProperty tipologiaProprietario,
  589.             Connection connection,
  590.             String tipoDatabase, IDriverBYOK driverBYOK) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  591.         try {
  592.             return DBProtocolPropertiesUtils.getListaProtocolPropertyConfig(idProprietario,tipologiaProprietario,connection,tipoDatabase, driverBYOK);
  593.         }
  594.         catch(NotFoundException e) {
  595.             throw new DriverConfigurazioneNotFound(e.getMessage(),e);
  596.         }
  597.         catch(Exception e) {
  598.             throw new DriverConfigurazioneException(e.getMessage(),e);
  599.         }
  600.     }
  601.    
  602.     public static ProtocolProperty getProtocolProperty(long id, Connection connection, String tipoDatabase, IDriverBYOK driverBYOK) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
  603.         try {
  604.             return DBProtocolPropertiesUtils.getProtocolPropertyConfig(id, connection, tipoDatabase, driverBYOK);
  605.         }
  606.         catch(NotFoundException e) {
  607.             throw new DriverConfigurazioneNotFound(e.getMessage(),e);
  608.         }
  609.         catch(Exception e) {
  610.             throw new DriverConfigurazioneException(e.getMessage(),e);
  611.         }
  612.     }
  613. }