DriverConfigurazioneDBLib.java
/*
* GovWay - A customizable API Gateway
* https://govway.org
*
* Copyright (c) 2005-2024 Link.it srl (https://link.it).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3, as published by
* the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.openspcoop2.core.config.driver.db;
import java.sql.Connection;
import java.text.MessageFormat;
import java.util.List;
import org.openspcoop2.core.byok.IDriverBYOK;
import org.openspcoop2.core.config.ProtocolProperty;
import org.openspcoop2.core.config.constants.AlgoritmoCache;
import org.openspcoop2.core.config.constants.CorrelazioneApplicativaGestioneIdentificazioneFallita;
import org.openspcoop2.core.config.constants.CorrelazioneApplicativaRichiestaIdentificazione;
import org.openspcoop2.core.config.constants.CorrelazioneApplicativaRispostaIdentificazione;
import org.openspcoop2.core.config.constants.CostantiConfigurazione;
import org.openspcoop2.core.config.constants.CredenzialeTipo;
import org.openspcoop2.core.config.constants.FaultIntegrazioneTipo;
import org.openspcoop2.core.config.constants.GestioneErroreComportamento;
import org.openspcoop2.core.config.constants.InvocazioneServizioTipoAutenticazione;
import org.openspcoop2.core.config.constants.MTOMProcessorType;
import org.openspcoop2.core.config.constants.PluginSorgenteArchivio;
import org.openspcoop2.core.config.constants.PortaApplicativaSoggettiFruitori;
import org.openspcoop2.core.config.constants.PortaDelegataSoggettiErogatori;
import org.openspcoop2.core.config.constants.ProprietaProtocolloValore;
import org.openspcoop2.core.config.constants.RuoloContesto;
import org.openspcoop2.core.config.constants.ServiceBinding;
import org.openspcoop2.core.config.constants.Severita;
import org.openspcoop2.core.config.constants.StatoFunzionalita;
import org.openspcoop2.core.config.constants.StatoFunzionalitaBloccante;
import org.openspcoop2.core.config.constants.StatoFunzionalitaCacheDigestQueryParameter;
import org.openspcoop2.core.config.constants.StatoFunzionalitaConPersonalizzazione;
import org.openspcoop2.core.config.constants.StatoFunzionalitaConWarning;
import org.openspcoop2.core.config.constants.TipoConnessioneRisposte;
import org.openspcoop2.core.config.constants.TipoGestioneCORS;
import org.openspcoop2.core.config.constants.TrasformazioneIdentificazioneRisorsaFallita;
import org.openspcoop2.core.config.constants.TrasformazioneRegolaParametroTipoAzione;
import org.openspcoop2.core.config.constants.ValidazioneBusteTipoControllo;
import org.openspcoop2.core.config.constants.ValidazioneContenutiApplicativiTipo;
import org.openspcoop2.core.config.constants.VersioneSOAP;
import org.openspcoop2.core.config.driver.DriverConfigurazioneException;
import org.openspcoop2.core.config.driver.DriverConfigurazioneNotFound;
import org.openspcoop2.core.constants.CostantiDB;
import org.openspcoop2.core.mapping.DBProtocolPropertiesUtils;
import org.openspcoop2.generic_project.exception.NotFoundException;
import org.openspcoop2.utils.LoggerWrapperFactory;
import org.slf4j.Logger;
/**
* Libreria contenente i metodi di accesso al db e metodi di utilita'
*
* @author Stefano Corallo - corallo@link.it
* @author $Author$
* @version $Rev$, $Date$
*/
public class DriverConfigurazioneDBLib {
private DriverConfigurazioneDBLib() {}
/** Logger utilizzato per debug. */
protected static org.slf4j.Logger log = LoggerWrapperFactory.getLogger(CostantiConfigurazione.DRIVER_DB_LOGGER);
public static void logDebug(String msg) {
if(log!=null) {
log.debug(msg);
}
}
public static void logDebug(String msg, Throwable e) {
if(log!=null) {
log.debug(msg, e);
}
}
public static void logError(String msg, Throwable e) {
if(log!=null) {
log.error(msg, e);
}
}
// Tipo database e tabella Soggetto PDD ereditato da DriverConfigurazioneDB
static String tipoDB = null;
static String tabellaSoggetti = CostantiDB.SOGGETTI;
/** Log ereditato da DriverRegistroServiziDB
*/
private static boolean initialize = false;
public static void initStaticLogger(Logger aLog){
if(!DriverConfigurazioneDBLib.initialize){
if(aLog!=null){
DriverConfigurazioneDBLib.log = aLog;
}
DriverConfigurazioneDBLib.initialize = true;
}
}
public static boolean isStaticLoggerInitialized(){
return DriverConfigurazioneDBLib.initialize;
}
// Setto il tipoDB
public static void setTipoDB(String tipoDatabase) {
DriverConfigurazioneDBLib.tipoDB = tipoDatabase;
}
public static void setTabellaSoggetti(String tab) {
DriverConfigurazioneDBLib.tabellaSoggetti = tab;
}
public static String getValue(StatoFunzionalita funzionalita){
if(funzionalita==null){
return null;
}
else{
return funzionalita.getValue();
}
}
public static String getValue(StatoFunzionalitaConWarning funzionalita){
if(funzionalita==null){
return null;
}
else{
return funzionalita.getValue();
}
}
public static String getValue(StatoFunzionalitaConPersonalizzazione funzionalita){
if(funzionalita==null){
return null;
}
else{
return funzionalita.getValue();
}
}
public static String getValue(StatoFunzionalitaBloccante funzionalita){
if(funzionalita==null){
return null;
}
else{
return funzionalita.getValue();
}
}
public static String getValue(MTOMProcessorType tipo){
if(tipo==null){
return null;
}
else{
return tipo.getValue();
}
}
public static String getValue(ValidazioneContenutiApplicativiTipo tipo){
if(tipo==null){
return null;
}
else{
return tipo.getValue();
}
}
public static String getValue(CorrelazioneApplicativaRichiestaIdentificazione identificazione){
if(identificazione==null){
return null;
}
else{
return identificazione.getValue();
}
}
public static String getValue(CorrelazioneApplicativaRispostaIdentificazione identificazione){
if(identificazione==null){
return null;
}
else{
return identificazione.getValue();
}
}
public static String getValue(CorrelazioneApplicativaGestioneIdentificazioneFallita identificazione){
if(identificazione==null){
return null;
}
else{
return identificazione.getValue();
}
}
public static String getValue(InvocazioneServizioTipoAutenticazione tipo){
if(tipo==null){
return null;
}
else{
return tipo.getValue();
}
}
public static String getValue(FaultIntegrazioneTipo tipo){
if(tipo==null){
return null;
}
else{
return tipo.getValue();
}
}
public static String getValue(CredenzialeTipo tipo){
if(tipo==null){
return null;
}
else{
return tipo.getValue();
}
}
public static String getValue(ProprietaProtocolloValore valore){
if(valore==null){
return null;
}
else{
return valore.getValue();
}
}
public static String getValue(Severita valore){
if(valore==null){
return null;
}
else{
return valore.getValue();
}
}
public static String getValue(ValidazioneBusteTipoControllo valore){
if(valore==null){
return null;
}
else{
return valore.getValue();
}
}
public static String getValue(AlgoritmoCache valore){
if(valore==null){
return null;
}
else{
return valore.getValue();
}
}
public static String getValue(GestioneErroreComportamento valore){
if(valore==null){
return null;
}
else{
return valore.getValue();
}
}
public static String getValue(TipoConnessioneRisposte valore){
if(valore==null){
return null;
}
else{
return valore.getValue();
}
}
public static String getValue(PortaApplicativaSoggettiFruitori valore){
if(valore==null){
return null;
}
else{
return valore.getValue();
}
}
public static String getValue(PortaDelegataSoggettiErogatori valore){
if(valore==null){
return null;
}
else{
return valore.getValue();
}
}
public static String getValue(TipoGestioneCORS valore){
if(valore==null){
return null;
}
else{
return valore.getValue();
}
}
public static String getValue(VersioneSOAP valore){
if(valore==null){
return null;
}
else{
return valore.getValue();
}
}
public static String getValue(TrasformazioneRegolaParametroTipoAzione valore){
if(valore==null){
return null;
}
else{
return valore.getValue();
}
}
public static String getValue(StatoFunzionalitaCacheDigestQueryParameter valore){
if(valore==null){
return null;
}
else{
return valore.getValue();
}
}
public static String getValue(RuoloContesto valore){
if(valore==null){
return null;
}
else{
return valore.getValue();
}
}
public static String getValue(ServiceBinding valore){
if(valore==null){
return null;
}
else{
return valore.getValue();
}
}
public static String getValue(TrasformazioneIdentificazioneRisorsaFallita identificazione){
if(identificazione==null){
return null;
}
else{
return identificazione.getValue();
}
}
public static String getValue(PluginSorgenteArchivio sorgente){
if(sorgente==null){
return null;
}
else{
return sorgente.getValue();
}
}
public static StatoFunzionalita getEnumStatoFunzionalita(String value){
if(value==null){
return null;
}
else{
return StatoFunzionalita.toEnumConstant(value);
}
}
public static StatoFunzionalitaConWarning getEnumStatoFunzionalitaConWarning(String value){
if(value==null){
return null;
}
else{
return StatoFunzionalitaConWarning.toEnumConstant(value);
}
}
public static StatoFunzionalitaConPersonalizzazione getEnumStatoFunzionalitaConPersonalizzazione(String value){
if(value==null){
return null;
}
else{
return StatoFunzionalitaConPersonalizzazione.toEnumConstant(value);
}
}
public static StatoFunzionalitaBloccante getEnumStatoFunzionalitaBloccante(String value){
if(value==null){
return null;
}
else{
return StatoFunzionalitaBloccante.toEnumConstant(value);
}
}
public static MTOMProcessorType getEnumMTOMProcessorType(String value){
if(value==null){
return null;
}
else{
return MTOMProcessorType.toEnumConstant(value);
}
}
public static ValidazioneContenutiApplicativiTipo getEnumValidazioneContenutiApplicativiTipo(String value){
if(value==null){
return null;
}
else{
return ValidazioneContenutiApplicativiTipo.toEnumConstant(value);
}
}
public static CorrelazioneApplicativaRichiestaIdentificazione getEnumCorrelazioneApplicativaRichiestaIdentificazione(String value){
if(value==null){
return null;
}
else{
return CorrelazioneApplicativaRichiestaIdentificazione.toEnumConstant(value);
}
}
public static CorrelazioneApplicativaRispostaIdentificazione getEnumCorrelazioneApplicativaRispostaIdentificazione(String value){
if(value==null){
return null;
}
else{
return CorrelazioneApplicativaRispostaIdentificazione.toEnumConstant(value);
}
}
public static CorrelazioneApplicativaGestioneIdentificazioneFallita getEnumCorrelazioneApplicativaGestioneIdentificazioneFallita(String value){
if(value==null){
return null;
}
else{
return CorrelazioneApplicativaGestioneIdentificazioneFallita.toEnumConstant(value);
}
}
public static InvocazioneServizioTipoAutenticazione getEnumInvocazioneServizioTipoAutenticazione(String value){
if(value==null){
return null;
}
else{
return InvocazioneServizioTipoAutenticazione.toEnumConstant(value);
}
}
public static FaultIntegrazioneTipo getEnumFaultIntegrazioneTipo(String value){
if(value==null){
return null;
}
else{
return FaultIntegrazioneTipo.toEnumConstant(value);
}
}
public static CredenzialeTipo getEnumCredenzialeTipo(String value){
if(value==null){
return null;
}
else{
return CredenzialeTipo.toEnumConstant(value);
}
}
public static ProprietaProtocolloValore getEnumProprietaProtocolloValore(String value){
if(value==null){
return null;
}
else{
return ProprietaProtocolloValore.toEnumConstant(value);
}
}
public static Severita getEnumSeverita(String value){
if(value==null){
return null;
}
else{
return Severita.toEnumConstant(value);
}
}
public static ValidazioneBusteTipoControllo getEnumValidazioneBusteTipoControllo(String value){
if(value==null){
return null;
}
else{
return ValidazioneBusteTipoControllo.toEnumConstant(value);
}
}
public static AlgoritmoCache getEnumAlgoritmoCache(String value){
if(value==null){
return null;
}
else{
return AlgoritmoCache.toEnumConstant(value);
}
}
public static GestioneErroreComportamento getEnumGestioneErroreComportamento(String value){
if(value==null){
return null;
}
else{
return GestioneErroreComportamento.toEnumConstant(value);
}
}
public static TipoConnessioneRisposte getEnumTipoConnessioneRisposte(String value){
if(value==null){
return null;
}
else{
return TipoConnessioneRisposte.toEnumConstant(value);
}
}
public static PortaApplicativaSoggettiFruitori getEnumPortaApplicativaSoggettiFruitori(String value){
if(value==null){
return null;
}
else{
return PortaApplicativaSoggettiFruitori.toEnumConstant(value);
}
}
public static PortaDelegataSoggettiErogatori getEnumPortaDelegataSoggettiErogatori(String value){
if(value==null){
return null;
}
else{
return PortaDelegataSoggettiErogatori.toEnumConstant(value);
}
}
public static TipoGestioneCORS getEnumTipoGestioneCORS(String value){
if(value==null){
return null;
}
else{
return TipoGestioneCORS.toEnumConstant(value);
}
}
public static VersioneSOAP getEnumVersioneSOAP(String value){
if(value==null){
return null;
}
else{
return VersioneSOAP.toEnumConstant(value);
}
}
public static TrasformazioneRegolaParametroTipoAzione getEnumTrasformazioneRegolaParametroTipoAzione(String value){
if(value==null){
return null;
}
else{
return TrasformazioneRegolaParametroTipoAzione.toEnumConstant(value);
}
}
public static StatoFunzionalitaCacheDigestQueryParameter getEnumStatoFunzionalitaCacheDigestQueryParameter(String value){
if(value==null){
return null;
}
else{
return StatoFunzionalitaCacheDigestQueryParameter.toEnumConstant(value);
}
}
public static RuoloContesto getEnumRuoloContesto(String value){
if(value==null){
return null;
}
else{
return RuoloContesto.toEnumConstant(value);
}
}
public static ServiceBinding getEnumServiceBinding(String value){
if(value==null){
return null;
}
else{
return ServiceBinding.toEnumConstant(value);
}
}
public static TrasformazioneIdentificazioneRisorsaFallita getEnumTrasformazioneIdentificazioneRisorsaFallita(String value){
if(value==null){
return null;
}
else{
return TrasformazioneIdentificazioneRisorsaFallita.toEnumConstant(value);
}
}
public static PluginSorgenteArchivio getEnumPluginSorgenteArchivio(String value){
if(value==null){
return null;
}
else{
return PluginSorgenteArchivio.toEnumConstant(value);
}
}
public static String formatSQLString(String sql, Object... params) {
String res = sql;
for (int i = 0; i < params.length; i++) {
res = res.replaceFirst("\\?", "{" + i + "}");
}
return MessageFormat.format(res, params);
}
public static void crudProtocolProperty(int type, List<ProtocolProperty> listPP, long idProprietario,
org.openspcoop2.core.constants.ProprietariProtocolProperty tipologiaProprietarioProtocolProperty, Connection connection,
String tipoDatabase, IDriverBYOK driverBYOK) throws DriverConfigurazioneException {
try {
DBProtocolPropertiesUtils.crudConfigProtocolProperty(log, type, listPP, idProprietario, tipologiaProprietarioProtocolProperty, connection, tipoDatabase, driverBYOK);
}catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
public static List<ProtocolProperty> getListaProtocolProperty(long idProprietario, org.openspcoop2.core.constants.ProprietariProtocolProperty tipologiaProprietario,
Connection connection,
String tipoDatabase, IDriverBYOK driverBYOK) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
try {
return DBProtocolPropertiesUtils.getListaProtocolPropertyConfig(idProprietario,tipologiaProprietario,connection,tipoDatabase, driverBYOK);
}
catch(NotFoundException e) {
throw new DriverConfigurazioneNotFound(e.getMessage(),e);
}
catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
public static ProtocolProperty getProtocolProperty(long id, Connection connection, String tipoDatabase, IDriverBYOK driverBYOK) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
try {
return DBProtocolPropertiesUtils.getProtocolPropertyConfig(id, connection, tipoDatabase, driverBYOK);
}
catch(NotFoundException e) {
throw new DriverConfigurazioneNotFound(e.getMessage(),e);
}
catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
}