Filtri.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.commons;

  21. import java.util.ArrayList;
  22. import java.util.List;


  23. /**
  24.  * Filtri
  25.  *
  26.  * @author Stefano Corallo - corallo@link.it
  27.  * @author $Author$
  28.  * @version $Rev$, $Date$
  29.  */

  30. public final class Filtri
  31. {
  32.     private Filtri() {}

  33.    
  34.     public static final String FILTRO_PROTOCOLLO = "filtroProtocollo";
  35.     public static final String FILTRO_PROTOCOLLI = "filtroProtocolli";
  36.    
  37.     public static final String FILTRO_SOGGETTO_DEFAULT = "filtroSoggettoDefault";
  38.    
  39.     public static final String FILTRO_DOMINIO = "filtroDominio";
  40.    
  41.     public static final String FILTRO_STATO_ACCORDO = "filtroStatoAccordo";
  42.        
  43.     public static final String FILTRO_SERVICE_BINDING = "filtroServiceBinding";
  44.    
  45.     public static final String FILTRO_HTTP_METHOD = "filtroHttpMethod";
  46.    
  47.     public static final String FILTRO_SOGGETTO = "filtroSoggetto";
  48.    
  49.     public static final String FILTRO_SOGGETTO_EROGATORE_CONTAINS = "filtroSoggettoErogatoreContains";
  50.    
  51.     public static final String FILTRO_RUOLO_SERVIZIO_APPLICATIVO = "filtroRuoloSA";
  52.     public static final String VALUE_FILTRO_RUOLO_SERVIZIO_APPLICATIVO_EROGATORE = "Erogatore";
  53.     public static final String VALUE_FILTRO_RUOLO_SERVIZIO_APPLICATIVO_FRUITORE = "Fruitore";
  54.    
  55.     public static final String FILTRO_TIPO_SERVIZIO_APPLICATIVO = "filtroTipoSA";
  56.    
  57.     public static final String FILTRO_TIPO_SOGGETTO = "filtroTipoSoggetto";
  58.    
  59.     public static final String FILTRO_TIPO_CREDENZIALI = "filtroTipoCredenziali";
  60.     public static final String FILTRO_CREDENZIALE = "filtroCredenziale";
  61.     public static final String FILTRO_CREDENZIALE_ISSUER = "filtroCredenzialeIssuer";
  62.     public static final String FILTRO_CREDENZIALE_TOKEN_POLICY = "filtroCredenzialeTokenPolicy";
  63.    
  64.     public static final String FILTRO_RUOLO_TIPOLOGIA = "filtroRuoloTipologia";
  65.     public static final String FILTRO_RUOLO_CONTESTO = "filtroRuoloContesto";
  66.    
  67.     public static final String FILTRO_SCOPE_TIPOLOGIA = "filtroScopeTipologia";
  68.     public static final String FILTRO_SCOPE_CONTESTO = "filtroScopeContesto";
  69.    
  70.     public static final String FILTRO_API_CONTESTO = "filtroApiContesto";
  71.     public static final String FILTRO_API_CONTESTO_VALUE_EROGAZIONE_FRUIZIONE = "ErogazioneFruizione";
  72.     public static final String FILTRO_API_CONTESTO_VALUE_APPLICATIVI = "Applicativi";
  73.     public static final String FILTRO_API_CONTESTO_VALUE_SOGGETTI = "Soggetti";
  74.     public static final String FILTRO_API_IMPLEMENTAZIONE = "filtroApiImpl";
  75.    
  76.     public static final String FILTRO_SERVIZIO_APPLICATIVO = "filtroSA";
  77.    
  78.     public static final String FILTRO_UTENTE = "filtroUtente";
  79.    
  80.     public static final String FILTRO_AZIONE = "filtroAzione";
  81.    
  82.     public static final String FILTRO_RUOLO = "filtroRuolo";
  83.     public static final String FILTRO_RUOLO_NOME = "Ruolo";
  84.     public static final String FILTRO_RUOLO_VALORE_ENTRAMBI = "Qualsiasi";
  85.     public static final String FILTRO_RUOLO_VALORE_FRUIZIONE = "Fruizione";
  86.     public static final String FILTRO_RUOLO_VALORE_EROGAZIONE = "Erogazione";
  87.    
  88.     public static final String FILTRO_APPLICABILITA = "filtroRuolo";
  89.     public static final String FILTRO_APPLICABILITA_NOME = "Applicabilita";
  90.     public static final String FILTRO_APPLICABILITA_VALORE_QUALSIASI = "Qualsiasi";
  91.     public static final String FILTRO_APPLICABILITA_VALORE_FRUIZIONE = "Fruizione";
  92.     public static final String FILTRO_APPLICABILITA_VALORE_EROGAZIONE = "Erogazione";
  93.     public static final String FILTRO_APPLICABILITA_VALORE_IMPLEMENTAZIONE_API = "ImplementazioneApi";
  94.     public static final String FILTRO_APPLICABILITA_VALORE_CONFIGURAZIONE = "Configurazione";
  95.    
  96.     public static final String FILTRO_STATO = "filtroStato";
  97.     public static final String FILTRO_STATO_NOME = "Stato";
  98.     public static final String FILTRO_STATO_VALORE_QUALSIASI = "Qualsiasi";
  99.     public static final String FILTRO_STATO_VALORE_ABILITATO = "Abilitato";
  100.     public static final String FILTRO_STATO_VALORE_DISABILITATO = "Disabilitato";
  101.     public static final String FILTRO_STATO_VALORE_OK = "Ok";
  102.     public static final String FILTRO_STATO_VALORE_WARNING = "Warning";
  103.     public static final String FILTRO_STATO_VALORE_ERROR = "Error";
  104.    
  105.     public static final String FILTRO_TIPO_POLICY = "filtroTipoPolicy";
  106.     public static final String FILTRO_TIPO_POLICY_BUILT_IN = "built-in";
  107.     public static final String FILTRO_TIPO_POLICY_UTENTE = "utente";
  108.    
  109.     public static final String FILTRO_TIPO_RISORSA_POLICY = "filtroTipoRisorsaPolicy";
  110.    
  111.     public static final String FILTRO_TIPO_TOKEN_POLICY = "filtroTipoTokenPolicy";
  112.    
  113.     public static final String FILTRO_GRUPPO_SERVICE_BINDING = "filtroGruppoServiceBinding";
  114.    
  115.     public static final String FILTRO_GRUPPO = "filtroGruppo";
  116.    
  117.     public static final String FILTRO_API = "filtroApi";
  118.    
  119.     public static final String FILTRO_CANALE = "filtroCanale";
  120.     public static final String PREFIX_VALUE_CANALE_DEFAULT = "__DEFAULT__ ";

  121.     public static final String FILTRO_TIPO_PLUGIN_CLASSI = "filtroTipoPluginClassi";
  122.    
  123.     public static final String FILTRO_PROP_PLUGIN_CLASSI = "filtroPropPluginClassi";
  124.    
  125.     public static final String FILTRO_AUTENTICAZIONE_TOKEN_TIPO = "filtroAutenticazioneTokenTipo";
  126.    
  127.     public static final String FILTRO_AUTENTICAZIONE_TRASPORTO_TIPO = "filtroAutenticazioneTrasportoTipo";
  128.     public static final String FILTRO_AUTENTICAZIONE_TRASPORTO_TIPO_PLUGIN = "filtroAutenticazioneTrasportoTipoPlugin";
  129.    
  130.     public static final String FILTRO_CONFIGURAZIONE_TRANSAZIONI = "filtroConfigurazioneTransazioni";
  131.     public static final String FILTRO_CONFIGURAZIONE_TRANSAZIONI_VALORE_DEFAULT = "Default";
  132.     public static final String FILTRO_CONFIGURAZIONE_TRANSAZIONI_VALORE_RIDEFINITO_ABILITATO_DATABASE_O_FILETRACE = "Ridefinito (abilitato database o filetrace)";
  133.     public static final String FILTRO_CONFIGURAZIONE_TRANSAZIONI_VALORE_RIDEFINITO_ABILITATO_SOLO_DATABASE = "Ridefinito (abilitato solo database)";
  134.     public static final String FILTRO_CONFIGURAZIONE_TRANSAZIONI_VALORE_RIDEFINITO_ABILITATO_SOLO_FILETRACE = "Ridefinito (abilitato solo filetrace)";
  135.     public static final String FILTRO_CONFIGURAZIONE_TRANSAZIONI_VALORE_RIDEFINITO_ABILITATO_DATABASE_E_FILETRACE = "Ridefinito (abilitato sia database che filetrace)";
  136.     public static final String FILTRO_CONFIGURAZIONE_TRANSAZIONI_VALORE_RIDEFINITO_DISABILITATO = "Ridefinito (disabilitato)";
  137.    
  138.     public static final String FILTRO_CONFIGURAZIONE_DUMP_TIPO = "filtroConfigurazioneDumpTipo";
  139.     public static final String FILTRO_CONFIGURAZIONE_DUMP_TIPO_VALORE_DEFAULT = "Default";
  140.     public static final String FILTRO_CONFIGURAZIONE_DUMP_TIPO_VALORE_RIDEFINITO_ABILITATO = "Ridefinito (abilitato)";
  141.     public static final String FILTRO_CONFIGURAZIONE_DUMP_TIPO_VALORE_RIDEFINITO_ABILITATO_SOLO_HEADER = "Ridefinito (solo header)";
  142.     public static final String FILTRO_CONFIGURAZIONE_DUMP_TIPO_VALORE_RIDEFINITO_ABILITATO_RICHIESTA = "Ridefinito (abilitato sulla richiesta)";
  143.     public static final String FILTRO_CONFIGURAZIONE_DUMP_TIPO_VALORE_RIDEFINITO_ABILITATO_SOLO_HEADER_RICHIESTA = "Ridefinito (solo header della richiesta)";
  144.     public static final String FILTRO_CONFIGURAZIONE_DUMP_TIPO_VALORE_RIDEFINITO_ABILITATO_RISPOSTA = "Ridefinito (abilitato sulla risposta)";
  145.     public static final String FILTRO_CONFIGURAZIONE_DUMP_TIPO_VALORE_RIDEFINITO_ABILITATO_SOLO_HEADER_RISPOSTA = "Ridefinito (solo header della risposta)";
  146.     public static final String FILTRO_CONFIGURAZIONE_DUMP_TIPO_VALORE_RIDEFINITO_ABILITATO_RICHIESTA_USCITA = "Ridefinito (abilitato sulla richiesta in uscita)";
  147.     public static final String FILTRO_CONFIGURAZIONE_DUMP_TIPO_VALORE_RIDEFINITO_ABILITATO_SOLO_HEADER_RICHIESTA_USCITA = "Ridefinito (solo header della richiesta in uscita)";
  148.     public static final String FILTRO_CONFIGURAZIONE_DUMP_TIPO_VALORE_RIDEFINITO_ABILITATO_RISPOSTA_USCITA = "Ridefinito (abilitato sulla risposta in uscita)";
  149.     public static final String FILTRO_CONFIGURAZIONE_DUMP_TIPO_VALORE_RIDEFINITO_ABILITATO_SOLO_HEADER_RISPOSTA_USCITA = "Ridefinito (solo header della risposta in uscita)";
  150.     public static final String FILTRO_CONFIGURAZIONE_DUMP_TIPO_VALORE_RIDEFINITO_ABILITATO_RICHIESTA_INGRESSO = "Ridefinito (abilitato sulla richiesta in ingresso)";
  151.     public static final String FILTRO_CONFIGURAZIONE_DUMP_TIPO_VALORE_RIDEFINITO_ABILITATO_SOLO_HEADER_RICHIESTA_INGRESSO = "Ridefinito (solo header della richiesta in ingresso)";
  152.     public static final String FILTRO_CONFIGURAZIONE_DUMP_TIPO_VALORE_RIDEFINITO_ABILITATO_RISPOSTA_INGRESSO = "Ridefinito (abilitato sulla risposta in ingresso)";
  153.     public static final String FILTRO_CONFIGURAZIONE_DUMP_TIPO_VALORE_RIDEFINITO_ABILITATO_SOLO_HEADER_RISPOSTA_INGRESSO = "Ridefinito (solo header della risposta in ingresso)";
  154.     public static final String FILTRO_CONFIGURAZIONE_DUMP_TIPO_VALORE_RIDEFINITO_DISABILITATO = "Ridefinito (disabilitato)"; // and su richiesta e risposta
  155.     public static final String FILTRO_CONFIGURAZIONE_DUMP_TIPO_VALORE_RIDEFINITO_DISABILITATO_RICHIESTA = "Ridefinito (disabilitato sulla richiesta)";
  156.     public static final String FILTRO_CONFIGURAZIONE_DUMP_TIPO_VALORE_RIDEFINITO_DISABILITATO_RISPOSTA = "Ridefinito (disabilitato sulla risposta)";
  157.    
  158.     public static final String FILTRO_CONFIGURAZIONE_STATO = "filtroConfigurazioneStato";
  159.     public static final String FILTRO_CONFIGURAZIONE_STATO_VALORE_ABILITATO = "Abilitato";
  160.     public static final String FILTRO_CONFIGURAZIONE_STATO_VALORE_DISABILITATO = "Disabilitato";
  161.        
  162.     public static final String FILTRO_CONFIGURAZIONE_RATE_LIMITING_STATO = "filtroConfigurazioneRateLimitingStato";
  163.     public static final String FILTRO_CONFIGURAZIONE_RATE_LIMITING_STATO_VALORE_ABILITATO = "Abilitato";
  164.     public static final String FILTRO_CONFIGURAZIONE_RATE_LIMITING_STATO_VALORE_DISABILITATO = "Disabilitato";
  165.    
  166.     public static final String FILTRO_CONFIGURAZIONE_VALIDAZIONE_STATO = "filtroConfigurazioneValidazioneStato";
  167.     public static final String FILTRO_CONFIGURAZIONE_VALIDAZIONE_STATO_VALORE_ABILITATO = "Abilitato";
  168.     public static final String FILTRO_CONFIGURAZIONE_VALIDAZIONE_STATO_VALORE_DISABILITATO = "Disabilitato";
  169.    
  170.     public static final String FILTRO_CONFIGURAZIONE_CACHE_RISPOSTA_STATO = "filtroConfigurazioneCacheRispostaStato";
  171.     public static final String FILTRO_CONFIGURAZIONE_CACHE_RISPOSTA_STATO_VALORE_ABILITATO = "Abilitato";
  172.     public static final String FILTRO_CONFIGURAZIONE_CACHE_RISPOSTA_STATO_VALORE_DISABILITATO = "Disabilitato";
  173.    
  174.     public static final String FILTRO_CONFIGURAZIONE_MESSAGE_SECURITY_STATO = "filtroConfigurazioneMessageSecurityStato";
  175.     public static final String FILTRO_CONFIGURAZIONE_MESSAGE_SECURITY_VALORE_ABILITATO = "Abilitato";
  176.     public static final String FILTRO_CONFIGURAZIONE_MESSAGE_SECURITY_STATO_VALORE_ABILITATO_RICHIESTA = "Abilitato sulla richiesta";
  177.     public static final String FILTRO_CONFIGURAZIONE_MESSAGE_SECURITY_STATO_VALORE_ABILITATO_RISPOSTA = "Abilitato sulla risposta";
  178.     public static final String FILTRO_CONFIGURAZIONE_MESSAGE_SECURITY_VALORE_DISABILITATO = "Disabilitato";
  179.    
  180.     public static final String FILTRO_CONFIGURAZIONE_MTOM_STATO = "filtroConfigurazioneMTOMStato";
  181.     public static final String FILTRO_CONFIGURAZIONE_MTOM_VALORE_ABILITATO = "Abilitato";
  182.     public static final String FILTRO_CONFIGURAZIONE_MTOM_STATO_VALORE_ABILITATO_RICHIESTA = "Abilitato sulla richiesta";
  183.     public static final String FILTRO_CONFIGURAZIONE_MTOM_STATO_VALORE_ABILITATO_RISPOSTA = "Abilitato sulla risposta";
  184.     public static final String FILTRO_CONFIGURAZIONE_MTOM_VALORE_DISABILITATO = "Disabilitato";
  185.    
  186.     public static final String FILTRO_CONFIGURAZIONE_TRASFORMAZIONE_STATO = "filtroConfigurazioneTrasformazione";
  187.     public static final String FILTRO_CONFIGURAZIONE_TRASFORMAZIONE_STATO_VALORE_ABILITATO = "Abilitato";
  188.     public static final String FILTRO_CONFIGURAZIONE_TRASFORMAZIONE_STATO_VALORE_DISABILITATO = "Disabilitato";
  189.    
  190.     public static final String FILTRO_CONFIGURAZIONE_CORRELAZIONE_APPLICATIVA_STATO = "filtroConfigurazioneCorrelazioneApplicativaStato";
  191.     public static final String FILTRO_CONFIGURAZIONE_CORRELAZIONE_APPLICATIVA_VALORE_ABILITATO = "Abilitato";
  192.     public static final String FILTRO_CONFIGURAZIONE_CORRELAZIONE_APPLICATIVA_STATO_VALORE_ABILITATO_RICHIESTA = "Abilitato sulla richiesta";
  193.     public static final String FILTRO_CONFIGURAZIONE_CORRELAZIONE_APPLICATIVA_STATO_VALORE_ABILITATO_RISPOSTA = "Abilitato sulla risposta";
  194.     public static final String FILTRO_CONFIGURAZIONE_CORRELAZIONE_APPLICATIVA_VALORE_DISABILITATO = "Disabilitato";
  195.    
  196.     public static final String FILTRO_CONFIGURAZIONE_CORS_TIPO = "filtroConfigurazioneCorsTipo";
  197.     public static final String FILTRO_CONFIGURAZIONE_CORS_TIPO_VALORE_DEFAULT = "Default";
  198.     public static final String FILTRO_CONFIGURAZIONE_CORS_TIPO_VALORE_RIDEFINITO_ABILITATO = "Ridefinito (abilitato)";
  199.     public static final String FILTRO_CONFIGURAZIONE_CORS_TIPO_VALORE_RIDEFINITO_DISABILITATO = "Ridefinito (disabilitato)";
  200.    
  201.     public static final String FILTRO_CONFIGURAZIONE_CORS_ORIGIN = "filtroConfigurazioneCorsOrigin";
  202.    
  203.     public static final String FILTRO_CONNETTORE_TIPO = "filtroConnettoreTipo";
  204.     public static final String FILTRO_CONNETTORE_TIPO_VALORE_IM = "IM";
  205.     public static final String FILTRO_CONNETTORE_TIPO_PLUGIN = "filtroConnettoreTipoPlugin";
  206.     public static final String FILTRO_CONNETTORE_TOKEN_POLICY = "filtroConnettoreTokenPolicy";
  207.     public static final String FILTRO_CONNETTORE_ENDPOINT = "filtroConnettoreEndpoint";
  208.     public static final String FILTRO_CONNETTORE_KEYSTORE = "filtroConnettoreKeystore";
  209.    
  210.     public static final String FILTRO_CONNETTORE_DEBUG = "filtroConnettoreDebug";
  211.     public static final String FILTRO_CONNETTORE_DEBUG_VALORE_ABILITATO = "Abilitato";
  212.     public static final String FILTRO_CONNETTORE_DEBUG_VALORE_DISABILITATO = "Disabilitato";
  213.    
  214.     public static final String FILTRO_CONNETTORE_MULTIPLO_NOME = "filtroConnettoreMulNome";
  215.     public static final String FILTRO_CONNETTORE_MULTIPLO_FILTRO = "filtroConnettoreMulFiltro";
  216.    
  217.     public static final String FILTRO_MODI_SICUREZZA_CANALE = "filtroModiSicCanale";
  218.     public static final String FILTRO_MODI_SICUREZZA_MESSAGGIO = "filtroModiSicMessaggio";
  219.     public static final String FILTRO_MODI_SORGENTE_TOKEN = "filtroModiGenToken";
  220.     public static final String FILTRO_MODI_KEYSTORE_PATH = "filtroModiKeystorePath";
  221.     public static final String FILTRO_MODI_KEYSTORE_SUBJECT = "filtroModiKeystoreSubject";
  222.     public static final String FILTRO_MODI_KEYSTORE_ISSUER = "filtroModiKeystoreIssuer";
  223.     public static final String FILTRO_MODI_SICUREZZA_TOKEN = "filtroModiTokenStato";
  224.     public static final String FILTRO_MODI_SICUREZZA_TOKEN_POLICY = "filtroModiTokenPolicy";
  225.     public static final String FILTRO_MODI_SICUREZZA_TOKEN_CLIENT_ID = "filtroModiTokenClientId";
  226.     public static final String FILTRO_MODI_AUDIENCE = "filtroModiAudience";
  227.     public static final String FILTRO_MODI_DIGEST_RICHIESTA = "filtroModiDigestRich";
  228.     public static final String FILTRO_MODI_INFORMAZIONI_UTENTE = "filtroModiInfoUtente";
  229.    
  230.     public static final String FILTRO_PROPRIETA_NOME = "filtroPropNome";
  231.     public static final String FILTRO_PROPRIETA_VALORE = "filtroPropValore";
  232.    
  233.     public static final String FILTRO_REMOTE_STORE_ID = "filtroRemoteStoreId";
  234.     public static final String FILTRO_REMOTE_STORE_KEY_KID = "filtroRemoteStoreKeyKid";
  235.     public static final String FILTRO_REMOTE_STORE_KEY_CLIENT_ID = "filtroRemoteStoreKeyClientId";
  236.     public static final String FILTRO_REMOTE_STORE_KEY_ORGANIZZAZIONE = "filtroRemoteStoreKeyOrganizzazione";
  237.    
  238.     public static List<String> convertToTipiSoggetti(String filterProtocollo, String filterProtocolli) throws CoreException {
  239.         List<String> tipoSoggettiProtocollo = null;
  240.         if(filterProtocollo!=null && !"".equals(filterProtocollo)) {
  241.             try {
  242.                 tipoSoggettiProtocollo = ProtocolFactoryReflectionUtils.getOrganizationTypes(filterProtocollo);
  243.             }catch(Exception e) {
  244.                 throw new CoreException(e.getMessage(),e);
  245.             }
  246.         }
  247.         else if(filterProtocolli!=null && !"".equals(filterProtocolli)) {
  248.             tipoSoggettiProtocollo = convertToTipiSoggetti(filterProtocolli);
  249.         }
  250.         return tipoSoggettiProtocollo;
  251.     }
  252.     private static List<String> convertToTipiSoggetti(String filterProtocolli) throws CoreException {
  253.         List<String> tipoSoggettiProtocollo = null;
  254.         List<String> protocolli = Filtri.convertToList(filterProtocolli);
  255.         if(protocolli!=null && !protocolli.isEmpty()) {
  256.             tipoSoggettiProtocollo = new ArrayList<>();
  257.             for (String protocollo : protocolli) {
  258.                 try {
  259.                     List<String> tipi = ProtocolFactoryReflectionUtils.getOrganizationTypes(protocollo);
  260.                     if(tipi!=null && !tipi.isEmpty()) {
  261.                         tipoSoggettiProtocollo.addAll(tipi);
  262.                     }
  263.                 }catch(Exception e) {
  264.                     throw new CoreException(e.getMessage(),e);
  265.                 }
  266.             }
  267.             if(tipoSoggettiProtocollo.isEmpty()) {
  268.                 tipoSoggettiProtocollo = null;
  269.             }
  270.         }
  271.         return tipoSoggettiProtocollo;
  272.     }
  273.    
  274.     public static List<String> convertToTipiServizi(String filterProtocollo, String filterProtocolli) throws CoreException {
  275.         List<String> tipoServiziProtocollo = null;
  276.         if(filterProtocollo!=null && !"".equals(filterProtocollo)) {
  277.             try {
  278.                 tipoServiziProtocollo = ProtocolFactoryReflectionUtils.getServiceTypes(filterProtocollo);
  279.             }catch(Exception e) {
  280.                 throw new CoreException(e.getMessage(),e);
  281.             }
  282.         }
  283.         else if(filterProtocolli!=null && !"".equals(filterProtocolli)) {
  284.             tipoServiziProtocollo = convertToTipiServizi(filterProtocolli);
  285.         }
  286.         return tipoServiziProtocollo;
  287.     }
  288.     private static List<String> convertToTipiServizi(String filterProtocolli) throws CoreException {
  289.         List<String> tipoServiziProtocollo = null;
  290.         List<String> protocolli = Filtri.convertToList(filterProtocolli);
  291.         if(protocolli!=null && !protocolli.isEmpty()) {
  292.             tipoServiziProtocollo = new ArrayList<>();
  293.             for (String protocollo : protocolli) {
  294.                 try {
  295.                     List<String> tipi = ProtocolFactoryReflectionUtils.getServiceTypes(protocollo);
  296.                     if(tipi!=null && !tipi.isEmpty()) {
  297.                         tipoServiziProtocollo.addAll(tipi);
  298.                     }
  299.                 }catch(Exception e) {
  300.                     throw new CoreException(e.getMessage(),e);
  301.                 }
  302.             }
  303.             if(tipoServiziProtocollo.isEmpty()) {
  304.                 tipoServiziProtocollo = null;
  305.             }
  306.         }
  307.         return tipoServiziProtocollo;
  308.     }
  309.    
  310.    
  311.    
  312.     public static String convertToString(List<String> listSrc) {
  313.         if(listSrc==null || listSrc.isEmpty()) {
  314.             return null;
  315.         }
  316.         StringBuilder bf = new StringBuilder();
  317.         for (String src : listSrc) {
  318.             if(bf.length()>0) {
  319.                 bf.append(",");
  320.             }
  321.             bf.append(src);
  322.         }
  323.         return bf.toString();
  324.     }
  325.     public static List<String> convertToList(String src) {
  326.         List<String> l = null;
  327.         if(src==null) {
  328.             return l;
  329.         }
  330.         l = new ArrayList<>();
  331.         if(src.contains(",")) {
  332.             String [] tmp = src.split(",");
  333.             for (int i = 0; i < tmp.length; i++) {
  334.                 l.add(tmp[i].trim());
  335.             }
  336.         }
  337.         else {
  338.             l.add(src);
  339.         }
  340.         return l;
  341.     }
  342.    
  343. }