CleanerOpenSPCoop2Extensions.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.utils;

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

  23. import org.openspcoop2.core.config.AccessoRegistroRegistro;
  24. import org.openspcoop2.core.config.Configurazione;
  25. import org.openspcoop2.core.config.PortaApplicativa;
  26. import org.openspcoop2.core.config.PortaApplicativaServizioApplicativo;
  27. import org.openspcoop2.core.config.PortaDelegata;
  28. import org.openspcoop2.core.config.Proprieta;
  29. import org.openspcoop2.core.config.ProtocolProperty;
  30. import org.openspcoop2.core.config.ServizioApplicativo;

  31. /**
  32.  * CleanerOpenSPCoop2Extensions
  33.  *
  34.  * @author Poli Andrea (apoli@link.it)
  35.  * @author $Author$
  36.  * @version $Rev$, $Date$
  37.  */
  38. public class CleanerOpenSPCoop2Extensions {

  39.     public void clean(Configurazione configurazionePdD){

  40.         if(configurazionePdD.getRoutingTable()!=null){
  41.             configurazionePdD.getRoutingTable().setAbilitata(null);
  42.         }  

  43.         if(configurazionePdD.getAccessoRegistro()!=null){
  44.             if(configurazionePdD.getAccessoRegistro().sizeRegistroList()>0){
  45.                 for (AccessoRegistroRegistro accessoRegistro : configurazionePdD.getAccessoRegistro().getRegistroList()) {
  46.                     accessoRegistro.setTipoDatabase(null);
  47.                     accessoRegistro.setGenericPropertiesMap(null);
  48.                 }
  49.             }
  50.         }
  51.        
  52.         if(configurazionePdD.getGestioneErrore()!=null){
  53.             if(configurazionePdD.getGestioneErrore().getComponenteCooperazione()!=null){
  54.                 this.clean(configurazionePdD.getGestioneErrore().getComponenteCooperazione());
  55.             }  
  56.             if(configurazionePdD.getGestioneErrore().getComponenteIntegrazione()!=null){
  57.                 this.clean(configurazionePdD.getGestioneErrore().getComponenteIntegrazione());
  58.             }
  59.         }
  60.        
  61.         if(configurazionePdD.getSystemProperties()!=null && configurazionePdD.getSystemProperties().sizeSystemPropertyList()<=0) {
  62.             configurazionePdD.setSystemProperties(null); // altrimeni da errore di validazione in fase di import
  63.         }
  64.        
  65.     }

  66.     public void clean(org.openspcoop2.core.config.ConfigurazioneUrlInvocazione configUrlInvocazione) {
  67.        
  68.     }
  69.    
  70.     public void clean(org.openspcoop2.core.config.ConfigurazioneUrlInvocazioneRegola configUrlInvocazioneRegola) {
  71.        
  72.     }
  73.    
  74.     public void clean(org.openspcoop2.core.config.RegistroPlugin plugin) {
  75.        
  76.     }
  77.    
  78.     public void clean(org.openspcoop2.core.config.GenericProperties policy) {
  79.        
  80.     }
  81.    
  82.     public void clean(org.openspcoop2.core.config.Soggetto soggettoConfig){
  83.        
  84.         soggettoConfig.setSuperUser(null);
  85.        
  86.         if(soggettoConfig.sizeConnettoreList()>0){
  87.             for (org.openspcoop2.core.config.Connettore connettore : soggettoConfig.getConnettoreList()) {
  88.                 this.clean(connettore);
  89.             }
  90.         }
  91.     }

  92.     public void clean(ServizioApplicativo servizioApplicativo){
  93.        
  94.         servizioApplicativo.setIdSoggetto(null);
  95.         servizioApplicativo.setTipoSoggettoProprietario(null);
  96.         servizioApplicativo.setNomeSoggettoProprietario(null);
  97.         servizioApplicativo.setTipologiaErogazione(null);
  98.         servizioApplicativo.setTipologiaFruizione(null);
  99.        
  100.         if(servizioApplicativo.getInvocazioneServizio()!=null){
  101.             if(servizioApplicativo.getInvocazioneServizio().getConnettore()!=null){
  102.                 this.clean(servizioApplicativo.getInvocazioneServizio().getConnettore());  
  103.             }
  104.             if(servizioApplicativo.getInvocazioneServizio().getGestioneErrore()!=null){
  105.                 this.clean(servizioApplicativo.getInvocazioneServizio().getGestioneErrore());  
  106.             }
  107.         }
  108.        
  109.         if(servizioApplicativo.getRispostaAsincrona()!=null){
  110.             if(servizioApplicativo.getRispostaAsincrona().getConnettore()!=null){
  111.                 this.clean(servizioApplicativo.getRispostaAsincrona().getConnettore());
  112.             }
  113.             if(servizioApplicativo.getRispostaAsincrona().getGestioneErrore()!=null){
  114.                 this.clean(servizioApplicativo.getRispostaAsincrona().getGestioneErrore());
  115.             }
  116.         }
  117.        
  118.         if(servizioApplicativo.sizeProtocolPropertyList()>0) {
  119.             for (ProtocolProperty pp : servizioApplicativo.getProtocolPropertyList()) {
  120.                 this.clean(pp);
  121.             }
  122.         }
  123.     }

  124.     public void clean(PortaDelegata portaDelegata){

  125.         portaDelegata.setIdSoggetto(null);
  126.         portaDelegata.setIdAccordo(null);
  127.         portaDelegata.setIdPortType(null);
  128.         portaDelegata.setStatoMessageSecurity(null);
  129.         portaDelegata.setTipoSoggettoProprietario(null);
  130.         portaDelegata.setNomeSoggettoProprietario(null);
  131.        
  132.         if(portaDelegata.getMessageSecurity()!=null) {
  133.             if(portaDelegata.getMessageSecurity().getRequestFlow()!=null && portaDelegata.getMessageSecurity().getRequestFlow().sizeParameterList()<=0) {
  134.                 portaDelegata.getMessageSecurity().setRequestFlow(null); // altrimeni da errore di validazione in fase di import
  135.             }
  136.             if(portaDelegata.getMessageSecurity().getResponseFlow()!=null && portaDelegata.getMessageSecurity().getResponseFlow().sizeParameterList()<=0) {
  137.                 portaDelegata.getMessageSecurity().setResponseFlow(null); // altrimeni da errore di validazione in fase di import
  138.             }
  139.         }
  140.        
  141.         if(portaDelegata.getRuoli()!=null && portaDelegata.getRuoli().sizeRuoloList()<=0) {
  142.             portaDelegata.setRuoli(null); // altrimeni da errore di validazione in fase di import
  143.         }
  144.        
  145.         if(portaDelegata.getScope()!=null && portaDelegata.getScope().sizeScopeList()<=0) {
  146.             portaDelegata.setScope(null); // altrimeni da errore di validazione in fase di import
  147.         }
  148.        
  149.         if(portaDelegata.getCorrelazioneApplicativa()!=null && portaDelegata.getCorrelazioneApplicativa().sizeElementoList()<=0) {
  150.             portaDelegata.setCorrelazioneApplicativa(null); // altrimeni da errore di validazione in fase di import
  151.         }
  152.         if(portaDelegata.getCorrelazioneApplicativaRisposta()!=null && portaDelegata.getCorrelazioneApplicativaRisposta().sizeElementoList()<=0) {
  153.             portaDelegata.setCorrelazioneApplicativaRisposta(null); // altrimeni da errore di validazione in fase di import
  154.         }
  155.        
  156.         // Fix altrimenti viene serializzato un xml vuoto di local forward, e quando viene re-importato il default e' abilitato
  157.         if(portaDelegata.getLocalForward()!=null) {
  158.             if(portaDelegata.getLocalForward().getStato()==null) {
  159.                 portaDelegata.setLocalForward(null);
  160.             }
  161.         }
  162.     }

  163.     public void clean(PortaApplicativa portaApplicativa){

  164.         portaApplicativa.setIdSoggetto(null);
  165.         portaApplicativa.setIdAccordo(null);
  166.         portaApplicativa.setIdPortType(null);
  167.         portaApplicativa.setStatoMessageSecurity(null);
  168.         portaApplicativa.setTipoSoggettoProprietario(null);
  169.         portaApplicativa.setNomeSoggettoProprietario(null);
  170.    
  171.         if(portaApplicativa.sizeServizioApplicativoList()>0) {
  172.             for (PortaApplicativaServizioApplicativo pasa : portaApplicativa.getServizioApplicativoList()) {
  173.                 pasa.setIdServizioApplicativo(null);
  174.                 if(pasa.getDatiConnettore()!=null) {
  175.                     if(pasa.getDatiConnettore().sizeProprietaList()>0) {
  176.                        
  177.                         List<String> nomiDaEliminare = new ArrayList<>();
  178.                        
  179.                         for (Proprieta p : pasa.getDatiConnettore().getProprietaList()) {
  180.                             if(p.getValore()==null || "".equals(p.getValore())) {
  181.                                 // non devo serializzare valori vuoti o null (DB oracle non lo permette)
  182.                                 nomiDaEliminare.add(p.getNome());
  183.                             }
  184.                         }
  185.                        
  186.                         while(nomiDaEliminare.size()>0) {
  187.                             String nome = nomiDaEliminare.remove(0);
  188.                             for (int i = 0; i < pasa.getDatiConnettore().sizeProprietaList(); i++) {
  189.                                 Proprieta p = pasa.getDatiConnettore().getProprieta(i);
  190.                                 if(p.getNome().equals(nome)) {
  191.                                     pasa.getDatiConnettore().removeProprieta(i);
  192.                                     break;
  193.                                 }
  194.                             }
  195.                         }
  196.                     }
  197.                 }
  198.             }
  199.         }
  200.        
  201.         if(portaApplicativa.getMessageSecurity()!=null) {
  202.             if(portaApplicativa.getMessageSecurity().getRequestFlow()!=null && portaApplicativa.getMessageSecurity().getRequestFlow().sizeParameterList()<=0) {
  203.                 portaApplicativa.getMessageSecurity().setRequestFlow(null); // altrimeni da errore di validazione in fase di import
  204.             }
  205.             if(portaApplicativa.getMessageSecurity().getResponseFlow()!=null && portaApplicativa.getMessageSecurity().getResponseFlow().sizeParameterList()<=0) {
  206.                 portaApplicativa.getMessageSecurity().setResponseFlow(null); // altrimeni da errore di validazione in fase di import
  207.             }
  208.         }
  209.        
  210.         if(portaApplicativa.getSoggetti()!=null && portaApplicativa.getSoggetti().sizeSoggettoList()<=0) {
  211.             portaApplicativa.setSoggetti(null); // altrimeni da errore di validazione in fase di import
  212.         }
  213.        
  214.         if(portaApplicativa.getRuoli()!=null && portaApplicativa.getRuoli().sizeRuoloList()<=0) {
  215.             portaApplicativa.setRuoli(null); // altrimeni da errore di validazione in fase di import
  216.         }
  217.            
  218.         if(portaApplicativa.getScope()!=null && portaApplicativa.getScope().sizeScopeList()<=0) {
  219.             portaApplicativa.setScope(null); // altrimeni da errore di validazione in fase di import
  220.         }
  221.        
  222.         if(portaApplicativa.getCorrelazioneApplicativa()!=null && portaApplicativa.getCorrelazioneApplicativa().sizeElementoList()<=0) {
  223.             portaApplicativa.setCorrelazioneApplicativa(null); // altrimeni da errore di validazione in fase di import
  224.         }
  225.         if(portaApplicativa.getCorrelazioneApplicativaRisposta()!=null && portaApplicativa.getCorrelazioneApplicativaRisposta().sizeElementoList()<=0) {
  226.             portaApplicativa.setCorrelazioneApplicativaRisposta(null); // altrimeni da errore di validazione in fase di import
  227.         }
  228.     }

  229.    

  230.    
  231.     // ---- UTILITY
  232.    
  233.     private void clean(org.openspcoop2.core.config.Connettore connettoreConfigurazione){
  234.         connettoreConfigurazione.setNomeRegistro(null);
  235.         connettoreConfigurazione.setTipoDestinatarioTrasmissioneBusta(null);
  236.         connettoreConfigurazione.setNomeDestinatarioTrasmissioneBusta(null);
  237.         connettoreConfigurazione.setCustom(null);
  238.     }
  239.    
  240.     private void clean(org.openspcoop2.core.config.GestioneErrore gestioneErrore){
  241.         gestioneErrore.setNome(null);
  242.     }
  243.    
  244.     private void clean(ProtocolProperty pp){
  245.         pp.setByteFile(null);
  246.         pp.setIdProprietario(null);
  247.         pp.setTipoProprietario(null);
  248.     }
  249.    
  250. }