ProtocolPropertyBinaryPropertyChange.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.protocol_properties;

  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.struts.action.Action;
  27. import org.apache.struts.action.ActionForm;
  28. import org.apache.struts.action.ActionForward;
  29. import org.apache.struts.action.ActionMapping;
  30. import org.openspcoop2.core.constants.ProprietariProtocolProperty;
  31. import org.openspcoop2.core.registry.ProtocolProperty;
  32. import org.openspcoop2.protocol.engine.ProtocolFactoryManager;
  33. import org.openspcoop2.protocol.sdk.ProtocolException;
  34. import org.openspcoop2.protocol.sdk.constants.ConsoleOperationType;
  35. import org.openspcoop2.protocol.sdk.properties.AbstractConsoleItem;
  36. import org.openspcoop2.protocol.sdk.properties.AbstractProperty;
  37. import org.openspcoop2.protocol.sdk.properties.BinaryConsoleItem;
  38. import org.openspcoop2.protocol.sdk.properties.BinaryProperty;
  39. import org.openspcoop2.protocol.sdk.properties.BooleanProperty;
  40. import org.openspcoop2.protocol.sdk.properties.NumberProperty;
  41. import org.openspcoop2.protocol.sdk.properties.ProtocolProperties;
  42. import org.openspcoop2.protocol.sdk.properties.ProtocolPropertiesFactory;
  43. import org.openspcoop2.protocol.sdk.properties.ProtocolPropertiesUtils;
  44. import org.openspcoop2.protocol.sdk.properties.StringProperty;
  45. import org.openspcoop2.web.ctrlstat.core.ControlStationCore;
  46. import org.openspcoop2.web.ctrlstat.core.Utilities;
  47. import org.openspcoop2.web.ctrlstat.servlet.GeneralHelper;
  48. import org.openspcoop2.web.ctrlstat.servlet.archivi.ArchiviCostanti;
  49. import org.openspcoop2.web.lib.mvc.BinaryParameter;
  50. import org.openspcoop2.web.lib.mvc.Costanti;
  51. import org.openspcoop2.web.lib.mvc.DataElement;
  52. import org.openspcoop2.web.lib.mvc.GeneralData;
  53. import org.openspcoop2.web.lib.mvc.PageData;
  54. import org.openspcoop2.web.lib.mvc.Parameter;
  55. import org.openspcoop2.web.lib.mvc.ServletUtils;
  56. import org.openspcoop2.web.lib.mvc.TipoOperazione;

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

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

  67.         HttpSession session = request.getSession(true);
  68.        

  69.         // Inizializzo PageData
  70.         PageData pd = new PageData();

  71.         GeneralHelper generalHelper = new GeneralHelper(session);

  72.         // Inizializzo GeneralData
  73.         GeneralData gd = generalHelper.initGeneralData(request);

  74.         String userLogin = ServletUtils.getUserLoginFromSession(session);

  75.         String label = "";

  76.         TipoOperazione tipoOp = TipoOperazione.CHANGE;
  77.         List<ProtocolProperty> oldProtocolPropertyListRegistry = null;
  78.         List<org.openspcoop2.core.config.ProtocolProperty> oldProtocolPropertyListConfig = null;

  79.         ProtocolPropertiesStrutsBean strutsBean = new ProtocolPropertiesStrutsBean();
  80.        
  81.         // Parametri Protocol Properties relativi al tipo di operazione e al tipo di visualizzazione
  82.         strutsBean.consoleOperationType = ConsoleOperationType.CHANGE;
  83.        
  84.         BinaryParameter oldContenutoDocumento = null;
  85.         String tipologiaDocumentoScaricare = ArchiviCostanti.PARAMETRO_VALORE_ARCHIVI_ALLEGATO_TIPO_DOCUMENTO_PROTOCOL_PROPERTY_BINARY;

  86.         try{
  87.             ProtocolPropertiesHelper ppHelper = new ProtocolPropertiesHelper(request, pd, session);
  88.            
  89.             strutsBean.id = ppHelper.getParameter(ProtocolPropertiesCostanti.PARAMETRO_PP_ID);
  90.             strutsBean.idProprietario = ppHelper.getParameter(ProtocolPropertiesCostanti.PARAMETRO_PP_ID_PROPRIETARIO);
  91.             String tipoProprietarioS = ppHelper.getParameter(ProtocolPropertiesCostanti.PARAMETRO_PP_TIPO_PROPRIETARIO);
  92.             if(tipoProprietarioS!= null)
  93.                 strutsBean.tipoProprietario = ProprietariProtocolProperty.valueOf(tipoProprietarioS);
  94.             boolean propertyRegistry = ppHelper.isProtocolPropertiesRegistry(strutsBean.tipoProprietario);
  95.             strutsBean.nome = ppHelper.getParameter(ProtocolPropertiesCostanti.PARAMETRO_PP_NOME);
  96.             strutsBean.nomeProprietario = ppHelper.getParameter(ProtocolPropertiesCostanti.PARAMETRO_PP_NOME_PROPRIETARIO);
  97.             strutsBean.nomeParentProprietario = ppHelper.getParameter(ProtocolPropertiesCostanti.PARAMETRO_PP_NOME_PARENT_PROPRIETARIO);
  98.             strutsBean.urlChange = ppHelper.getParameter(ProtocolPropertiesCostanti.PARAMETRO_PP_URL_ORIGINALE_CHANGE);
  99.             strutsBean.editMode = ppHelper.getParameter(Costanti.DATA_ELEMENT_EDIT_MODE_NAME);
  100.             strutsBean.contenutoDocumento = ppHelper.getBinaryParameter(ProtocolPropertiesCostanti.PARAMETRO_PP_CONTENUTO_DOCUMENTO);
  101.             strutsBean.protocollo = ppHelper.getParameter(ProtocolPropertiesCostanti.PARAMETRO_PP_PROTOCOLLO);
  102.             strutsBean.tipoAccordo = ppHelper.getParameter(ProtocolPropertiesCostanti.PARAMETRO_PP_TIPO_ACCORDO);

  103.             ProtocolPropertiesCore ppCore = new ProtocolPropertiesCore();

  104.             strutsBean.protocolFactory = ProtocolFactoryManager.getInstance().getProtocolFactoryByName(strutsBean.protocollo);
  105.             strutsBean.consoleDynamicConfiguration =  strutsBean.protocolFactory.createDynamicConfigurationConsole();
  106.             strutsBean.registryReader = ppCore.getRegistryReader(strutsBean.protocolFactory);
  107.             strutsBean.configRegistryReader = ppCore.getConfigIntegrationReader(strutsBean.protocolFactory);

  108.             long idProtocolPropertyLong = Long.parseLong(strutsBean.id);

  109.             // prelevo l'oggetto proprietario
  110.             Object oggettoProprietario = ppHelper.getOggettoProprietario(strutsBean.idProprietario, strutsBean.nomeProprietario, strutsBean.nomeParentProprietario, strutsBean.tipoProprietario, strutsBean.tipoAccordo);

  111.             // prelevo l'id oggetto proprietario
  112.             Object idOggettoProprietario = ppHelper.getIdOggettoProprietario(oggettoProprietario, strutsBean.idProprietario, strutsBean.nomeProprietario, strutsBean.nomeParentProprietario, strutsBean.tipoProprietario, strutsBean.tipoAccordo);

  113.             strutsBean.consoleConfiguration = ppHelper.getConsoleDynamicConfiguration(idOggettoProprietario, strutsBean.idProprietario, strutsBean.nomeProprietario, strutsBean.nomeParentProprietario, strutsBean.tipoProprietario, strutsBean.tipoAccordo,
  114.                     strutsBean.consoleOperationType,  
  115.                     strutsBean.registryReader, strutsBean.configRegistryReader, strutsBean.consoleDynamicConfiguration);

  116.             strutsBean.protocolProperties = ppHelper.estraiProtocolPropertiesDaRequest(strutsBean.consoleConfiguration, strutsBean.consoleOperationType, strutsBean.nome, strutsBean.contenutoDocumento);

  117.             if(propertyRegistry) {
  118.                 oldProtocolPropertyListRegistry = ppHelper.getProtocolPropertiesRegistry(oggettoProprietario, strutsBean.id, strutsBean.nome, strutsBean.idProprietario, strutsBean.nomeProprietario, strutsBean.nomeParentProprietario, strutsBean.tipoProprietario, strutsBean.tipoAccordo);
  119.                 ProtocolPropertiesUtils.mergeProtocolPropertiesRegistry(strutsBean.protocolProperties, oldProtocolPropertyListRegistry, strutsBean.consoleOperationType);
  120.             }
  121.             else {
  122.                 oldProtocolPropertyListConfig = ppHelper.getProtocolPropertiesConfig(oggettoProprietario, strutsBean.id, strutsBean.nome, strutsBean.idProprietario, strutsBean.nomeProprietario, strutsBean.nomeParentProprietario, strutsBean.tipoProprietario, strutsBean.tipoAccordo);
  123.                 ProtocolPropertiesUtils.mergeProtocolPropertiesConfig(strutsBean.protocolProperties, oldProtocolPropertyListConfig, strutsBean.consoleOperationType);
  124.             }

  125.             // vecchio valore della property sul DB
  126.             ProtocolProperty protocolPropertyRegistry = null;
  127.             org.openspcoop2.core.config.ProtocolProperty protocolPropertyConfig = null;

  128.             // binaryConsoleItem
  129.             AbstractConsoleItem<?> binaryConsoleItem = ProtocolPropertiesUtils.getAbstractConsoleItem(strutsBean.consoleConfiguration.getConsoleItem(), strutsBean.nome);

  130.             label = binaryConsoleItem.getLabel();
  131.            
  132.             boolean readOnly = false;
  133.             String noteAggiornamento = null;
  134.             boolean showContent = true;
  135.             BinaryConsoleItem b = null;
  136.             if(binaryConsoleItem instanceof BinaryConsoleItem) {
  137.                 b = (BinaryConsoleItem) binaryConsoleItem;
  138.                 readOnly = b.isReadOnly();
  139.                 showContent = b.isShowContent();
  140.                 noteAggiornamento = b.getNoteUpdate();
  141.             }
  142.            
  143.             // Preparo il menu
  144.             ppHelper.makeMenu();

  145.             // se la property e' presente sul db allora la leggo
  146.             if(idProtocolPropertyLong > 0){
  147.                 if(propertyRegistry) {
  148.                     protocolPropertyRegistry = ProtocolPropertiesUtils.getProtocolPropertyRegistry(strutsBean.nome, oldProtocolPropertyListRegistry);
  149.                 }
  150.                 else {
  151.                     protocolPropertyConfig = ProtocolPropertiesUtils.getProtocolPropertyConfig(strutsBean.nome, oldProtocolPropertyListConfig);
  152.                 }
  153.             }

  154.             oldContenutoDocumento = new BinaryParameter();
  155.             if(protocolPropertyRegistry != null){
  156.                 // carico il vecchio contenuto della property
  157.                 oldContenutoDocumento.setValue(protocolPropertyRegistry.getByteFile());
  158.                 oldContenutoDocumento.setFilename(protocolPropertyRegistry.getFile());
  159.                 oldContenutoDocumento.setName(strutsBean.nome);
  160.             }
  161.             else if(protocolPropertyConfig != null){
  162.                 // carico il vecchio contenuto della property
  163.                 oldContenutoDocumento.setValue(protocolPropertyConfig.getByteFile());
  164.                 oldContenutoDocumento.setFilename(protocolPropertyConfig.getFile());
  165.                 oldContenutoDocumento.setName(strutsBean.nome);
  166.             }

  167.             StringBuilder contenutoDocumentoStringBuilder = new StringBuilder();
  168.             byte[] oldValue =  oldContenutoDocumento.getValue() ;
  169.             if(readOnly && oldValue==null) {
  170.                 // il valore deve essere preso da default value
  171.                 oldValue = b.getDefaultValue();
  172.                 oldContenutoDocumento.setValue(oldValue);
  173.                 if(oldContenutoDocumento.getFilename()==null) {
  174.                     oldContenutoDocumento.setFilename(binaryConsoleItem.getLabel());
  175.                 }
  176.             }
  177.             String errore = null;
  178.             if(showContent) {
  179.                 errore = Utilities.getTestoVisualizzabile(oldValue,contenutoDocumentoStringBuilder);
  180.             }
  181.            
  182.             // Parametri Barra titolo TIPO PROPRIETARIO / LABEL OGGETTO / GESTIONE DOCUMENTO
  183.             List<Parameter> lstParam = ppHelper.getTitolo(oggettoProprietario, strutsBean.tipoProprietario,  strutsBean.id, strutsBean.nome, strutsBean.idProprietario, strutsBean.nomeProprietario,strutsBean.nomeParentProprietario,strutsBean.urlChange, strutsBean.tipoAccordo);
  184.             lstParam.add(new Parameter(label,null));

  185.             if(ServletUtils.isEditModeInProgress(strutsBean.editMode)){

  186.                 // setto la barra del titolo    TIPO PROPRIETARIO / LABEL OGGETTO / GESTIONE DOCUMENTO          
  187.                 ServletUtils.setPageDataTitle(pd,lstParam);

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

  190.                 dati.add(ServletUtils.getDataElementForEditModeFinished());

  191.                 dati = ppHelper.addProtocolPropertyChangeToDati(tipoOp, dati, strutsBean.protocollo, strutsBean.id, strutsBean.nome, strutsBean.idProprietario,strutsBean.tipoProprietario,strutsBean.tipoAccordo,strutsBean.nomeProprietario,strutsBean.nomeParentProprietario,strutsBean.urlChange, label,
  192.                         oldContenutoDocumento,contenutoDocumentoStringBuilder,errore,tipologiaDocumentoScaricare,binaryConsoleItem, readOnly, noteAggiornamento);

  193.                 pd.setDati(dati);

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

  195.                 return ServletUtils.getStrutsForwardEditModeInProgress(mapping,
  196.                         ProtocolPropertiesCostanti.OBJECT_NAME_PP, ProtocolPropertiesCostanti.TIPO_OPERAZIONE_BINARY_PROPERTY_CHANGE);
  197.             }

  198.             // update del valore della singola property
  199.             AbstractProperty<?> abstractPropertyById = ProtocolPropertiesUtils.getAbstractPropertyById(strutsBean.protocolProperties, binaryConsoleItem.getId());
  200.             if(abstractPropertyById != null){
  201.                 BinaryProperty bp = (BinaryProperty) abstractPropertyById;
  202.                 bp.setValue(strutsBean.contenutoDocumento.getValue());
  203.                 bp.setFileName(strutsBean.contenutoDocumento.getFilename());
  204.                 bp.setFileId(strutsBean.contenutoDocumento.getId());
  205.             }

  206.             // validazione del contenuto
  207.             boolean isOk = true;

  208.             try{
  209.                 ppHelper.validaProtocolPropertyBinaria(strutsBean.nome,strutsBean.consoleConfiguration, strutsBean.consoleOperationType, strutsBean.protocolProperties);
  210.             }catch(ProtocolException e){
  211.                 ControlStationCore.getLog().error(e.getMessage(),e);
  212.                 pd.setMessage(e.getMessage());
  213.                 isOk = false;
  214.             }
  215.            
  216.             // Valido i parametri custom se ho gia' passato tutta la validazione prevista
  217.             if(isOk){
  218.                 try{
  219.                    
  220.                     // Rendo in chiaro eventuali proprietà cifrate, per consentirne la validazione
  221.                     ProtocolProperties protocolPropertiesCloned = new ProtocolProperties();
  222.                     if(strutsBean.protocolProperties!=null && strutsBean.protocolProperties.sizeProperties()>0) {
  223.                         for (int i = 0; i < strutsBean.protocolProperties.sizeProperties(); i++) {
  224.                             AbstractProperty<?> pp = strutsBean.protocolProperties.getProperty(i);
  225.                             if(pp instanceof BinaryProperty) {
  226.                                 BinaryProperty bp = (BinaryProperty) pp;
  227.                                 BinaryProperty bpCloned = ProtocolPropertiesFactory.newProperty(bp.getId(), ppCore.getDriverBYOKUtilities().unwrap(bp.getValue()), bp.getFileName(), bp.getFileId());
  228.                                 protocolPropertiesCloned.addProperty(bpCloned);
  229.                             }
  230.                             else if(pp instanceof StringProperty) {
  231.                                 StringProperty sp = (StringProperty) pp;
  232.                                 StringProperty spCloned = ProtocolPropertiesFactory.newProperty(sp.getId(), ppCore.getDriverBYOKUtilities().unwrap(sp.getValue()));
  233.                                 protocolPropertiesCloned.addProperty(spCloned);
  234.                             }
  235.                             else if(pp instanceof BooleanProperty) {
  236.                                 BooleanProperty bp = (BooleanProperty) pp;
  237.                                 BooleanProperty bpCloned = ProtocolPropertiesFactory.newProperty(bp.getId(), bp.getValue());
  238.                                 protocolPropertiesCloned.addProperty(bpCloned);
  239.                             }
  240.                             else if(pp instanceof NumberProperty) {
  241.                                 NumberProperty np = (NumberProperty) pp;
  242.                                 NumberProperty npCloned = ProtocolPropertiesFactory.newProperty(np.getId(), np.getValue());
  243.                                 protocolPropertiesCloned.addProperty(npCloned);
  244.                             }
  245.                         }
  246.                     }
  247.                    
  248.                     ppHelper.validateDynamicConfig(strutsBean.consoleDynamicConfiguration, idOggettoProprietario, strutsBean.tipoAccordo, strutsBean.tipoProprietario, strutsBean.consoleConfiguration, strutsBean.consoleOperationType,
  249.                             protocolPropertiesCloned,/** strutsBean.protocolProperties,*/
  250.                             strutsBean.registryReader, strutsBean.configRegistryReader);
  251.                 }catch(ProtocolException e){
  252.                     ControlStationCore.getLog().error(e.getMessage(),e);
  253.                     pd.setMessage(e.getMessage());
  254.                     isOk = false;
  255.                 }
  256.             }
  257.            
  258.             if (!isOk) {

  259.                 // setto la barra del titolo    TIPO PROPRIETARIO / LABEL OGGETTO / GESTIONE DOCUMENTO          
  260.                 ServletUtils.setPageDataTitle(pd, lstParam);

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

  263.                 dati.add(ServletUtils.getDataElementForEditModeFinished());
  264.                
  265.                 contenutoDocumentoStringBuilder = new StringBuilder();
  266.                 errore = null;
  267.                 if(showContent) {
  268.                     errore = Utilities.getTestoVisualizzabile(strutsBean.contenutoDocumento.getValue(),contenutoDocumentoStringBuilder);
  269.                 }

  270.                 dati = ppHelper.addProtocolPropertyChangeToDati(tipoOp, dati, strutsBean.protocollo, strutsBean.id, strutsBean.nome, strutsBean.idProprietario,strutsBean.tipoProprietario,strutsBean.tipoAccordo,strutsBean.nomeProprietario,strutsBean.nomeParentProprietario,strutsBean.urlChange, label,
  271.                         strutsBean.contenutoDocumento,contenutoDocumentoStringBuilder,errore,tipologiaDocumentoScaricare,binaryConsoleItem, readOnly, noteAggiornamento);
  272.                
  273.                 pd.setDati(dati);
  274.                
  275.                 //cancello il file temporaneo
  276.                 ppHelper.deleteBinaryProtocolPropertyTmpFiles(strutsBean.protocolProperties, strutsBean.nome, ProtocolPropertiesCostanti.PARAMETRO_PP_CONTENUTO_DOCUMENTO);

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

  278.                 return ServletUtils.getStrutsForwardEditModeCheckError(mapping,
  279.                         ProtocolPropertiesCostanti.OBJECT_NAME_PP, ProtocolPropertiesCostanti.TIPO_OPERAZIONE_BINARY_PROPERTY_CHANGE);
  280.             }

  281.             // salvataggio delle properties con hack in ADD per far settare il valore della property binary
  282.             if(propertyRegistry) {
  283.                 List<ProtocolProperty> protocolPropertiesAggiornate = ProtocolPropertiesUtils.toProtocolPropertiesRegistry(strutsBean.protocolProperties, ConsoleOperationType.ADD, oldProtocolPropertyListRegistry);
  284.                 ppHelper.salvaPropertiesRegistry(userLogin, ppHelper.smista(), oggettoProprietario, protocolPropertiesAggiornate, strutsBean.id, strutsBean.nome, strutsBean.idProprietario, strutsBean.nomeProprietario, strutsBean.nomeParentProprietario, strutsBean.tipoProprietario, strutsBean.tipoAccordo);
  285.             }
  286.             else {
  287.                 List<org.openspcoop2.core.config.ProtocolProperty> protocolPropertiesAggiornate = ProtocolPropertiesUtils.toProtocolPropertiesConfig(strutsBean.protocolProperties, ConsoleOperationType.ADD, oldProtocolPropertyListConfig);
  288.                 ppHelper.salvaPropertiesConfig(userLogin, ppHelper.smista(), oggettoProprietario, protocolPropertiesAggiornate, strutsBean.id, strutsBean.nome, strutsBean.idProprietario, strutsBean.nomeProprietario, strutsBean.nomeParentProprietario, strutsBean.tipoProprietario, strutsBean.tipoAccordo);
  289.             }
  290.                
  291.             //cancello il file temporaneo
  292.             ppHelper.deleteBinaryProtocolPropertyTmpFiles(strutsBean.protocolProperties, strutsBean.nome, ProtocolPropertiesCostanti.PARAMETRO_PP_CONTENUTO_DOCUMENTO);
  293.            
  294.             // mostro la visualizzazione del file
  295.            
  296.             // setto la barra del titolo    TIPO PROPRIETARIO / LABEL OGGETTO / GESTIONE DOCUMENTO  
  297.             // Aggiorno la barra perche' possono essere cambiati gli id delle breadcrumbs a seconda del proprietario
  298.             lstParam = ppHelper.getTitolo(oggettoProprietario, strutsBean.tipoProprietario,  strutsBean.id, strutsBean.nome, strutsBean.idProprietario, strutsBean.nomeProprietario,strutsBean.nomeParentProprietario,strutsBean.urlChange, strutsBean.tipoAccordo,true);
  299.             lstParam.add(new Parameter(label,null));
  300.            
  301.             ServletUtils.setPageDataTitle(pd, lstParam);

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

  304.             dati.add(ServletUtils.getDataElementForEditModeFinished());
  305.            
  306.             // ricaricare il valore dell'id property
  307.             oggettoProprietario = ppHelper.getOggettoProprietario(strutsBean.idProprietario, strutsBean.nomeProprietario, strutsBean.nomeParentProprietario, strutsBean.tipoProprietario, strutsBean.tipoAccordo);
  308.            
  309.             if(propertyRegistry) {
  310.                 oldProtocolPropertyListRegistry = ppHelper.getProtocolPropertiesRegistry(oggettoProprietario, strutsBean.id, strutsBean.nome, strutsBean.idProprietario, strutsBean.nomeProprietario, strutsBean.nomeParentProprietario, strutsBean.tipoProprietario, strutsBean.tipoAccordo);
  311.                 ProtocolProperty protocolProperty = ProtocolPropertiesUtils.getProtocolPropertyRegistry(strutsBean.nome, oldProtocolPropertyListRegistry);
  312.                 strutsBean.id = null;
  313.                 if(protocolProperty != null)
  314.                     strutsBean.id = ""+ protocolProperty.getId();
  315.             }
  316.             else {
  317.                 oldProtocolPropertyListConfig = ppHelper.getProtocolPropertiesConfig(oggettoProprietario, strutsBean.id, strutsBean.nome, strutsBean.idProprietario, strutsBean.nomeProprietario, strutsBean.nomeParentProprietario, strutsBean.tipoProprietario, strutsBean.tipoAccordo);
  318.                 org.openspcoop2.core.config.ProtocolProperty protocolProperty = ProtocolPropertiesUtils.getProtocolPropertyConfig(strutsBean.nome, oldProtocolPropertyListConfig);
  319.                 strutsBean.id = null;
  320.                 if(protocolProperty != null)
  321.                     strutsBean.id = ""+ protocolProperty.getId();
  322.             }
  323.            
  324.             contenutoDocumentoStringBuilder = new StringBuilder();
  325.             errore = null;
  326.             if(showContent) {
  327.                 errore = Utilities.getTestoVisualizzabile(strutsBean.contenutoDocumento.getValue(),contenutoDocumentoStringBuilder);
  328.             }

  329.             dati = ppHelper.addProtocolPropertyChangeToDati(tipoOp, dati, strutsBean.protocollo, strutsBean.id, strutsBean.nome, strutsBean.idProprietario,strutsBean.tipoProprietario,strutsBean.tipoAccordo,strutsBean.nomeProprietario,strutsBean.nomeParentProprietario,strutsBean.urlChange, label,
  330.                     strutsBean.contenutoDocumento,contenutoDocumentoStringBuilder,errore,tipologiaDocumentoScaricare,binaryConsoleItem, readOnly, noteAggiornamento);

  331.             pd.setDati(dati);
  332.            
  333.             // setto la baseurl per il redirect (alla servlet XXXChange) ,strutsBean.urlChange
  334.             // se viene premuto invio
  335.             gd = generalHelper.initGeneralData(request);

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

  337.             return ServletUtils.getStrutsForwardEditModeFinished(mapping, ProtocolPropertiesCostanti.OBJECT_NAME_PP, ProtocolPropertiesCostanti.TIPO_OPERAZIONE_BINARY_PROPERTY_CHANGE);    

  338.         } catch (Exception e) {
  339.             return ServletUtils.getStrutsForwardError(ControlStationCore.getLog(), e, pd, request, session, gd, mapping,
  340.                     ProtocolPropertiesCostanti.OBJECT_NAME_PP, ProtocolPropertiesCostanti.TIPO_OPERAZIONE_BINARY_PROPERTY_CHANGE);
  341.         }
  342.     }
  343. }