PorteDelegateTrasformazioniRichiesta.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.web.ctrlstat.servlet.pd;

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

  23. import javax.servlet.http.HttpServletRequest;
  24. import javax.servlet.http.HttpServletResponse;
  25. import javax.servlet.http.HttpSession;

  26. import org.apache.commons.lang.StringUtils;
  27. import org.apache.struts.action.Action;
  28. import org.apache.struts.action.ActionForm;
  29. import org.apache.struts.action.ActionForward;
  30. import org.apache.struts.action.ActionMapping;
  31. import org.openspcoop2.core.config.PortaDelegata;
  32. import org.openspcoop2.core.config.TrasformazioneRegola;
  33. import org.openspcoop2.core.config.TrasformazioneRegolaRichiesta;
  34. import org.openspcoop2.core.config.TrasformazioneRest;
  35. import org.openspcoop2.core.config.TrasformazioneSoap;
  36. import org.openspcoop2.core.config.Trasformazioni;
  37. import org.openspcoop2.core.config.constants.VersioneSOAP;
  38. import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
  39. import org.openspcoop2.core.registry.beans.AccordoServizioParteComuneSintetico;
  40. import org.openspcoop2.message.constants.ServiceBinding;
  41. import org.openspcoop2.web.ctrlstat.core.ControlStationCore;
  42. import org.openspcoop2.web.ctrlstat.costanti.CostantiControlStation;
  43. import org.openspcoop2.web.ctrlstat.servlet.GeneralHelper;
  44. import org.openspcoop2.web.ctrlstat.servlet.apc.AccordiServizioParteComuneCore;
  45. import org.openspcoop2.web.ctrlstat.servlet.aps.AccordiServizioParteSpecificaCore;
  46. import org.openspcoop2.web.ctrlstat.servlet.soggetti.SoggettiCore;
  47. import org.openspcoop2.web.lib.mvc.BinaryParameter;
  48. import org.openspcoop2.web.lib.mvc.Costanti;
  49. import org.openspcoop2.web.lib.mvc.DataElement;
  50. import org.openspcoop2.web.lib.mvc.GeneralData;
  51. import org.openspcoop2.web.lib.mvc.PageData;
  52. import org.openspcoop2.web.lib.mvc.Parameter;
  53. import org.openspcoop2.web.lib.mvc.ServletUtils;
  54. import org.openspcoop2.web.lib.mvc.TipoOperazione;

  55. /**
  56.  * PorteDelegateTrasformazioniRichiesta
  57.  *
  58.  * @author Giuliano Pintori (pintori@link.it)
  59.  * @author $Author$
  60.  * @version $Rev$, $Date$
  61.  *
  62.  */
  63. public class PorteDelegateTrasformazioniRichiesta extends Action {

  64.     @Override
  65.     public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

  66.         HttpSession session = request.getSession(true);

  67.         // Inizializzo PageData
  68.         PageData pd = new PageData();

  69.         GeneralHelper generalHelper = new GeneralHelper(session);
  70.        
  71.         String userLogin = ServletUtils.getUserLoginFromSession(session);

  72.         // Inizializzo GeneralData
  73.         GeneralData gd = generalHelper.initGeneralData(request);
  74.        
  75.         try {
  76.            
  77.             PorteDelegateHelper porteDelegateHelper = new PorteDelegateHelper(request, pd, session);
  78.             // prelevo il flag che mi dice da quale pagina ho acceduto la sezione delle porte delegate
  79.             Integer parentPD = ServletUtils.getIntegerAttributeFromSession(PorteDelegateCostanti.ATTRIBUTO_PORTE_DELEGATE_PARENT, session, request);
  80.             if(parentPD == null) parentPD = PorteDelegateCostanti.ATTRIBUTO_PORTE_DELEGATE_PARENT_NONE;
  81.             String id = porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_ID);
  82.             long idInt = Long.parseLong(id);
  83.             String idsogg = porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_ID_SOGGETTO);
  84.            
  85.             String idAsps = porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_ID_ASPS);
  86.             if(idAsps == null)
  87.                 idAsps = "";
  88.            
  89.             String idFruizione = porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_ID_FRUIZIONE);
  90.             if(idFruizione == null)
  91.                 idFruizione = "";
  92.            
  93.             String idTrasformazioneS = porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_ID_TRASFORMAZIONE);
  94.             long idTrasformazione = Long.parseLong(idTrasformazioneS);
  95.            
  96.             String trasformazioneContenutoAbilitatoS  = porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_REQ_CONVERSIONE_ENABLED);
  97.             boolean trasformazioneContenutoAbilitato = trasformazioneContenutoAbilitatoS != null ? ServletUtils.isCheckBoxEnabled(trasformazioneContenutoAbilitatoS) : false;
  98.             String trasformazioneContenutoTipoS = porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_REQ_CONVERSIONE_TIPO);
  99.             org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione trasformazioneContenutoTipo =
  100.                     trasformazioneContenutoTipoS != null ? org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.toEnumConstant(trasformazioneContenutoTipoS) :
  101.                         org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.EMPTY;
  102.            
  103.             BinaryParameter trasformazioneContenutoTemplate = porteDelegateHelper.getBinaryParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_REQ_CONVERSIONE_TEMPLATE);
  104.             String trasformazioneContenutoTipoCheck = porteDelegateHelper.getParameter(CostantiControlStation.PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_REQ_CONVERSIONE_TIPO_CHECK);
  105.             String trasformazioneRichiestaContentType = porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_REQ_CONTENT_TYPE);
  106.             String trasformazioneRestAbilitatoS = porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_REST_TRANSFORMATION);
  107.             boolean trasformazioneRestAbilitato =  trasformazioneRestAbilitatoS != null ? ServletUtils.isCheckBoxEnabled(trasformazioneRestAbilitatoS) : false;
  108.             String trasformazioneRestMethod = porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_REST_METHOD);
  109.             String trasformazioneRestPath = porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_REST_PATH);
  110.             String trasformazioneSoapAbilitatoS = porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_SOAP_TRANSFORMATION);
  111.             boolean trasformazioneSoapAbilitato =  trasformazioneSoapAbilitatoS != null ? ServletUtils.isCheckBoxEnabled(trasformazioneSoapAbilitatoS) : false;
  112.             String trasformazioneSoapAction = porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_SOAP_ACTION);
  113.             String trasformazioneSoapVersion = porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_SOAP_VERSION);
  114.             String trasformazioneSoapEnvelope  =  porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_SOAP_ENVELOPE);
  115.             String trasformazioneSoapEnvelopeTipoS = porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_SOAP_ENVELOPE_TIPO);
  116.             org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione trasformazioneSoapEnvelopeTipo =
  117.                     trasformazioneSoapEnvelopeTipoS != null ? org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.toEnumConstant(trasformazioneSoapEnvelopeTipoS) :
  118.                         org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.EMPTY;
  119.             BinaryParameter trasformazioneSoapEnvelopeTemplate = porteDelegateHelper.getBinaryParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_SOAP_ENVELOPE_TEMPLATE);
  120.             String trasformazioneSoapEnvelopeTipoCheck = porteDelegateHelper.getParameter(CostantiControlStation.PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_SOAP_ENVELOPE_TIPO_CHECK);
  121.            
  122.             Parameter pId = new Parameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_ID, id);
  123.             Parameter pIdSoggetto = new Parameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_ID_SOGGETTO, idsogg);
  124.             Parameter pIdAsps = new Parameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_ID_ASPS, idAsps);
  125.             Parameter pIdFruizione = new Parameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_ID_FRUIZIONE, idFruizione);

  126.             PorteDelegateCore porteDelegateCore = new PorteDelegateCore();
  127.             AccordiServizioParteSpecificaCore apsCore = new AccordiServizioParteSpecificaCore(porteDelegateCore);
  128.             AccordiServizioParteComuneCore apcCore = new AccordiServizioParteComuneCore(porteDelegateCore);
  129.             SoggettiCore soggettiCore = new SoggettiCore(porteDelegateCore);
  130.            
  131.             // Preparo il menu
  132.             porteDelegateHelper.makeMenu();

  133.             // Prendo nome della porta applicativa
  134.             PortaDelegata portaDelegata = porteDelegateCore.getPortaDelegata(idInt);
  135.             String nomePorta = portaDelegata.getNome();
  136.             String protocollo = soggettiCore.getProtocolloAssociatoTipoSoggetto(portaDelegata.getTipoSoggettoProprietario());
  137.            
  138.             Trasformazioni trasformazioni = portaDelegata.getTrasformazioni();
  139.             TrasformazioneRegola oldRegola = null;
  140.             for (TrasformazioneRegola reg : trasformazioni.getRegolaList()) {
  141.                 if(reg.getId().longValue() == idTrasformazione) {
  142.                     oldRegola = reg;
  143.                     break;
  144.                 }
  145.             }
  146.             if(oldRegola==null) {
  147.                 throw new Exception("TrasformazioneRegola con id '"+idTrasformazione+"' non trovata");
  148.             }
  149.            
  150.             // Prendo il nome e il tipo del servizio
  151.             AccordoServizioParteSpecifica asps = apsCore.getAccordoServizioParteSpecifica(Integer.parseInt(idAsps));
  152.             AccordoServizioParteComuneSintetico apc = apcCore.getAccordoServizioSintetico(asps.getIdAccordo());
  153.             ServiceBinding serviceBindingMessage = apcCore.toMessageServiceBinding(apc.getServiceBinding());
  154.            
  155.             String postBackElementName = porteDelegateHelper.getPostBackElementName();
  156.            
  157.             // se ho modificato il soggetto ricalcolo il servizio e il service binding
  158.             if (postBackElementName != null) {
  159.                 if(postBackElementName.equals(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_REQ_CONVERSIONE_ENABLED)) {
  160.                     trasformazioneContenutoTipo = org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.EMPTY;
  161.                     trasformazioneRichiestaContentType = "";
  162.                     trasformazioneSoapAbilitato = false;
  163.                     trasformazioneSoapAction = "";
  164.                     trasformazioneSoapEnvelope = CostantiControlStation.VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_SOAP_ENVELOPE_DISABILITATO;
  165.                     trasformazioneSoapEnvelopeTipo = org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.EMPTY;
  166.                     trasformazioneSoapVersion = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_RICHIESTA_SOAP_VERSION_11;
  167.                     trasformazioneRestAbilitato = false;
  168.                     if(ServiceBinding.SOAP.equals(serviceBindingMessage)) {
  169.                         trasformazioneRestMethod = "";
  170.                         trasformazioneRestPath = "";
  171.                     }
  172.                    
  173.                     porteDelegateHelper.deleteBinaryParameters(trasformazioneContenutoTemplate, trasformazioneSoapEnvelopeTemplate);
  174.                 }
  175.                
  176.                 if(postBackElementName.equals(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_REQ_CONVERSIONE_TIPO)) {
  177.                     trasformazioneContenutoTipoCheck = CostantiControlStation.VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_REQ_CONVERSIONE_TIPO_CHECK_UPDATE_TIPO;
  178.                     porteDelegateHelper.deleteBinaryParameters(trasformazioneContenutoTemplate);
  179.                 }
  180.                
  181.                 if(postBackElementName.equals(trasformazioneContenutoTemplate.getName()) &&
  182.                     StringUtils.isEmpty(trasformazioneContenutoTipoCheck)) {
  183.                     trasformazioneContenutoTipoCheck = CostantiControlStation.VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_REQ_CONVERSIONE_TIPO_CHECK_UPDATE_FILE;
  184.                 }
  185.                
  186.                 if(postBackElementName.equals(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_SOAP_TRANSFORMATION)) {
  187.                     porteDelegateHelper.deleteBinaryParameters(trasformazioneSoapEnvelopeTemplate);
  188.                     if(trasformazioneSoapAbilitato) {
  189.                         trasformazioneSoapAction = "";
  190.                         trasformazioneSoapEnvelope = CostantiControlStation.VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_SOAP_ENVELOPE_DISABILITATO;
  191.                         trasformazioneSoapEnvelopeTipo = org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.EMPTY;
  192.                         trasformazioneSoapVersion = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_RICHIESTA_SOAP_VERSION_11;
  193.                     }
  194.                 }
  195.                
  196.                 if(postBackElementName.equals(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_SOAP_ENVELOPE)) {
  197.                     porteDelegateHelper.deleteBinaryParameters(trasformazioneSoapEnvelopeTemplate);
  198.                     if(CostantiControlStation.VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_SOAP_ENVELOPE_AS_ATTACHMENT.equals(trasformazioneSoapEnvelope)) {
  199.                         trasformazioneSoapEnvelopeTipo = org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.EMPTY;
  200.                     }
  201.                 }
  202.                
  203.                 if(postBackElementName.equals(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_SOAP_ENVELOPE_TIPO)) {
  204.                     trasformazioneSoapEnvelopeTipoCheck = CostantiControlStation.VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_REQ_CONVERSIONE_TIPO_CHECK_UPDATE_TIPO;
  205.                     porteDelegateHelper.deleteBinaryParameters(trasformazioneSoapEnvelopeTemplate);
  206.                 }
  207.                
  208.                 if(postBackElementName.equals(trasformazioneSoapEnvelopeTemplate.getName()) &&
  209.                     StringUtils.isEmpty(trasformazioneSoapEnvelopeTipoCheck)) {
  210.                     trasformazioneSoapEnvelopeTipoCheck = CostantiControlStation.VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_REQ_CONVERSIONE_TIPO_CHECK_UPDATE_FILE;
  211.                 }
  212.                
  213.                 if(postBackElementName.equals(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_REST_TRANSFORMATION) &&
  214.                     trasformazioneRestAbilitato) {
  215.                     trasformazioneRestMethod = "";
  216.                     trasformazioneRestPath = "";
  217.                 }
  218.             }
  219.            
  220.             String nomeTrasformazione = oldRegola.getNome();
  221.             Parameter pIdTrasformazione = new Parameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_ID_TRASFORMAZIONE, idTrasformazioneS);
  222.            
  223.             // parametri visualizzazione link
  224.             String servletTrasformazioniRichiestaHeadersList = PorteDelegateCostanti.SERVLET_NAME_PORTE_DELEGATE_TRASFORMAZIONI_RICHIESTA_HEADER_LIST;
  225.             String servletTrasformazioniRichiestaParametriList = PorteDelegateCostanti.SERVLET_NAME_PORTE_DELEGATE_TRASFORMAZIONI_RICHIESTA_PARAMETRO_LIST;
  226.             TrasformazioneRegolaRichiesta oldRichiesta = oldRegola.getRichiesta();
  227.             int numeroTrasformazioniRichiestaHeaders= oldRichiesta != null ? oldRichiesta.sizeHeaderList() : 0;
  228.             int numeroTrasformazioniRichiestaParametri = oldRichiesta != null ? oldRichiesta.sizeParametroUrlList() : 0;
  229.          
  230.             List<Parameter> parametriInvocazioneServletTrasformazioniRichiestaHeaders = new ArrayList<>();
  231.             parametriInvocazioneServletTrasformazioniRichiestaHeaders.add(pId);
  232.             parametriInvocazioneServletTrasformazioniRichiestaHeaders.add(pIdSoggetto);
  233.             parametriInvocazioneServletTrasformazioniRichiestaHeaders.add(pIdAsps);
  234.             parametriInvocazioneServletTrasformazioniRichiestaHeaders.add(pIdFruizione);
  235.             parametriInvocazioneServletTrasformazioniRichiestaHeaders.add(pIdTrasformazione);
  236.             List<Parameter> parametriInvocazioneServletTrasformazioniRichiestaParametri = new ArrayList<>();
  237.             parametriInvocazioneServletTrasformazioniRichiestaParametri.add(pId);
  238.             parametriInvocazioneServletTrasformazioniRichiestaParametri.add(pIdSoggetto);
  239.             parametriInvocazioneServletTrasformazioniRichiestaParametri.add(pIdAsps);
  240.             parametriInvocazioneServletTrasformazioniRichiestaParametri.add(pIdFruizione);
  241.             parametriInvocazioneServletTrasformazioniRichiestaParametri.add(pIdTrasformazione);
  242.            
  243.             List<Parameter> lstParam = porteDelegateHelper.getTitoloPD(parentPD, idsogg, idAsps, idFruizione);
  244.            
  245.             String labelPerPorta = null;
  246.             if(parentPD!=null && (parentPD.intValue() == PorteDelegateCostanti.ATTRIBUTO_PORTE_DELEGATE_PARENT_CONFIGURAZIONE)) {
  247.                 labelPerPorta = porteDelegateCore.getLabelRegolaMappingFruizionePortaDelegata(
  248.                         PorteDelegateCostanti.LABEL_PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_DI,
  249.                         PorteDelegateCostanti.LABEL_PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI,
  250.                         portaDelegata);
  251.             }
  252.             else {
  253.                 labelPerPorta = PorteDelegateCostanti.LABEL_PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_DI+nomePorta;
  254.             }

  255.             lstParam.add(new Parameter(labelPerPorta, PorteDelegateCostanti.SERVLET_NAME_PORTE_DELEGATE_TRASFORMAZIONI_LIST, pId, pIdSoggetto, pIdAsps, pIdFruizione));
  256.            
  257.             lstParam.add(new Parameter(nomeTrasformazione, PorteDelegateCostanti.SERVLET_NAME_PORTE_DELEGATE_TRASFORMAZIONI_CHANGE,
  258.                     pId, pIdSoggetto, pIdAsps, pIdFruizione, pIdTrasformazione));
  259.            
  260.             lstParam.add(new Parameter(PorteDelegateCostanti.LABEL_PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_RICHIESTA, null));
  261.            
  262.             ServletUtils.setPageDataTitle(pd, lstParam);
  263.            
  264.             // imposto menu' contestuale
  265.             porteDelegateHelper.impostaComandiMenuContestualePD(idsogg, idAsps, idFruizione);
  266.            
  267.             // Se nomehid = null, devo visualizzare la pagina per l'inserimento
  268.             // dati
  269.             if (porteDelegateHelper.isEditModeInProgress()) {
  270.                 // preparo i campi
  271.                 List<DataElement> dati = new ArrayList<>();
  272.                 dati.add(ServletUtils.getDataElementForEditModeFinished());
  273.                
  274.                 // primo accesso
  275.                 if(trasformazioneContenutoAbilitatoS == null) {
  276.                    
  277.                     if(oldRichiesta == null) {
  278.                         trasformazioneContenutoAbilitato = false;
  279.                         trasformazioneContenutoTipo = org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.EMPTY;
  280.                         trasformazioneRichiestaContentType = "";
  281.                         trasformazioneSoapAbilitato = false;
  282.                         trasformazioneSoapAction = "";
  283.                         trasformazioneSoapEnvelope = CostantiControlStation.VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_SOAP_ENVELOPE_DISABILITATO;
  284.                         trasformazioneSoapEnvelopeTipo = org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.EMPTY;
  285.                         trasformazioneSoapVersion = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_RICHIESTA_SOAP_VERSION_11;
  286.                         trasformazioneRestAbilitato = false;
  287.                         trasformazioneRestMethod = "";
  288.                         trasformazioneRestPath = "";
  289.                     } else {
  290.                         trasformazioneContenutoAbilitato = oldRichiesta.getConversione();
  291.                         trasformazioneContenutoTipo = StringUtils.isNotEmpty(oldRichiesta.getConversioneTipo()) ?
  292.                                 org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.toEnumConstant(oldRichiesta.getConversioneTipo()) : org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.EMPTY;
  293.                         trasformazioneContenutoTemplate.setValue(oldRichiesta.getConversioneTemplate());
  294.                         trasformazioneRichiestaContentType = StringUtils.isNotEmpty(oldRichiesta.getContentType()) ? oldRichiesta.getContentType() : "";
  295.                        
  296.                         if(oldRichiesta.getTrasformazioneSoap() == null) {
  297.                             trasformazioneSoapAbilitato = false;
  298.                             trasformazioneSoapAction = "";
  299.                             trasformazioneSoapEnvelope = CostantiControlStation.VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_SOAP_ENVELOPE_DISABILITATO;
  300.                             trasformazioneSoapEnvelopeTipo = org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.EMPTY;
  301.                             trasformazioneSoapVersion = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_RICHIESTA_SOAP_VERSION_11;
  302.                         } else {
  303.                             trasformazioneSoapAbilitato = true;
  304.                             trasformazioneSoapAction = StringUtils.isNotEmpty(oldRichiesta.getTrasformazioneSoap().getSoapAction()) ? oldRichiesta.getTrasformazioneSoap().getSoapAction() : "";
  305.                            
  306.                             if(oldRichiesta.getTrasformazioneSoap().isEnvelope()) {
  307.                                 if(oldRichiesta.getTrasformazioneSoap().isEnvelopeAsAttachment()) {
  308.                                     trasformazioneSoapEnvelope = CostantiControlStation.VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_SOAP_ENVELOPE_AS_ATTACHMENT;
  309.                                 } else {
  310.                                     trasformazioneSoapEnvelope = CostantiControlStation.VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_SOAP_ENVELOPE_AS_BODY;
  311.                                 }
  312.                             } else {
  313.                                 trasformazioneSoapEnvelope = CostantiControlStation.VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_SOAP_ENVELOPE_DISABILITATO;
  314.                             }
  315.                            
  316.                             trasformazioneSoapEnvelopeTipo = StringUtils.isNotEmpty(oldRichiesta.getTrasformazioneSoap().getEnvelopeBodyConversioneTipo()) ?
  317.                                     org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.toEnumConstant(oldRichiesta.getTrasformazioneSoap().getEnvelopeBodyConversioneTipo())
  318.                                     : org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.EMPTY;
  319.                             if(oldRichiesta.getTrasformazioneSoap().getVersione() != null) {
  320.                                
  321.                                 switch (oldRichiesta.getTrasformazioneSoap().getVersione()) {
  322.                                 case _1_2:
  323.                                     trasformazioneSoapVersion = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_RICHIESTA_SOAP_VERSION_12;
  324.                                     break;
  325.                                 case _1_1:
  326.                                 default:
  327.                                     trasformazioneSoapVersion = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_RICHIESTA_SOAP_VERSION_11;
  328.                                     break;
  329.                                 }
  330.                             }else {
  331.                                 trasformazioneSoapVersion = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_RICHIESTA_SOAP_VERSION_11;
  332.                             }
  333.                             trasformazioneSoapEnvelopeTemplate.setValue(oldRichiesta.getTrasformazioneSoap().getEnvelopeBodyConversioneTemplate());
  334.                         }
  335.                            
  336.                        
  337.                         if(oldRichiesta.getTrasformazioneRest() == null) {
  338.                             trasformazioneRestAbilitato = false;
  339.                             trasformazioneRestMethod = "";
  340.                             trasformazioneRestPath = "";
  341.                         } else {
  342.                             trasformazioneRestAbilitato = true;
  343.                             trasformazioneRestMethod = StringUtils.isNotEmpty(oldRichiesta.getTrasformazioneRest().getMetodo()) ? oldRichiesta.getTrasformazioneRest().getMetodo() : "";
  344.                             trasformazioneRestPath = StringUtils.isNotEmpty(oldRichiesta.getTrasformazioneRest().getPath()) ? oldRichiesta.getTrasformazioneRest().getPath() : "";
  345.                         }
  346.  
  347.                     }
  348.                 }

  349.                 dati = porteDelegateHelper.addTrasformazioneRichiestaToDati(TipoOperazione.OTHER, protocollo, dati, idInt, oldRichiesta, true, idTrasformazioneS, trasformazioneContenutoAbilitato, trasformazioneContenutoTipo,
  350.                         trasformazioneContenutoTemplate, trasformazioneContenutoTipoCheck, trasformazioneRichiestaContentType, serviceBindingMessage, trasformazioneRestAbilitato,
  351.                         trasformazioneRestMethod, trasformazioneRestPath, trasformazioneSoapAbilitato, trasformazioneSoapAction,
  352.                         trasformazioneSoapVersion, trasformazioneSoapEnvelope, trasformazioneSoapEnvelopeTipo, trasformazioneSoapEnvelopeTemplate, trasformazioneSoapEnvelopeTipoCheck,
  353.                         servletTrasformazioniRichiestaHeadersList, parametriInvocazioneServletTrasformazioniRichiestaHeaders, numeroTrasformazioniRichiestaHeaders,
  354.                         servletTrasformazioniRichiestaParametriList, parametriInvocazioneServletTrasformazioniRichiestaParametri, numeroTrasformazioniRichiestaParametri,
  355.                         apc.getServiceBinding());
  356.                
  357.                 dati = porteDelegateHelper.addHiddenFieldsToDati(TipoOperazione.CHANGE, id, idsogg, null, idAsps,
  358.                         idFruizione, portaDelegata.getTipoSoggettoProprietario(), portaDelegata.getNomeSoggettoProprietario(), dati);
  359.                
  360.                 pd.setDati(dati);

  361.                 ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);

  362.                 return ServletUtils.getStrutsForwardEditModeInProgress(mapping, PorteDelegateCostanti.OBJECT_NAME_PORTE_DELEGATE_TRASFORMAZIONI_RICHIESTA,  PorteDelegateCostanti.TIPO_OPERAZIONE_TRASFORMAZIONI_RICHIESTA);
  363.             }
  364.            
  365.             boolean isOk = porteDelegateHelper.trasformazioniRichiestaCheckData(TipoOperazione.CHANGE, oldRegola, serviceBindingMessage);
  366.             if (!isOk) {

  367.                 // preparo i campi
  368.                 List<DataElement> dati = new ArrayList<>();

  369.                 dati.add(ServletUtils.getDataElementForEditModeFinished());
  370.                
  371.                 dati = porteDelegateHelper.addTrasformazioneRichiestaToDati(TipoOperazione.OTHER, protocollo, dati, idInt, oldRichiesta, true, idTrasformazioneS, trasformazioneContenutoAbilitato, trasformazioneContenutoTipo,
  372.                         trasformazioneContenutoTemplate, trasformazioneContenutoTipoCheck, trasformazioneRichiestaContentType, serviceBindingMessage, trasformazioneRestAbilitato,
  373.                         trasformazioneRestMethod, trasformazioneRestPath, trasformazioneSoapAbilitato, trasformazioneSoapAction,
  374.                         trasformazioneSoapVersion, trasformazioneSoapEnvelope, trasformazioneSoapEnvelopeTipo, trasformazioneSoapEnvelopeTemplate, trasformazioneSoapEnvelopeTipoCheck,
  375.                         servletTrasformazioniRichiestaHeadersList, parametriInvocazioneServletTrasformazioniRichiestaHeaders, numeroTrasformazioniRichiestaHeaders,
  376.                         servletTrasformazioniRichiestaParametriList, parametriInvocazioneServletTrasformazioniRichiestaParametri, numeroTrasformazioniRichiestaParametri,
  377.                         apc.getServiceBinding());
  378.                
  379.                 dati = porteDelegateHelper.addHiddenFieldsToDati(TipoOperazione.CHANGE, id, idsogg, null, idAsps,
  380.                         idFruizione, portaDelegata.getTipoSoggettoProprietario(), portaDelegata.getNomeSoggettoProprietario(), dati);
  381.                
  382.                 pd.setDati(dati);

  383.                 ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);

  384.                 return ServletUtils.getStrutsForwardEditModeCheckError(mapping, PorteDelegateCostanti.OBJECT_NAME_PORTE_DELEGATE_TRASFORMAZIONI_RICHIESTA,  PorteDelegateCostanti.TIPO_OPERAZIONE_TRASFORMAZIONI_RICHIESTA);
  385.             }
  386.            
  387.             // aggiorno la regola
  388.             trasformazioni = portaDelegata.getTrasformazioni();
  389.             for (TrasformazioneRegola reg : trasformazioni.getRegolaList()) {
  390.                 if(reg.getId().longValue() == idTrasformazione) {
  391.                    
  392.                     if(reg.getRichiesta() == null)
  393.                         reg.setRichiesta(new TrasformazioneRegolaRichiesta());
  394.                    
  395.                     reg.getRichiesta().setConversione(trasformazioneContenutoAbilitato);
  396.                    
  397.                     if(trasformazioneContenutoAbilitato) {
  398.                         if(trasformazioneContenutoTipo.isTemplateRequired()) {
  399.                             //  se e' stato aggiornato il template lo sovrascrivo
  400.                             if(trasformazioneContenutoTemplate.getValue() != null && trasformazioneContenutoTemplate.getValue().length  > 0)
  401.                                 reg.getRichiesta().setConversioneTemplate(trasformazioneContenutoTemplate.getValue());
  402.                         }else {
  403.                             reg.getRichiesta().setConversioneTemplate(null);
  404.                         }
  405.                        
  406.                         if(trasformazioneRichiestaContentType!=null && !"".equals(trasformazioneRichiestaContentType)) {
  407.                             reg.getRichiesta().setContentType(trasformazioneRichiestaContentType);
  408.                         }
  409.                         else {
  410.                             reg.getRichiesta().setContentType(null);
  411.                         }
  412.                         reg.getRichiesta().setConversioneTipo(trasformazioneContenutoTipo.getValue());
  413.                        
  414.                         if(trasformazioneRestAbilitato) {
  415.                             if(reg.getRichiesta().getTrasformazioneRest() == null)
  416.                                 reg.getRichiesta().setTrasformazioneRest(new TrasformazioneRest());
  417.                            
  418.                             reg.getRichiesta().getTrasformazioneRest().setMetodo(trasformazioneRestMethod);
  419.                             reg.getRichiesta().getTrasformazioneRest().setPath(trasformazioneRestPath);
  420.                         } else {
  421.                             reg.getRichiesta().setTrasformazioneRest(null);
  422.                            
  423.                             if(ServiceBinding.REST.equals(serviceBindingMessage) &&
  424.                                 (StringUtils.isNotEmpty(trasformazioneRestMethod) || StringUtils.isNotEmpty(trasformazioneRestPath))
  425.                                     ){
  426.                                 if(reg.getRichiesta().getTrasformazioneRest() == null)
  427.                                     reg.getRichiesta().setTrasformazioneRest(new TrasformazioneRest());
  428.                                
  429.                                 reg.getRichiesta().getTrasformazioneRest().setMetodo(trasformazioneRestMethod);
  430.                                 reg.getRichiesta().getTrasformazioneRest().setPath(trasformazioneRestPath);
  431.                             }
  432.                         }
  433.                        
  434.                         if(trasformazioneSoapAbilitato) {
  435.                             if(reg.getRichiesta().getTrasformazioneSoap() == null)
  436.                                 reg.getRichiesta().setTrasformazioneSoap(new TrasformazioneSoap());
  437.                            
  438.                             reg.getRichiesta().getTrasformazioneSoap().setSoapAction(trasformazioneSoapAction);
  439.                             reg.getRichiesta().getTrasformazioneSoap().setVersione(VersioneSOAP.toEnumConstant(trasformazioneSoapVersion));
  440.                             if(CostantiControlStation.VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_SOAP_ENVELOPE_AS_ATTACHMENT.equals(trasformazioneSoapEnvelope)) { // attachment
  441.                                 reg.getRichiesta().getTrasformazioneSoap().setEnvelope(true);
  442.                                 reg.getRichiesta().getTrasformazioneSoap().setEnvelopeAsAttachment(true);
  443.                                 reg.getRichiesta().getTrasformazioneSoap().setEnvelopeBodyConversioneTipo(trasformazioneSoapEnvelopeTipo.getValue());
  444.                                
  445.                                 if(trasformazioneSoapEnvelopeTipo.isTemplateRequired()) {
  446.                                     //  se e' stato aggiornato il template lo sovrascrivo
  447.                                     if(trasformazioneSoapEnvelopeTemplate.getValue() != null && trasformazioneSoapEnvelopeTemplate.getValue().length  > 0)
  448.                                         reg.getRichiesta().getTrasformazioneSoap().setEnvelopeBodyConversioneTemplate(trasformazioneSoapEnvelopeTemplate.getValue());
  449.                                 }else {
  450.                                     reg.getRichiesta().getTrasformazioneSoap().setEnvelopeBodyConversioneTemplate(null);
  451.                                 }
  452.                                
  453.                             } else if(CostantiControlStation.VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_SOAP_ENVELOPE_AS_BODY.equals(trasformazioneSoapEnvelope)) { // body
  454.                                 reg.getRichiesta().getTrasformazioneSoap().setEnvelope(true);
  455.                                 reg.getRichiesta().getTrasformazioneSoap().setEnvelopeAsAttachment(false);
  456.                                 reg.getRichiesta().getTrasformazioneSoap().setEnvelopeBodyConversioneTemplate(null);
  457.                                 reg.getRichiesta().getTrasformazioneSoap().setEnvelopeBodyConversioneTipo(null);
  458.                             } else  { // disabilitato
  459.                                 reg.getRichiesta().getTrasformazioneSoap().setEnvelope(false);
  460.                                 reg.getRichiesta().getTrasformazioneSoap().setEnvelopeAsAttachment(false);
  461.                                 reg.getRichiesta().getTrasformazioneSoap().setEnvelopeBodyConversioneTemplate(null);
  462.                                 reg.getRichiesta().getTrasformazioneSoap().setEnvelopeBodyConversioneTipo(null);
  463.                             }
  464.                                
  465.                         } else {
  466.                             reg.getRichiesta().setTrasformazioneSoap(null);
  467.                         }
  468.                     } else {
  469.                         reg.getRichiesta().setConversioneTemplate(null);
  470.                         reg.getRichiesta().setContentType(null);
  471.                         reg.getRichiesta().setConversioneTipo(null);
  472.                         reg.getRichiesta().setTrasformazioneRest(null);
  473.                         reg.getRichiesta().setTrasformazioneSoap(null);
  474.                        
  475.                         if(ServiceBinding.REST.equals(serviceBindingMessage)) {
  476.                             if(StringUtils.isNotEmpty(trasformazioneRestMethod) || StringUtils.isNotEmpty(trasformazioneRestPath)) {
  477.                                 if(reg.getRichiesta().getTrasformazioneRest() == null)
  478.                                     reg.getRichiesta().setTrasformazioneRest(new TrasformazioneRest());
  479.                                
  480.                                 reg.getRichiesta().getTrasformazioneRest().setMetodo(trasformazioneRestMethod);
  481.                                 reg.getRichiesta().getTrasformazioneRest().setPath(trasformazioneRestPath);
  482.                             } else {
  483.                                 reg.getRichiesta().setTrasformazioneRest(null);
  484.                             }
  485.                         }
  486.                     }
  487.                    
  488.                     break;
  489.                 }
  490.             }
  491.            
  492.             porteDelegateCore.performUpdateOperation(userLogin, porteDelegateHelper.smista(), portaDelegata);
  493.             porteDelegateHelper.deleteBinaryParameters(trasformazioneContenutoTemplate,trasformazioneSoapEnvelopeTemplate);
  494.            
  495.             // ricarico la richiesta
  496.             // ricaricare id trasformazione
  497.             portaDelegata = porteDelegateCore.getPortaDelegata(Long.parseLong(id));

  498.             TrasformazioneRegola trasformazioneAggiornata = porteDelegateCore.getTrasformazione(portaDelegata.getId(), oldRegola.getNome());
  499.            
  500.             // setto il titolo della pagina
  501.             nomeTrasformazione = oldRegola.getNome();
  502.             pIdTrasformazione = new Parameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_ID_TRASFORMAZIONE, trasformazioneAggiornata.getId() + "");
  503.            
  504.             // parametri visualizzazione link
  505.             numeroTrasformazioniRichiestaHeaders= trasformazioneAggiornata.getRichiesta() != null ? trasformazioneAggiornata.getRichiesta().sizeHeaderList() : 0;
  506.             numeroTrasformazioniRichiestaParametri = trasformazioneAggiornata.getRichiesta() != null ? trasformazioneAggiornata.getRichiesta().sizeParametroUrlList() : 0;
  507.            
  508.             parametriInvocazioneServletTrasformazioniRichiestaHeaders = new ArrayList<>();
  509.             parametriInvocazioneServletTrasformazioniRichiestaHeaders.add(pId);
  510.             parametriInvocazioneServletTrasformazioniRichiestaHeaders.add(pIdSoggetto);
  511.             parametriInvocazioneServletTrasformazioniRichiestaHeaders.add(pIdAsps);
  512.             parametriInvocazioneServletTrasformazioniRichiestaHeaders.add(pIdFruizione);
  513.             parametriInvocazioneServletTrasformazioniRichiestaHeaders.add(pIdTrasformazione);
  514.             parametriInvocazioneServletTrasformazioniRichiestaParametri = new ArrayList<>();
  515.             parametriInvocazioneServletTrasformazioniRichiestaParametri.add(pId);
  516.             parametriInvocazioneServletTrasformazioniRichiestaParametri.add(pIdSoggetto);
  517.             parametriInvocazioneServletTrasformazioniRichiestaParametri.add(pIdAsps);
  518.             parametriInvocazioneServletTrasformazioniRichiestaParametri.add(pIdFruizione);
  519.             parametriInvocazioneServletTrasformazioniRichiestaParametri.add(pIdTrasformazione);
  520.            
  521.             lstParam = porteDelegateHelper.getTitoloPD(parentPD, idsogg, idAsps, idFruizione);
  522.            
  523.             labelPerPorta = null;
  524.             if(parentPD!=null && (parentPD.intValue() == PorteDelegateCostanti.ATTRIBUTO_PORTE_DELEGATE_PARENT_CONFIGURAZIONE)) {
  525.                 labelPerPorta = porteDelegateCore.getLabelRegolaMappingFruizionePortaDelegata(
  526.                         PorteDelegateCostanti.LABEL_PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_DI,
  527.                         PorteDelegateCostanti.LABEL_PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI,
  528.                         portaDelegata);
  529.             }
  530.             else {
  531.                 labelPerPorta = PorteDelegateCostanti.LABEL_PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_DI+nomePorta;
  532.             }

  533.             lstParam.add(new Parameter(labelPerPorta, PorteDelegateCostanti.SERVLET_NAME_PORTE_DELEGATE_TRASFORMAZIONI_LIST, pId, pIdSoggetto, pIdAsps, pIdFruizione));
  534.            
  535.            
  536.             lstParam.add(new Parameter(nomeTrasformazione, PorteDelegateCostanti.SERVLET_NAME_PORTE_DELEGATE_TRASFORMAZIONI_CHANGE,
  537.                     pId, pIdSoggetto, pIdAsps, pIdFruizione, pIdTrasformazione));
  538.            
  539.             lstParam.add(new Parameter(PorteDelegateCostanti.LABEL_PARAMETRO_PORTE_DELEGATE_TRASFORMAZIONI_RICHIESTA, null));
  540.            
  541.             ServletUtils.setPageDataTitle(pd, lstParam);
  542.            
  543.             // preparo i campi
  544.             List<DataElement> dati = new ArrayList<>();
  545.            
  546.             TrasformazioneRegolaRichiesta richiesta = trasformazioneAggiornata.getRichiesta();
  547.            
  548.             if(richiesta == null) {
  549.                 trasformazioneContenutoAbilitato = false;
  550.                 trasformazioneContenutoTipo = org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.EMPTY;
  551.                 trasformazioneRichiestaContentType = "";
  552.                 trasformazioneSoapAbilitato = false;
  553.                 trasformazioneSoapAction = "";
  554.                 trasformazioneSoapEnvelope = CostantiControlStation.VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_SOAP_ENVELOPE_DISABILITATO;
  555.                 trasformazioneSoapEnvelopeTipo = org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.EMPTY;
  556.                 trasformazioneSoapVersion = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_RICHIESTA_SOAP_VERSION_11;
  557.                 trasformazioneRestAbilitato = false;
  558.                 trasformazioneRestMethod = "";
  559.                 trasformazioneRestPath = "";
  560.             } else {
  561.                 trasformazioneContenutoAbilitato = richiesta.getConversione();
  562.                 trasformazioneContenutoTipo = StringUtils.isNotEmpty(richiesta.getConversioneTipo()) ?
  563.                         org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.toEnumConstant(richiesta.getConversioneTipo()) : org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.EMPTY;
  564.                 trasformazioneContenutoTemplate.setValue(richiesta.getConversioneTemplate());
  565.                 trasformazioneRichiestaContentType = StringUtils.isNotEmpty(richiesta.getContentType()) ? richiesta.getContentType() : "";
  566.                
  567.                 if(richiesta.getTrasformazioneSoap() == null) {
  568.                     trasformazioneSoapAbilitato = false;
  569.                     trasformazioneSoapAction = "";
  570.                     trasformazioneSoapEnvelope = CostantiControlStation.VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_SOAP_ENVELOPE_DISABILITATO;
  571.                     trasformazioneSoapEnvelopeTipo = org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.EMPTY;
  572.                     trasformazioneSoapVersion = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_RICHIESTA_SOAP_VERSION_11;
  573.                 } else {
  574.                     trasformazioneSoapAbilitato = true;
  575.                     trasformazioneSoapAction = StringUtils.isNotEmpty(richiesta.getTrasformazioneSoap().getSoapAction()) ? richiesta.getTrasformazioneSoap().getSoapAction() : "";
  576.                    
  577.                     if(richiesta.getTrasformazioneSoap().isEnvelope()) {
  578.                         if(richiesta.getTrasformazioneSoap().isEnvelopeAsAttachment()) {
  579.                             trasformazioneSoapEnvelope = CostantiControlStation.VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_SOAP_ENVELOPE_AS_ATTACHMENT;
  580.                         } else {
  581.                             trasformazioneSoapEnvelope = CostantiControlStation.VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_SOAP_ENVELOPE_AS_BODY;
  582.                         }
  583.                     } else {
  584.                         trasformazioneSoapEnvelope = CostantiControlStation.VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_SOAP_ENVELOPE_DISABILITATO;
  585.                     }
  586.                    
  587.                     trasformazioneSoapEnvelopeTipo = StringUtils.isNotEmpty(richiesta.getTrasformazioneSoap().getEnvelopeBodyConversioneTipo()) ?
  588.                             org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.toEnumConstant(richiesta.getTrasformazioneSoap().getEnvelopeBodyConversioneTipo())
  589.                             : org.openspcoop2.pdd.core.trasformazioni.TipoTrasformazione.EMPTY;
  590.                     if(richiesta.getTrasformazioneSoap().getVersione() != null) {
  591.                        
  592.                         switch (richiesta.getTrasformazioneSoap().getVersione()) {
  593.                         case _1_2:
  594.                             trasformazioneSoapVersion = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_RICHIESTA_SOAP_VERSION_12;
  595.                             break;
  596.                         case _1_1:
  597.                         default:
  598.                             trasformazioneSoapVersion = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_RICHIESTA_SOAP_VERSION_11;
  599.                             break;
  600.                         }
  601.                     }else {
  602.                         trasformazioneSoapVersion = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_TRASFORMAZIONI_RICHIESTA_SOAP_VERSION_11;
  603.                     }
  604.                     trasformazioneSoapEnvelopeTemplate.setValue(richiesta.getTrasformazioneSoap().getEnvelopeBodyConversioneTemplate());
  605.                 }
  606.                    
  607.                
  608.                 if(richiesta.getTrasformazioneRest() == null) {
  609.                     trasformazioneRestAbilitato = false;
  610.                     trasformazioneRestMethod = "";
  611.                     trasformazioneRestPath = "";
  612.                 } else {
  613.                     trasformazioneRestAbilitato = true;
  614.                     trasformazioneRestMethod = StringUtils.isNotEmpty(richiesta.getTrasformazioneRest().getMetodo()) ? richiesta.getTrasformazioneRest().getMetodo() : "";
  615.                     trasformazioneRestPath = StringUtils.isNotEmpty(richiesta.getTrasformazioneRest().getPath()) ? richiesta.getTrasformazioneRest().getPath() : "";
  616.                 }

  617.             }
  618.            
  619.             trasformazioneContenutoTipoCheck= "";
  620.             trasformazioneSoapEnvelopeTipoCheck = "";
  621.            
  622.             dati = porteDelegateHelper.addTrasformazioneRichiestaToDati(TipoOperazione.OTHER, protocollo, dati, idInt, richiesta, true, trasformazioneAggiornata.getId() + "", trasformazioneContenutoAbilitato, trasformazioneContenutoTipo,
  623.                     trasformazioneContenutoTemplate, trasformazioneContenutoTipoCheck, trasformazioneRichiestaContentType, serviceBindingMessage, trasformazioneRestAbilitato,
  624.                     trasformazioneRestMethod, trasformazioneRestPath, trasformazioneSoapAbilitato, trasformazioneSoapAction,
  625.                     trasformazioneSoapVersion, trasformazioneSoapEnvelope, trasformazioneSoapEnvelopeTipo, trasformazioneSoapEnvelopeTemplate, trasformazioneSoapEnvelopeTipoCheck,
  626.                     servletTrasformazioniRichiestaHeadersList, parametriInvocazioneServletTrasformazioniRichiestaHeaders, numeroTrasformazioniRichiestaHeaders,
  627.                     servletTrasformazioniRichiestaParametriList, parametriInvocazioneServletTrasformazioniRichiestaParametri, numeroTrasformazioniRichiestaParametri,
  628.                     apc.getServiceBinding());
  629.            
  630.             dati = porteDelegateHelper.addHiddenFieldsToDati(TipoOperazione.CHANGE, id, idsogg, null, idAsps,
  631.                     idFruizione, portaDelegata.getTipoSoggettoProprietario(), portaDelegata.getNomeSoggettoProprietario(), dati);
  632.            
  633.             pd.setDati(dati);
  634.                        
  635.             pd.setMessage(CostantiControlStation.LABEL_AGGIORNAMENTO_EFFETTUATO_CON_SUCCESSO, Costanti.MESSAGE_TYPE_INFO);
  636.             dati.add(ServletUtils.getDataElementForEditModeFinished());
  637.            
  638.             ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
  639.            
  640.             // Forward control to the specified success URI
  641.             return ServletUtils.getStrutsForwardEditModeFinished(mapping, PorteDelegateCostanti.OBJECT_NAME_PORTE_DELEGATE_TRASFORMAZIONI_RICHIESTA,  PorteDelegateCostanti.TIPO_OPERAZIONE_TRASFORMAZIONI_RICHIESTA);
  642.         } catch (Exception e) {
  643.             return ServletUtils.getStrutsForwardError(ControlStationCore.getLog(), e, pd, request, session, gd, mapping,
  644.                     PorteDelegateCostanti.OBJECT_NAME_PORTE_DELEGATE_TRASFORMAZIONI_RICHIESTA,  PorteDelegateCostanti.TIPO_OPERAZIONE_TRASFORMAZIONI_RICHIESTA  );
  645.         }
  646.     }
  647. }