ConnettoreAPIHelper.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.rs.server.api.impl.erogazioni;

  21. import java.util.HashMap;
  22. import java.util.Map;

  23. import org.openspcoop2.core.config.Connettore;
  24. import org.openspcoop2.core.config.ServizioApplicativo;
  25. import org.openspcoop2.core.config.constants.StatoFunzionalita;
  26. import org.openspcoop2.core.config.rs.server.model.ConnettoreEnum;
  27. import org.openspcoop2.core.config.rs.server.model.ConnettoreErogazione;
  28. import org.openspcoop2.core.config.rs.server.model.ConnettoreFruizione;
  29. import org.openspcoop2.core.config.rs.server.model.OneOfApplicativoServerConnettore;
  30. import org.openspcoop2.core.config.rs.server.model.OneOfConnettoreErogazioneConnettore;
  31. import org.openspcoop2.core.config.rs.server.model.OneOfConnettoreFruizioneConnettore;
  32. import org.openspcoop2.core.constants.TipiConnettore;

  33. /**
  34.  * ConnettoreAPIHelper
  35.  *
  36.  * @author $Author$
  37.  * @version $Rev$, $Date$
  38.  *
  39.  */
  40. public class ConnettoreAPIHelper {

  41.     public static String getUrlConnettore(ServizioApplicativo sa, boolean isRidefinito) throws Exception {
  42.         if(isRidefinito) {
  43.             return "Connettori ridefiniti nei gruppi";
  44.         }

  45.         return getUrlConnettore(sa.getInvocazioneServizio().getConnettore().getProperties(), sa.getInvocazioneServizio().getConnettore().getTipo(), sa.getInvocazioneServizio().getConnettore().getCustom(), sa.getInvocazioneServizio().getGetMessage().equals(StatoFunzionalita.ABILITATO));
  46.     }

  47.     private static String getUrlConnettore(Map<String, String> properties, String tipo, Boolean custom, boolean isMessageBox) throws Exception {
  48.         IConnettoreApiHelper helper = ConnettoreAPIHelper.getHelper(tipo, custom, isMessageBox);
  49.        
  50.         if(helper == null) return null;
  51.         return helper.getUrlConnettore(properties, tipo);
  52.     }

  53.     private static String CUSTOM_KEY = "CUSTOM";
  54.     private static Map<String, IConnettoreApiHelper> helpers;
  55.     private static Map<ConnettoreEnum, IConnettoreApiHelper> helpersByEnum;
  56.    
  57.     private static synchronized void initHelper() {
  58.         if(helpers== null) {
  59.             helpers = new HashMap<>();
  60.             ConnettoreHTTPApiHelper connHttpApiHelper = new ConnettoreHTTPApiHelper();
  61.             helpers.put(TipiConnettore.HTTP.toString(), connHttpApiHelper);
  62.             helpers.put(TipiConnettore.HTTPS.toString(), connHttpApiHelper);
  63.             helpers.put(TipiConnettore.FILE.toString(), new ConnettoreFileApiHelper());
  64.             helpers.put(TipiConnettore.JMS.toString(), new ConnettoreJmsApiHelper());
  65.             helpers.put(TipiConnettore.NULL.toString(), new ConnettoreNullApiHelper());
  66.             helpers.put(TipiConnettore.NULLECHO.toString(), new ConnettoreEchoApiHelper());
  67.             helpers.put(TipiConnettore.STATUS.toString(), new ConnettoreStatusApiHelper());
  68.             helpers.put(TipiConnettore.DISABILITATO.toString(), new ConnettoreMessageBoxApiHelper());
  69.             helpers.put(CUSTOM_KEY, new ConnettorePluginApiHelper());
  70.         }
  71.     }
  72.    
  73.     private static IConnettoreApiHelper getHelper(String tipo, Boolean custom, boolean isMessageBox) throws Exception {
  74.        
  75.         if(helpers== null) {
  76.             initHelper();
  77.         }
  78.        
  79.         if(helpers.containsKey(tipo)) {
  80.            
  81.             IConnettoreApiHelper iConnettoreApiHelper = helpers.get(tipo);
  82.             if(iConnettoreApiHelper instanceof ConnettoreMessageBoxApiHelper && !isMessageBox) {
  83.                 return null; //Connettore disabilitato
  84.             }
  85.             return iConnettoreApiHelper;
  86.         } else if(custom && helpers.containsKey(CUSTOM_KEY)) {
  87.             return helpers.get(CUSTOM_KEY);
  88.         } else {
  89.             return null;
  90. //          throw new Exception("Connettore tipo ["+tipo+"] custom ["+custom+"] non supportato");
  91.         }
  92.     }

  93.     private static synchronized void initHelperByEnum() {
  94.         if(helpersByEnum== null) {
  95.             helpersByEnum = new HashMap<>();
  96.             helpersByEnum.put(ConnettoreEnum.HTTP, new ConnettoreHTTPApiHelper());
  97.             helpersByEnum.put(ConnettoreEnum.FILE, new ConnettoreFileApiHelper());
  98.             helpersByEnum.put(ConnettoreEnum.JMS, new ConnettoreJmsApiHelper());
  99.             helpersByEnum.put(ConnettoreEnum.NULL, new ConnettoreNullApiHelper());
  100.             helpersByEnum.put(ConnettoreEnum.ECHO, new ConnettoreEchoApiHelper());
  101.             helpersByEnum.put(ConnettoreEnum.STATUS, new ConnettoreStatusApiHelper());
  102.             helpersByEnum.put(ConnettoreEnum.PLUGIN, new ConnettorePluginApiHelper());
  103.             helpersByEnum.put(ConnettoreEnum.MESSAGE_BOX, new ConnettoreMessageBoxApiHelper());
  104.         }
  105.     }
  106.    
  107.     private static IConnettoreApiHelper getHelper(ConnettoreEnum tipo) throws Exception {
  108.        
  109.         if(helpersByEnum== null) {
  110.             initHelperByEnum();
  111.         }
  112.        
  113.         if(helpersByEnum.containsKey(tipo)) {
  114.             return helpersByEnum.get(tipo);
  115.         } else {
  116.             throw new Exception("Connettore tipo ["+tipo+"] non supportato");
  117.         }
  118.     }

  119.     public static String getUrlConnettore(org.openspcoop2.core.registry.Connettore connettore, boolean isRidefinito) throws Exception {
  120.         if(isRidefinito) {
  121.             return "Connettori ridefiniti nei gruppi";
  122.         }

  123.         if(connettore == null) return null;
  124.        
  125.         boolean isMessageBox = false; //FRUIZIONI NO MSG BOX
  126.         return getUrlConnettore(connettore.getProperties(), connettore.getTipo(), connettore.getCustom(), isMessageBox);
  127.     }

  128.     public static final ConnettoreErogazione buildConnettoreErogazione(ServizioApplicativo sa) throws Exception {
  129.         ConnettoreErogazione connettoreErogazione = new ConnettoreErogazione();
  130.         connettoreErogazione.setConnettore(ConnettoreAPIHelper.getConnettoreErogazione(sa));
  131.         return connettoreErogazione;
  132.     }
  133.     public static final ConnettoreFruizione buildConnettoreFruizione(org.openspcoop2.core.registry.Connettore connettore) throws Exception {
  134.         ConnettoreFruizione connettoreFruizione = new ConnettoreFruizione();
  135.         connettoreFruizione.setConnettore(ConnettoreAPIHelper.getConnettoreFruizione(connettore));
  136.         return connettoreFruizione;
  137.     }

  138.     private static OneOfConnettoreFruizioneConnettore getConnettoreFruizione(
  139.             org.openspcoop2.core.registry.Connettore connettore) throws Exception {
  140.         IConnettoreApiHelper helper = ConnettoreAPIHelper.getHelper(connettore.getTipo(), connettore.getCustom(), false); //MessageBox disabilitato in fruizioni
  141.        
  142.         if(helper == null) return null;
  143.         return helper.buildConnettoreFruizione(connettore.getProperties(), connettore.getTipo());
  144.     }

  145.     private static OneOfConnettoreErogazioneConnettore getConnettoreErogazione(ServizioApplicativo sa) throws Exception {
  146.         IConnettoreApiHelper helper = ConnettoreAPIHelper.getHelper(sa.getInvocazioneServizio().getConnettore().getTipo(), sa.getInvocazioneServizio().getConnettore().getCustom(), sa.getInvocazioneServizio().getGetMessage().equals(StatoFunzionalita.ABILITATO));
  147.        
  148.         if(helper == null) return null;
  149.         return helper.buildConnettoreErogazione(sa);
  150.     }

  151.     public static OneOfApplicativoServerConnettore getConnettoreApplicativoServer(ServizioApplicativo sa) throws Exception {
  152.         IConnettoreApiHelper helper = ConnettoreAPIHelper.getHelper(sa.getInvocazioneServizio().getConnettore().getTipo(), sa.getInvocazioneServizio().getConnettore().getCustom(), sa.getInvocazioneServizio().getGetMessage().equals(StatoFunzionalita.ABILITATO));
  153.        
  154.         if(helper == null) return null;
  155.         return helper.buildConnettoreApplicativoServer(sa);
  156.     }

  157.     public static boolean connettoreCheckData(OneOfApplicativoServerConnettore connettore, ErogazioniEnv erogEnv, boolean erogazione) throws Exception {
  158.         IConnettoreApiHelper helper = ConnettoreAPIHelper.getHelper(connettore.getTipo());
  159.        
  160.         if(helper == null) return true;
  161.         return helper.connettoreCheckData(connettore, erogEnv, erogazione);
  162.     }

  163.     public static boolean connettoreCheckData(OneOfConnettoreErogazioneConnettore connettore, ErogazioniEnv erogEnv, boolean erogazione) throws Exception {
  164.         IConnettoreApiHelper helper = ConnettoreAPIHelper.getHelper(connettore.getTipo());
  165.        
  166.         if(helper == null) return true;
  167.         return helper.connettoreCheckData(connettore, erogEnv, erogazione);
  168.     }

  169.     public static boolean connettoreCheckData(OneOfConnettoreFruizioneConnettore connettore, ErogazioniEnv erogEnv, boolean erogazione) throws Exception {
  170.         IConnettoreApiHelper helper = ConnettoreAPIHelper.getHelper(connettore.getTipo());
  171.        
  172.         if(helper == null) return true;
  173.         return helper.connettoreCheckData(connettore, erogEnv, erogazione);
  174.     }

  175.     public static void fillConnettoreConfigurazione(ServizioApplicativo sa, ErogazioniEnv erogEnv, OneOfApplicativoServerConnettore connettore, String oldConnT) throws Exception {
  176.         IConnettoreApiHelper helper = ConnettoreAPIHelper.getHelper(connettore.getTipo());
  177.        
  178.         if(helper == null) return;
  179.         helper.buildConnettoreConfigurazione(sa, erogEnv, connettore, oldConnT);
  180.     }

  181.     public static void fillConnettoreConfigurazione(ServizioApplicativo sa, ErogazioniEnv erogEnv, OneOfConnettoreErogazioneConnettore connettore, String oldConnT) throws Exception {
  182.         IConnettoreApiHelper helper = ConnettoreAPIHelper.getHelper(connettore.getTipo());
  183.        
  184.         if(helper == null) return;
  185.         helper.buildConnettoreConfigurazione(sa, erogEnv, connettore, oldConnT);
  186.     }

  187.     public static void fillConnettoreConfigurazione(Connettore connis, ErogazioniEnv erogEnv, OneOfConnettoreFruizioneConnettore connettore, String oldConnT) throws Exception {
  188.         IConnettoreApiHelper helper = ConnettoreAPIHelper.getHelper(connettore.getTipo());
  189.        
  190.         if(helper == null) return;
  191.         helper.buildConnettoreConfigurazione(connis, erogEnv, connettore, oldConnT);
  192.     }

  193.     public static void fillConnettoreRegistro(org.openspcoop2.core.registry.Connettore connis, ErogazioniEnv erogEnv, OneOfApplicativoServerConnettore connettore, String oldConnT) throws Exception {
  194.         IConnettoreApiHelper helper = ConnettoreAPIHelper.getHelper(connettore.getTipo());
  195.        
  196.         if(helper == null) return;
  197.         helper.fillConnettoreRegistro(connis, erogEnv, connettore, oldConnT);
  198.     }

  199.     public static void fillConnettoreRegistro(org.openspcoop2.core.registry.Connettore connis, ErogazioniEnv erogEnv, OneOfConnettoreErogazioneConnettore connettore, String oldConnT) throws Exception {
  200.         IConnettoreApiHelper helper = ConnettoreAPIHelper.getHelper(connettore.getTipo());
  201.        
  202.         if(helper == null) return;
  203.         helper.fillConnettoreRegistro(connis, erogEnv, connettore, oldConnT);
  204.     }

  205.     public static void fillConnettoreRegistro(org.openspcoop2.core.registry.Connettore connis, ErogazioniEnv erogEnv, OneOfConnettoreFruizioneConnettore connettore, String oldConnT) throws Exception {
  206.         IConnettoreApiHelper helper = ConnettoreAPIHelper.getHelper(connettore.getTipo());
  207.        
  208.         if(helper == null) return;
  209.         helper.fillConnettoreRegistro(connis, erogEnv, connettore, oldConnT);
  210.     }

  211.     public static org.openspcoop2.core.registry.Connettore buildConnettoreRegistro(ErogazioniEnv erogEnv, OneOfApplicativoServerConnettore connettore) throws Exception {
  212.         IConnettoreApiHelper helper = ConnettoreAPIHelper.getHelper(connettore.getTipo());
  213.        
  214.         if(helper == null) return null;
  215.         return helper.buildConnettoreRegistro(erogEnv, connettore);
  216.     }

  217.     public static org.openspcoop2.core.registry.Connettore buildConnettoreRegistro(ErogazioniEnv erogEnv, OneOfConnettoreErogazioneConnettore connettore) throws Exception {
  218.         IConnettoreApiHelper helper = ConnettoreAPIHelper.getHelper(connettore.getTipo());
  219.        
  220.         if(helper == null) return null;
  221.         return helper.buildConnettoreRegistro(erogEnv, connettore);
  222.     }

  223.     public static org.openspcoop2.core.registry.Connettore buildConnettoreRegistro(ErogazioniEnv erogEnv, OneOfConnettoreFruizioneConnettore connettore) throws Exception {
  224.         IConnettoreApiHelper helper = ConnettoreAPIHelper.getHelper(connettore.getTipo());
  225.        
  226.         if(helper == null) return null;
  227.         return helper.buildConnettoreRegistro(erogEnv, connettore);
  228.     }

  229. }