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

  21. import org.openspcoop2.core.registry.AccordoCooperazione;
  22. import org.openspcoop2.core.registry.AccordoServizioParteComune;
  23. import org.openspcoop2.core.registry.AccordoServizioParteComuneServizioCompostoServizioComponente;
  24. import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
  25. import org.openspcoop2.core.registry.Azione;
  26. import org.openspcoop2.core.registry.ConfigurazioneServizioAzione;
  27. import org.openspcoop2.core.registry.Documento;
  28. import org.openspcoop2.core.registry.Fruitore;
  29. import org.openspcoop2.core.registry.Gruppo;
  30. import org.openspcoop2.core.registry.IdSoggetto;
  31. import org.openspcoop2.core.registry.Operation;
  32. import org.openspcoop2.core.registry.PortType;
  33. import org.openspcoop2.core.registry.PortaDominio;
  34. import org.openspcoop2.core.registry.ProtocolProperty;
  35. import org.openspcoop2.core.registry.Resource;
  36. import org.openspcoop2.core.registry.ResourceResponse;
  37. import org.openspcoop2.core.registry.Ruolo;
  38. import org.openspcoop2.core.registry.Scope;
  39. import org.openspcoop2.core.registry.constants.BindingUse;
  40. import org.openspcoop2.core.registry.constants.CostantiRegistroServizi;

  41. /**
  42.  * CleanerOpenSPCoop2Extensions
  43.  *
  44.  * @author Poli Andrea (apoli@link.it)
  45.  * @author $Author$
  46.  * @version $Rev$, $Date$
  47.  */
  48. public class CleanerOpenSPCoop2Extensions {

  49.     public void clean(PortaDominio portaDominio){

  50.         portaDominio.setSuperUser(null);
  51.        
  52.     }
  53.    
  54.     public void clean(Gruppo gruppo){

  55.         gruppo.setSuperUser(null);
  56.        
  57.     }
  58.    
  59.     public void clean(Ruolo ruolo){

  60.         ruolo.setSuperUser(null);
  61.        
  62.     }
  63.    
  64.     public void clean(Scope scope){

  65.         scope.setSuperUser(null);
  66.        
  67.     }
  68.        
  69.     public void clean(org.openspcoop2.core.registry.Soggetto soggettoRegistro){
  70.        
  71.         soggettoRegistro.setSuperUser(null);
  72.         soggettoRegistro.setPrivato(null);
  73.        
  74.         if(soggettoRegistro.getConnettore()!=null){
  75.             this.clean(soggettoRegistro.getConnettore());
  76.         }
  77.        
  78.         if(soggettoRegistro.sizeProtocolPropertyList()>0) {
  79.             for (ProtocolProperty pp : soggettoRegistro.getProtocolPropertyList()) {
  80.                 this.clean(pp);
  81.             }
  82.         }
  83.     }

  84.     public void clean(AccordoServizioParteComune accordo){

  85.         accordo.setSuperUser(null);
  86.         accordo.setStatoPackage(null);
  87.         accordo.setPrivato(null);
  88.         accordo.setByteWsdlDefinitorio(null);
  89.         accordo.setByteWsdlConcettuale(null);
  90.         accordo.setByteWsdlLogicoErogatore(null);
  91.         accordo.setByteWsdlLogicoFruitore(null);
  92.         accordo.setByteSpecificaConversazioneConcettuale(null);
  93.         accordo.setByteSpecificaConversazioneErogatore(null);
  94.         accordo.setByteSpecificaConversazioneFruitore(null);
  95.        
  96.         if(accordo.getServizioComposto()!=null){
  97.             accordo.getServizioComposto().setIdAccordoCooperazione(null);
  98.            
  99.             if(accordo.getServizioComposto().sizeServizioComponenteList()>0){
  100.                 for (AccordoServizioParteComuneServizioCompostoServizioComponente servizioComponente : accordo.getServizioComposto().getServizioComponenteList()) {
  101.                     servizioComponente.setIdServizioComponente(null);
  102.                 }
  103.             }
  104.            
  105.             if(accordo.getServizioComposto().sizeSpecificaCoordinamentoList()>0){
  106.                 for (Documento documento : accordo.getServizioComposto().getSpecificaCoordinamentoList()) {
  107.                     this.clean(documento);
  108.                 }
  109.             }
  110.         }
  111.        
  112.         if(accordo.sizePortTypeList()>0){
  113.             for (PortType portType : accordo.getPortTypeList()) {
  114.                
  115.                 if(CostantiRegistroServizi.PROFILO_AZIONE_DEFAULT.equals(portType.getProfiloPT())){
  116.                     // si reimpostano tutti, poiche' viene eliminato il profiloPT
  117.                     portType.setProfiloCollaborazione(accordo.getProfiloCollaborazione());
  118.                     portType.setConfermaRicezione(accordo.getConfermaRicezione());
  119.                     portType.setConsegnaInOrdine(accordo.getConsegnaInOrdine());
  120.                     portType.setFiltroDuplicati(accordo.getFiltroDuplicati());
  121.                     portType.setIdCollaborazione(accordo.getIdCollaborazione());
  122.                     portType.setIdRiferimentoRichiesta(accordo.getIdRiferimentoRichiesta());
  123.                     portType.setScadenza(accordo.getScadenza());
  124.                 }
  125.                 portType.setProfiloPT(null);
  126.                 portType.setIdAccordo(null);
  127.                
  128.                 if(portType.sizeAzioneList()>0){
  129.                     for (Operation operation : portType.getAzioneList()) {
  130.                        
  131.                         if(CostantiRegistroServizi.PROFILO_AZIONE_DEFAULT.equals(operation.getProfAzione())){
  132.                             // si reimpostano tutti, poiche' viene eliminato il profAzione
  133.                             if(CostantiRegistroServizi.PROFILO_AZIONE_DEFAULT.equals(portType.getProfiloPT())){
  134.                                 operation.setProfiloCollaborazione(accordo.getProfiloCollaborazione());
  135.                                 operation.setConfermaRicezione(accordo.getConfermaRicezione());
  136.                                 operation.setConsegnaInOrdine(accordo.getConsegnaInOrdine());
  137.                                 operation.setFiltroDuplicati(accordo.getFiltroDuplicati());
  138.                                 operation.setIdCollaborazione(accordo.getIdCollaborazione());
  139.                                 operation.setIdRiferimentoRichiesta(accordo.getIdRiferimentoRichiesta());
  140.                                 operation.setScadenza(accordo.getScadenza());
  141.                             }
  142.                             else {
  143.                                 operation.setProfiloCollaborazione(portType.getProfiloCollaborazione());
  144.                                 operation.setConfermaRicezione(portType.getConfermaRicezione());
  145.                                 operation.setConsegnaInOrdine(portType.getConsegnaInOrdine());
  146.                                 operation.setFiltroDuplicati(portType.getFiltroDuplicati());
  147.                                 operation.setIdCollaborazione(portType.getIdCollaborazione());
  148.                                 operation.setIdRiferimentoRichiesta(portType.getIdRiferimentoRichiesta());
  149.                                 operation.setScadenza(portType.getScadenza());
  150.                             }
  151.                         }
  152.                         operation.setProfAzione(null);
  153.                         operation.setIdPortType(null);
  154.                         if(operation.getMessageInput()!=null){
  155.                             if(operation.getMessageInput().sizePartList()<=0){
  156.                                 if(operation.getMessageInput().getSoapNamespace()==null &&
  157.                                         (operation.getMessageInput().getUse()==null || BindingUse.LITERAL.equals(operation.getMessageInput().getUse())) // il default non viene serializzato
  158.                                     ){
  159.                                     operation.setMessageInput(null);
  160.                                 }
  161.                             }
  162.                         }
  163.                         if(operation.getMessageOutput()!=null){
  164.                             if(operation.getMessageOutput().sizePartList()<=0){
  165.                                 if(operation.getMessageOutput().getSoapNamespace()==null &&
  166.                                         (operation.getMessageOutput().getUse()==null || BindingUse.LITERAL.equals(operation.getMessageOutput().getUse())) // il default non viene serializzato
  167.                                     ){
  168.                                     operation.setMessageOutput(null);
  169.                                 }
  170.                             }
  171.                         }
  172.                        
  173.                         if(operation.sizeProtocolPropertyList()>0) {
  174.                             for (ProtocolProperty pp : operation.getProtocolPropertyList()) {
  175.                                 this.clean(pp);
  176.                             }
  177.                         }
  178.                     }
  179.                 }
  180.                
  181.                 if(portType.sizeProtocolPropertyList()>0) {
  182.                     for (ProtocolProperty pp : portType.getProtocolPropertyList()) {
  183.                         this.clean(pp);
  184.                     }
  185.                 }
  186.             }
  187.         }
  188.        
  189.         if(accordo.sizeAzioneList()>0){
  190.             for (Azione azione : accordo.getAzioneList()) {
  191.                
  192.                 if(CostantiRegistroServizi.PROFILO_AZIONE_DEFAULT.equals(azione.getProfAzione())){
  193.                     // si reimpostano tutti, poiche' viene eliminato il profAzione
  194.                     azione.setProfiloCollaborazione(accordo.getProfiloCollaborazione());
  195.                     azione.setConfermaRicezione(accordo.getConfermaRicezione());
  196.                     azione.setConsegnaInOrdine(accordo.getConsegnaInOrdine());
  197.                     azione.setFiltroDuplicati(accordo.getFiltroDuplicati());
  198.                     azione.setIdCollaborazione(accordo.getIdCollaborazione());
  199.                     azione.setIdRiferimentoRichiesta(accordo.getIdRiferimentoRichiesta());
  200.                     azione.setScadenza(accordo.getScadenza());
  201.                 }
  202.                 azione.setProfAzione(null);
  203.                 azione.setIdAccordo(null);
  204.                
  205.                 if(azione.sizeProtocolPropertyList()>0) {
  206.                     for (ProtocolProperty pp : azione.getProtocolPropertyList()) {
  207.                         this.clean(pp);
  208.                     }
  209.                 }
  210.             }
  211.         }
  212.        
  213.         if(accordo.sizeResourceList()>0){
  214.             for (Resource resource : accordo.getResourceList()) {
  215.                
  216.                 if(CostantiRegistroServizi.PROFILO_AZIONE_DEFAULT.equals(resource.getProfAzione())){
  217.                     // si reimpostano tutti, poiche' viene eliminato il profAzione
  218.                     //resource.setProfiloCollaborazione(accordo.getProfiloCollaborazione());
  219.                     resource.setConfermaRicezione(accordo.getConfermaRicezione());
  220.                     resource.setConsegnaInOrdine(accordo.getConsegnaInOrdine());
  221.                     resource.setFiltroDuplicati(accordo.getFiltroDuplicati());
  222.                     resource.setIdCollaborazione(accordo.getIdCollaborazione());
  223.                     resource.setIdRiferimentoRichiesta(accordo.getIdRiferimentoRichiesta());
  224.                     resource.setScadenza(accordo.getScadenza());
  225.                 }
  226.                 resource.setProfAzione(null);
  227.                 resource.setIdAccordo(null);
  228.                
  229.                 if(resource.getRequest()!=null) {
  230.                     resource.getRequest().setIdResource(null);
  231.                 }
  232.                
  233.                 if(resource.sizeResponseList()>0) {
  234.                     for (ResourceResponse rr : resource.getResponseList()) {
  235.                         rr.setIdResource(null);
  236.                     }
  237.                 }
  238.                
  239.                 if(resource.sizeProtocolPropertyList()>0) {
  240.                     for (ProtocolProperty pp : resource.getProtocolPropertyList()) {
  241.                         this.clean(pp);
  242.                     }
  243.                 }
  244.             }
  245.         }
  246.        
  247.         if(accordo.sizeAllegatoList()>0){
  248.             for (Documento documento : accordo.getAllegatoList()) {
  249.                 this.clean(documento);
  250.             }
  251.         }
  252.         if(accordo.sizeSpecificaSemiformaleList()>0){
  253.             for (Documento documento : accordo.getSpecificaSemiformaleList()) {
  254.                 this.clean(documento);
  255.             }
  256.         }
  257.        
  258.         if(accordo.sizeProtocolPropertyList()>0) {
  259.             for (ProtocolProperty pp : accordo.getProtocolPropertyList()) {
  260.                 this.clean(pp);
  261.             }
  262.         }
  263.     }

  264.     public void clean(AccordoServizioParteSpecifica accordo){
  265.        
  266.         accordo.setSuperUser(null);
  267.         accordo.setStatoPackage(null);
  268.         accordo.setPrivato(null);
  269.         accordo.setIdAccordo(null);
  270.         accordo.setIdSoggetto(null);
  271.         accordo.setByteWsdlImplementativoErogatore(null);
  272.         accordo.setByteWsdlImplementativoFruitore(null);
  273.        
  274.         accordo.setTipoSoggettoErogatore(null);
  275.         accordo.setNomeSoggettoErogatore(null);
  276.        
  277.         if(accordo.getConfigurazioneServizio()!=null){
  278.                        
  279.             if(accordo.getConfigurazioneServizio().getConnettore()!=null){
  280.                 this.clean(accordo.getConfigurazioneServizio().getConnettore());
  281.             }
  282.            
  283.             if(accordo.getConfigurazioneServizio().sizeConfigurazioneAzioneList()>0){
  284.                 for (ConfigurazioneServizioAzione servizioAzione : accordo.getConfigurazioneServizio().getConfigurazioneAzioneList()) {
  285.                     if(servizioAzione.getConnettore()!=null){
  286.                         this.clean(servizioAzione.getConnettore());
  287.                     }
  288.                 }
  289.             }
  290.            
  291.         }
  292.        
  293.         if(accordo.sizeFruitoreList()>0){
  294.             for (Fruitore fruitore : accordo.getFruitoreList()) {
  295.                 this.clean(fruitore);
  296.                
  297.                 if(fruitore.sizeConfigurazioneAzioneList()>0){
  298.                     for (ConfigurazioneServizioAzione servizioAzione : fruitore.getConfigurazioneAzioneList()) {
  299.                         if(servizioAzione.getConnettore()!=null){
  300.                             this.clean(servizioAzione.getConnettore());
  301.                         }
  302.                     }
  303.                 }
  304.             }
  305.         }
  306.        
  307.         if(accordo.sizeAllegatoList()>0){
  308.             for (Documento documento : accordo.getAllegatoList()) {
  309.                 this.clean(documento);
  310.             }
  311.         }
  312.         if(accordo.sizeSpecificaSemiformaleList()>0){
  313.             for (Documento documento : accordo.getSpecificaSemiformaleList()) {
  314.                 this.clean(documento);
  315.             }
  316.         }
  317.         if(accordo.sizeSpecificaLivelloServizioList()>0){
  318.             for (Documento documento : accordo.getSpecificaLivelloServizioList()) {
  319.                 this.clean(documento);
  320.             }
  321.         }
  322.         if(accordo.sizeSpecificaSicurezzaList()>0){
  323.             for (Documento documento : accordo.getSpecificaSicurezzaList()) {
  324.                 this.clean(documento);
  325.             }
  326.         }
  327.        
  328.         if(accordo.sizeProtocolPropertyList()>0) {
  329.             for (ProtocolProperty pp : accordo.getProtocolPropertyList()) {
  330.                 this.clean(pp);
  331.             }
  332.         }
  333.     }
  334.    
  335.     public void clean(AccordoCooperazione accordo){

  336.         accordo.setSuperUser(null);
  337.         accordo.setStatoPackage(null);
  338.         accordo.setPrivato(null);
  339.        
  340.         while(accordo.sizeUriServiziCompostiList()>0){
  341.             accordo.removeUriServiziComposti(0);
  342.         }
  343.        
  344.         if(accordo.sizeAllegatoList()>0){
  345.             for (Documento documento : accordo.getAllegatoList()) {
  346.                 this.clean(documento);
  347.             }
  348.         }
  349.         if(accordo.sizeSpecificaSemiformaleList()>0){
  350.             for (Documento documento : accordo.getSpecificaSemiformaleList()) {
  351.                 this.clean(documento);
  352.             }
  353.         }
  354.        
  355.         if(accordo.getElencoPartecipanti()!=null){
  356.             if(accordo.getElencoPartecipanti().sizeSoggettoPartecipanteList()>0){
  357.                 for (IdSoggetto idSoggetto : accordo.getElencoPartecipanti().getSoggettoPartecipanteList()) {
  358.                     if(idSoggetto.getIdSoggetto()!=null){
  359.                         idSoggetto.setIdSoggetto(null);
  360.                     }
  361.                 }  
  362.             }  
  363.         }
  364.        
  365.         if(accordo.sizeProtocolPropertyList()>0) {
  366.             for (ProtocolProperty pp : accordo.getProtocolPropertyList()) {
  367.                 this.clean(pp);
  368.             }
  369.         }
  370.        
  371.     }
  372.    
  373.     public void clean(Fruitore fruitore){
  374.        
  375.         fruitore.setStatoPackage(null);
  376.         fruitore.setByteWsdlImplementativoErogatore(null);
  377.         fruitore.setByteWsdlImplementativoFruitore(null);
  378.         fruitore.setIdSoggetto(null);
  379.         fruitore.setIdServizio(null);
  380.        
  381.         if(fruitore.getConnettore()!=null){
  382.             this.clean(fruitore.getConnettore());
  383.         }
  384.        
  385.         if(fruitore.sizeConfigurazioneAzioneList()>0) {
  386.             for (ConfigurazioneServizioAzione configServizioAzione : fruitore.getConfigurazioneAzioneList()) {
  387.                 if(configServizioAzione.getConnettore()!=null) {
  388.                     this.clean(configServizioAzione.getConnettore());
  389.                 }
  390.             }
  391.         }
  392.        
  393.         while(fruitore.sizeServizioApplicativoList()>0){
  394.             fruitore.removeServizioApplicativo(0);
  395.         }
  396.        
  397.         if(fruitore.sizeProtocolPropertyList()>0) {
  398.             for (ProtocolProperty pp : fruitore.getProtocolPropertyList()) {
  399.                 this.clean(pp);
  400.             }
  401.         }
  402.        
  403.     }

  404.    
  405.     // ---- UTILITY
  406.    
  407.     private void clean(org.openspcoop2.core.registry.Connettore connettoreRegistry){
  408.         connettoreRegistry.setCustom(null);
  409.     }
  410.    
  411.     private void clean(Documento documento){
  412.         documento.setByteContenuto(null);
  413.         documento.setRuolo(null);
  414.         documento.setTipoProprietarioDocumento(null);
  415.         documento.setIdProprietarioDocumento(null);
  416.     }
  417.    
  418.     private void clean(ProtocolProperty pp){
  419.         pp.setByteFile(null);
  420.         pp.setIdProprietario(null);
  421.         pp.setTipoProprietario(null);
  422.     }
  423. }