ProtocolPropertiesHelper.java
/*
* GovWay - A customizable API Gateway
* https://govway.org
*
* Copyright (c) 2005-2024 Link.it srl (https://link.it).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3, as published by
* the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.openspcoop2.web.ctrlstat.servlet.protocol_properties;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.openspcoop2.core.config.ServizioApplicativo;
import org.openspcoop2.core.constants.ProprietariProtocolProperty;
import org.openspcoop2.core.id.IDAccordo;
import org.openspcoop2.core.id.IDAccordoAzione;
import org.openspcoop2.core.id.IDFruizione;
import org.openspcoop2.core.id.IDPortType;
import org.openspcoop2.core.id.IDPortTypeAzione;
import org.openspcoop2.core.id.IDResource;
import org.openspcoop2.core.id.IDServizio;
import org.openspcoop2.core.id.IDServizioApplicativo;
import org.openspcoop2.core.id.IDSoggetto;
import org.openspcoop2.core.registry.AccordoCooperazione;
import org.openspcoop2.core.registry.AccordoServizioParteComune;
import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
import org.openspcoop2.core.registry.Azione;
import org.openspcoop2.core.registry.Fruitore;
import org.openspcoop2.core.registry.Operation;
import org.openspcoop2.core.registry.PortType;
import org.openspcoop2.core.registry.ProtocolProperty;
import org.openspcoop2.core.registry.Resource;
import org.openspcoop2.core.registry.Soggetto;
import org.openspcoop2.core.registry.beans.AccordoServizioParteComuneSintetico;
import org.openspcoop2.core.registry.beans.PortTypeSintetico;
import org.openspcoop2.core.registry.constants.StatiAccordo;
import org.openspcoop2.core.registry.driver.BeanUtilities;
import org.openspcoop2.core.registry.driver.DriverRegistroServiziException;
import org.openspcoop2.core.registry.driver.DriverRegistroServiziNotFound;
import org.openspcoop2.protocol.sdk.ProtocolException;
import org.openspcoop2.protocol.sdk.constants.ConsoleOperationType;
import org.openspcoop2.protocol.sdk.properties.AbstractConsoleItem;
import org.openspcoop2.protocol.sdk.properties.BinaryConsoleItem;
import org.openspcoop2.protocol.sdk.properties.ConsoleConfiguration;
import org.openspcoop2.protocol.sdk.properties.IConsoleDynamicConfiguration;
import org.openspcoop2.protocol.sdk.properties.ProtocolProperties;
import org.openspcoop2.protocol.sdk.registry.IConfigIntegrationReader;
import org.openspcoop2.protocol.sdk.registry.IRegistryReader;
import org.openspcoop2.web.ctrlstat.core.ControlStationCore;
import org.openspcoop2.web.ctrlstat.servlet.ConsoleHelper;
import org.openspcoop2.web.ctrlstat.servlet.ac.AccordiCooperazioneCostanti;
import org.openspcoop2.web.ctrlstat.servlet.apc.AccordiServizioParteComuneCostanti;
import org.openspcoop2.web.ctrlstat.servlet.apc.AccordiServizioParteComuneHelper;
import org.openspcoop2.web.ctrlstat.servlet.apc.AccordiServizioParteComuneUtilities;
import org.openspcoop2.web.ctrlstat.servlet.apc.api.ApiCostanti;
import org.openspcoop2.web.ctrlstat.servlet.aps.AccordiServizioParteSpecificaCostanti;
import org.openspcoop2.web.ctrlstat.servlet.aps.AccordiServizioParteSpecificaHelper;
import org.openspcoop2.web.ctrlstat.servlet.archivi.ArchiviCostanti;
import org.openspcoop2.web.ctrlstat.servlet.pd.PorteDelegateCostanti;
import org.openspcoop2.web.ctrlstat.servlet.pd.PorteDelegateHelper;
import org.openspcoop2.web.ctrlstat.servlet.sa.ServiziApplicativiCostanti;
import org.openspcoop2.web.ctrlstat.servlet.soggetti.SoggettiCostanti;
import org.openspcoop2.web.lib.mvc.BinaryParameter;
import org.openspcoop2.web.lib.mvc.Costanti;
import org.openspcoop2.web.lib.mvc.DataElement;
import org.openspcoop2.web.lib.mvc.DataElementType;
import org.openspcoop2.web.lib.mvc.PageData;
import org.openspcoop2.web.lib.mvc.Parameter;
import org.openspcoop2.web.lib.mvc.ServletUtils;
import org.openspcoop2.web.lib.mvc.TipoOperazione;
/**
* ProtocolPropertiesHelper
*
* @author Pintori Giuliano (pintori@link.it)
* @author $Author$
* @version $Rev$, $Date$
*/
public class ProtocolPropertiesHelper extends ConsoleHelper {
public ProtocolPropertiesHelper(HttpServletRequest request, PageData pd, HttpSession session) {
super(request, pd, session);
}
public ProtocolPropertiesHelper(ControlStationCore core, HttpServletRequest request, PageData pd, HttpSession session) {
super(core, request, pd, session);
}
public Object getIdOggettoProprietario(Object proprietario, String idProprietario, String nomeProprieta, String nomeParentProprieta, ProprietariProtocolProperty tipoProprietario, String tipoAccordo) throws Exception {
try{
if(tipoProprietario != null && proprietario != null){
switch (tipoProprietario) {
case ACCORDO_COOPERAZIONE:
AccordoCooperazione ac = (AccordoCooperazione) proprietario;
IDAccordo idAccordoCooperazione = this.idAccordoFactory.getIDAccordoFromValues(ac.getNome(),BeanUtilities.getSoggettoReferenteID(ac.getSoggettoReferente()),ac.getVersione());
return idAccordoCooperazione;
case ACCORDO_SERVIZIO_PARTE_COMUNE:
AccordoServizioParteComune as = (AccordoServizioParteComune) proprietario;
IDAccordo idAccordo = this.idAccordoFactory.getIDAccordoFromValues(as.getNome(),BeanUtilities.getSoggettoReferenteID(as.getSoggettoReferente()),as.getVersione());
return idAccordo;
case ACCORDO_SERVIZIO_PARTE_SPECIFICA:
AccordoServizioParteSpecifica aps = (AccordoServizioParteSpecifica) proprietario;
IDServizio idAps = this.idServizioFactory.getIDServizioFromAccordo(aps);
return idAps;
case AZIONE_ACCORDO:
Azione azione = (Azione) proprietario;
AccordoServizioParteComuneSintetico apca = this.apcCore.getAccordoServizioSintetico(Integer.parseInt(idProprietario));
IDAccordo idAccordoAz = this.idAccordoFactory.getIDAccordoFromValues(apca.getNome(),BeanUtilities.getSoggettoReferenteID(apca.getSoggettoReferente()),apca.getVersione());
IDAccordoAzione idAccordoAzione = new IDAccordoAzione();
idAccordoAzione.setIdAccordo(idAccordoAz);
idAccordoAzione.setNome(azione.getNome());
return idAccordoAzione;
case FRUITORE:
Fruitore fruitore = (Fruitore) proprietario;
IDSoggetto idSoggettoFruitore = new IDSoggetto(fruitore.getTipo(), fruitore.getNome());
AccordoServizioParteSpecifica apsFrui = this.apsCore.getAccordoServizioParteSpecifica(fruitore.getIdServizio());
IDServizio idApsFrui = this.idServizioFactory.getIDServizioFromAccordo(apsFrui);
IDFruizione idFruizione = new IDFruizione();
idFruizione.setIdServizio(idApsFrui);
idFruizione.setIdFruitore(idSoggettoFruitore);
return idFruizione;
case OPERATION:
org.openspcoop2.core.registry.Operation azionePt = (Operation) proprietario;
IDPortType idPortTypeAz = new IDPortType();
int idProp = Integer.parseInt(idProprietario);
AccordoServizioParteComuneSintetico apc = this.apcCore.getAccordoServizioSintetico(idProp);
for (PortTypeSintetico pt : apc.getPortType()) {
if(pt.getNome().equals(nomeParentProprieta)){
IDAccordo idAccordoPt = this.idAccordoFactory.getIDAccordoFromValues(apc.getNome(),BeanUtilities.getSoggettoReferenteID(apc.getSoggettoReferente()),apc.getVersione());
idPortTypeAz.setIdAccordo(idAccordoPt);
idPortTypeAz.setNome(pt.getNome());
break;
}
}
IDPortTypeAzione idAzionePt = new IDPortTypeAzione();
idAzionePt.setIdPortType(idPortTypeAz);
idAzionePt.setNome(azionePt.getNome());
return idAzionePt;
case PORT_TYPE:
PortType pt = (PortType) proprietario;
IDPortType idPt = new IDPortType();
AccordoServizioParteComuneSintetico apcPt = this.apcCore.getAccordoServizioSintetico(pt.getIdAccordo());
IDAccordo idAccordoPt = this.idAccordoFactory.getIDAccordoFromValues(apcPt.getNome(),BeanUtilities.getSoggettoReferenteID(apcPt.getSoggettoReferente()),apcPt.getVersione());
idPt.setIdAccordo(idAccordoPt);
idPt.setNome(pt.getNome());
return idPt;
case RESOURCE:
org.openspcoop2.core.registry.Resource risorsa = (org.openspcoop2.core.registry.Resource) proprietario;
AccordoServizioParteComuneSintetico apcr = this.apcCore.getAccordoServizioSintetico(Integer.parseInt(idProprietario));
IDAccordo idAccordoRisorsa = this.idAccordoFactory.getIDAccordoFromValues(apcr.getNome(),
BeanUtilities.getSoggettoReferenteID(apcr.getSoggettoReferente()),apcr.getVersione());
IDResource idAccordoR = new IDResource();
idAccordoR.setIdAccordo(idAccordoRisorsa);
idAccordoR.setNome(risorsa.getNome());
return idAccordoR;
case SOGGETTO:
Soggetto soggettoRegistro = (Soggetto) proprietario;
IDSoggetto idSoggetto = new IDSoggetto(soggettoRegistro.getTipo(), soggettoRegistro.getNome());
return idSoggetto;
case SERVIZIO_APPLICATIVO:
ServizioApplicativo servizioApplicativo = (ServizioApplicativo) proprietario;
IDServizioApplicativo idServizioApplicativo = new IDServizioApplicativo();
idServizioApplicativo.setIdSoggettoProprietario(new IDSoggetto(servizioApplicativo.getTipoSoggettoProprietario(), servizioApplicativo.getNomeSoggettoProprietario()));
idServizioApplicativo.setNome(servizioApplicativo.getNome());
return idServizioApplicativo;
}
}
} catch (DriverRegistroServiziException e) {
throw e;
}
return null;
}
public Object getOggettoProprietario(String idProprietario, String nomeProprieta, String nomeParentProprieta, ProprietariProtocolProperty tipoProprietario, String tipoAccordo) throws Exception {
try{
if(tipoProprietario != null && idProprietario != null){
long idProp = Long.valueOf(idProprietario);
switch (tipoProprietario) {
case ACCORDO_COOPERAZIONE:
AccordoCooperazione ac = this.acCore.getAccordoCooperazione(idProp);
return ac;
case ACCORDO_SERVIZIO_PARTE_COMUNE:
AccordoServizioParteComune as = this.apcCore.getAccordoServizioFull(idProp);
return as;
case ACCORDO_SERVIZIO_PARTE_SPECIFICA:
AccordoServizioParteSpecifica aps = this.apsCore.getAccordoServizioParteSpecifica(idProp);
return aps;
case AZIONE_ACCORDO:
AccordoServizioParteComune apca = this.apcCore.getAccordoServizioFull(idProp);
for(Azione azione: apca.getAzioneList()){
if(azione.getNome().equals(nomeProprieta))
return azione;
}
return null;
case FRUITORE:
Fruitore servFru = this.apsCore.getServizioFruitore(idProp);
return servFru;
case OPERATION:
AccordoServizioParteComune apcop = this.apcCore.getAccordoServizioFull(idProp);
for (PortType pt : apcop.getPortTypeList()) {
if(pt.getNome().equals(nomeParentProprieta)){
for (org.openspcoop2.core.registry.Operation azione : pt.getAzioneList()) {
if(azione.getNome().equals(nomeProprieta ))
return azione;
}
}
}
return null;
case PORT_TYPE:
AccordoServizioParteComune apc = this.apcCore.getAccordoServizioFull(idProp);
for (PortType pt : apc.getPortTypeList()) {
if(pt.getNome().equals(nomeProprieta))
return pt;
}
return null;
case RESOURCE:
AccordoServizioParteComune apcr = this.apcCore.getAccordoServizioFull(idProp);
for(Resource risorsa: apcr.getResourceList()){
if(risorsa.getNome().equals(nomeProprieta))
return risorsa;
}
return null;
case SOGGETTO:
Soggetto soggettoRegistro = this.soggettiCore.getSoggettoRegistro(idProp);
return soggettoRegistro;
case SERVIZIO_APPLICATIVO:
ServizioApplicativo servizioApplicativo = this.saCore.getServizioApplicativo(idProp);
return servizioApplicativo;
}
}
} catch (DriverRegistroServiziNotFound e) {
throw e;
} catch (DriverRegistroServiziException e) {
throw e;
}
return null;
}
public String getStatoOggettoProprietario(String idProprietario, String nomeProprieta, String nomeParentProprieta, ProprietariProtocolProperty tipoProprietario, String tipoAccordo) throws Exception {
try{
if(tipoProprietario != null && idProprietario != null){
int idProp = Integer.parseInt(idProprietario);
switch (tipoProprietario) {
case ACCORDO_COOPERAZIONE:
AccordoCooperazione ac = this.acCore.getAccordoCooperazione(idProp);
return ac.getStatoPackage();
case ACCORDO_SERVIZIO_PARTE_COMUNE:
AccordoServizioParteComuneSintetico as = this.apcCore.getAccordoServizioSintetico(idProp);
return as.getStatoPackage();
case ACCORDO_SERVIZIO_PARTE_SPECIFICA:
AccordoServizioParteSpecifica aps = this.apsCore.getAccordoServizioParteSpecifica(idProp);
return aps.getStatoPackage();
case AZIONE_ACCORDO:
AccordoServizioParteComuneSintetico apca = this.apcCore.getAccordoServizioSintetico(idProp);
return apca.getStatoPackage();
case FRUITORE:
Fruitore servFru = this.apsCore.getServizioFruitore(idProp);
return servFru.getStatoPackage();
case OPERATION:
AccordoServizioParteComuneSintetico apcop = this.apcCore.getAccordoServizioSintetico(idProp);
return apcop.getStatoPackage();
case PORT_TYPE:
AccordoServizioParteComuneSintetico apc = this.apcCore.getAccordoServizioSintetico(idProp);
return apc.getStatoPackage();
case RESOURCE:
AccordoServizioParteComuneSintetico apcr = this.apcCore.getAccordoServizioSintetico(idProp);
return apcr.getStatoPackage();
case SOGGETTO:
return null;
case SERVIZIO_APPLICATIVO:
return null;
}
}
} catch (DriverRegistroServiziNotFound e) {
throw e;
} catch (DriverRegistroServiziException e) {
throw e;
}
return null;
}
public List<DataElement> addProtocolPropertyChangeToDati(TipoOperazione tipoOp, List<DataElement> dati, String protocollo, String id, String nome,
String idProprietario, ProprietariProtocolProperty tipoProprietario, String tipoAccordo, String nomeProprietario,String nomeParentProprietario, String urlChange, String label,
BinaryParameter contenutoDocumento, StringBuilder contenutoDocumentoStringBuilder, String errore, String tipologiaDocumentoScaricare, AbstractConsoleItem<?> binaryConsoleItem,
boolean readOnly, String noteAggiornamento) throws Exception {
/* ID */
DataElement de = new DataElement();
de.setLabel(ProtocolPropertiesCostanti.PARAMETRO_PP_ID);
de.setValue(id);
de.setType(DataElementType.HIDDEN);
de.setName(ProtocolPropertiesCostanti.PARAMETRO_PP_ID);
dati.add(de);
/* CHANGE_BINARY */
de = new DataElement();
de.setLabel(ProtocolPropertiesCostanti.PARAMETRO_PP_CHANGE_BINARY);
de.setValue(ProtocolPropertiesCostanti.PARAMETRO_PP_CHANGE_BINARY_VALUE_TRUE);
de.setType(DataElementType.HIDDEN);
de.setName(ProtocolPropertiesCostanti.PARAMETRO_PP_CHANGE_BINARY);
dati.add(de);
/* NOME */
de = new DataElement();
de.setLabel(ProtocolPropertiesCostanti.PARAMETRO_PP_NOME);
de.setValue(nome);
de.setType(DataElementType.HIDDEN);
de.setName(ProtocolPropertiesCostanti.PARAMETRO_PP_NOME);
dati.add(de);
/* ID_PROPRIETARIO */
de = new DataElement();
de.setLabel(ProtocolPropertiesCostanti.PARAMETRO_PP_ID_PROPRIETARIO);
de.setValue(idProprietario);
de.setType(DataElementType.HIDDEN);
de.setName(ProtocolPropertiesCostanti.PARAMETRO_PP_ID_PROPRIETARIO);
dati.add(de);
/* PROTOCOLLO */
de = new DataElement();
de.setLabel(ProtocolPropertiesCostanti.PARAMETRO_PP_PROTOCOLLO);
de.setValue(protocollo);
de.setType(DataElementType.HIDDEN);
de.setName(ProtocolPropertiesCostanti.PARAMETRO_PP_PROTOCOLLO);
dati.add(de);
/* TIPO_PROPRIETARIO */
de = new DataElement();
de.setLabel(ProtocolPropertiesCostanti.PARAMETRO_PP_TIPO_PROPRIETARIO);
de.setValue(tipoProprietario.toString());
de.setType(DataElementType.HIDDEN);
de.setName(ProtocolPropertiesCostanti.PARAMETRO_PP_TIPO_PROPRIETARIO);
dati.add(de);
/* TIPO_ACCORDO */
de = new DataElement();
de.setLabel(ProtocolPropertiesCostanti.PARAMETRO_PP_TIPO_ACCORDO);
de.setValue(tipoAccordo);
de.setType(DataElementType.HIDDEN);
de.setName(ProtocolPropertiesCostanti.PARAMETRO_PP_TIPO_ACCORDO);
dati.add(de);
/* NOME_PROPRIETARIO */
de = new DataElement();
de.setLabel(ProtocolPropertiesCostanti.PARAMETRO_PP_NOME_PROPRIETARIO);
de.setValue(nomeProprietario);
de.setType(DataElementType.HIDDEN);
de.setName(ProtocolPropertiesCostanti.PARAMETRO_PP_NOME_PROPRIETARIO);
dati.add(de);
/* NOME_PARENT_PROPRIETARIO */
de = new DataElement();
de.setLabel(ProtocolPropertiesCostanti.PARAMETRO_PP_NOME_PARENT_PROPRIETARIO);
de.setValue(nomeParentProprietario);
de.setType(DataElementType.HIDDEN);
de.setName(ProtocolPropertiesCostanti.PARAMETRO_PP_NOME_PARENT_PROPRIETARIO);
dati.add(de);
/* URL_CHANGE */
de = new DataElement();
de.setLabel(ProtocolPropertiesCostanti.PARAMETRO_PP_URL_ORIGINALE_CHANGE);
de.setValue(urlChange);
de.setType(DataElementType.HIDDEN);
de.setName(ProtocolPropertiesCostanti.PARAMETRO_PP_URL_ORIGINALE_CHANGE);
dati.add(de);
de = new DataElement();
de.setLabel(binaryConsoleItem.getLabel());
de.setType(DataElementType.TITLE);
dati.add(de);
boolean showContent = true;
if(binaryConsoleItem instanceof BinaryConsoleItem) {
showContent = ((BinaryConsoleItem)binaryConsoleItem).isShowContent();
}
String statoPackage = this.getStatoOggettoProprietario(idProprietario, nomeProprietario, nomeParentProprietario, tipoProprietario, tipoAccordo);
// solo per le properties con stato finale blocco l'edit
if(this.isShowGestioneWorkflowStatoDocumenti() && statoPackage != null && StatiAccordo.finale.toString().equals(statoPackage)) {
this.pd.disableEditMode();
if(contenutoDocumento != null && contenutoDocumento.getValue() != null && contenutoDocumento.getValue().length > 0){
de = new DataElement();
de.setLabel(ProtocolPropertiesCostanti.LABEL_NOME);
de.setType(DataElementType.TEXT);
de.setValue(contenutoDocumento.getFilename());
dati.add(de);
if(showContent) {
if(errore!=null){
de = new DataElement();
de.setValue(errore);
de.setLabel(binaryConsoleItem.getLabel());
de.setType(DataElementType.TEXT);
de.setSize(this.getSize());
dati.add(de);
}
else{
de = new DataElement();
de.setLabel(ProtocolPropertiesCostanti.LABEL_DOCUMENTO_ATTUALE);
de.setType(DataElementType.TEXT_AREA_NO_EDIT);
de.setValue(contenutoDocumentoStringBuilder.toString());
de.setRows(30);
de.setCols(100);
dati.add(de);
}
}
}else {
de = new DataElement();
de.setType(DataElementType.TEXT);
de.setValue(ProtocolPropertiesCostanti.LABEL_DOCUMENTO_NOT_FOUND);
de.setSize(this.getSize());
dati.add(de);
}
if(id != null && !"".equals(id) && this.core.isVisualizzaInformazioniCifrate()){
DataElement saveAs = new DataElement();
saveAs.setValue(ProtocolPropertiesCostanti.LABEL_DOWNLOAD);
saveAs.setType(DataElementType.LINK);
saveAs.setUrl(ArchiviCostanti.SERVLET_NAME_DOCUMENTI_EXPORT,
new Parameter(ProtocolPropertiesCostanti.PARAMETRO_PP_ID_ALLEGATO, id),
new Parameter(ArchiviCostanti.PARAMETRO_ARCHIVI_ALLEGATO_TIPO_ACCORDO_TIPO_DOCUMENTO, tipologiaDocumentoScaricare),
new Parameter(ArchiviCostanti.PARAMETRO_ARCHIVI_ALLEGATO_TIPO_ACCORDO, ArchiviCostanti.PARAMETRO_VALORE_ARCHIVI_ALLEGATO_TIPO_PROTOCOL_PROPERTY));
saveAs.setDisabilitaAjaxStatus();
if(this.core.getDriverBYOKUtilities().isEnabledBYOK() && binaryConsoleItem.isLockedType()) {
saveAs.setConfirm(Costanti.TITOLO_FINESTRA_MODALE_DOWNLOAD_MESSAGE_WARNING, this.core.getByokWarningMessage(), Costanti.LABEL_MONITOR_BUTTON_CONFERMA);
}
dati.add(saveAs);
}
de = new DataElement();
de.setType(DataElementType.HIDDEN);
de.setName(Costanti.PARAMETER_FILENAME_PREFIX + ProtocolPropertiesCostanti.PARAMETRO_PP_CONTENUTO_DOCUMENTO);
de.setValue(contenutoDocumento!=null ? contenutoDocumento.getFilename() : null);
dati.add(de);
de = new DataElement();
de.setType(DataElementType.HIDDEN);
de.setName(Costanti.PARAMETER_FILEID_PREFIX + ProtocolPropertiesCostanti.PARAMETRO_PP_CONTENUTO_DOCUMENTO);
de.setValue(contenutoDocumento!=null ? contenutoDocumento.getId(): null);
dati.add(de);
}else {
/* Contenuto Documento */
if(contenutoDocumento != null && contenutoDocumento.getValue() != null && contenutoDocumento.getValue().length > 0){
de = new DataElement();
de.setLabel(ProtocolPropertiesCostanti.LABEL_NOME);
de.setType(DataElementType.TEXT);
de.setValue(contenutoDocumento.getFilename());
dati.add(de);
if(showContent) {
if(errore!=null){
de = new DataElement();
de.setValue(errore);
de.setLabel(binaryConsoleItem.getLabel());
de.setType(DataElementType.TEXT);
de.setSize(this.getSize());
dati.add(de);
}
else{
de = new DataElement();
de.setLabel(ProtocolPropertiesCostanti.LABEL_DOCUMENTO_ATTUALE);
de.setType(DataElementType.TEXT_AREA_NO_EDIT);
de.setValue(contenutoDocumentoStringBuilder.toString());
de.setRows(30);
de.setCols(100);
dati.add(de);
}
}
if(id != null && !"".equals(id) && this.core.isVisualizzaInformazioniCifrate()){
DataElement saveAs = new DataElement();
saveAs.setValue(ProtocolPropertiesCostanti.LABEL_DOWNLOAD);
saveAs.setType(DataElementType.LINK);
saveAs.setUrl(ArchiviCostanti.SERVLET_NAME_DOCUMENTI_EXPORT,
new Parameter(ProtocolPropertiesCostanti.PARAMETRO_PP_ID_ALLEGATO, id),
new Parameter(ArchiviCostanti.PARAMETRO_ARCHIVI_ALLEGATO_TIPO_ACCORDO_TIPO_DOCUMENTO, tipologiaDocumentoScaricare),
new Parameter(ArchiviCostanti.PARAMETRO_ARCHIVI_ALLEGATO_TIPO_ACCORDO, ArchiviCostanti.PARAMETRO_VALORE_ARCHIVI_ALLEGATO_TIPO_PROTOCOL_PROPERTY));
saveAs.setDisabilitaAjaxStatus();
if(this.core.getDriverBYOKUtilities().isEnabledBYOK() && binaryConsoleItem.isLockedType()) {
saveAs.setConfirm(Costanti.TITOLO_FINESTRA_MODALE_DOWNLOAD_MESSAGE_WARNING, this.core.getByokWarningMessage(), Costanti.LABEL_MONITOR_BUTTON_CONFERMA);
}
dati.add(saveAs);
}
if(!readOnly) {
de = new DataElement();
de.setType(DataElementType.TITLE);
de.setLabel(ProtocolPropertiesCostanti.LABEL_AGGIORNAMENTO +" " +binaryConsoleItem.getLabel());
de.setValue("");
de.setSize(this.getSize());
dati.add(de);
}
}else {
de = new DataElement();
de.setLabel(ProtocolPropertiesCostanti.LABEL_DOCUMENTO_ATTUALE);
de.setType(DataElementType.TEXT);
de.setValue(ProtocolPropertiesCostanti.LABEL_DOCUMENTO_NOT_FOUND);
dati.add(de);
}
if(!readOnly) {
de = new DataElement();
de.setLabel(ProtocolPropertiesCostanti.LABEL_CONTENUTO_NUOVO);
de.setValue("");
de.setType(DataElementType.FILE);
de.setName(ProtocolPropertiesCostanti.PARAMETRO_PP_CONTENUTO_DOCUMENTO);
de.setSize(this.getSize());
de.setRequired(binaryConsoleItem.isRequired());
dati.add(de);
}
de = new DataElement();
de.setType(DataElementType.HIDDEN);
de.setName(Costanti.PARAMETER_FILENAME_PREFIX + ProtocolPropertiesCostanti.PARAMETRO_PP_CONTENUTO_DOCUMENTO);
de.setValue(contenutoDocumento!=null ? contenutoDocumento.getFilename() : null);
dati.add(de);
de = new DataElement();
de.setType(DataElementType.HIDDEN);
de.setName(Costanti.PARAMETER_FILEID_PREFIX + ProtocolPropertiesCostanti.PARAMETRO_PP_CONTENUTO_DOCUMENTO);
de.setValue(contenutoDocumento!=null ? contenutoDocumento.getId() : null);
dati.add(de);
if(!readOnly &&
contenutoDocumento != null && contenutoDocumento.getValue() != null && contenutoDocumento.getValue().length > 0 && !binaryConsoleItem.isRequired()){
de = new DataElement();
de.setBold(true);
de.setLabel(ProtocolPropertiesCostanti.LABEL_DOCUMENTO_CHANGE_CLEAR_WARNING);
de.setValue(ProtocolPropertiesCostanti.LABEL_DOCUMENTO_CHANGE_CLEAR);
de.setType(DataElementType.NOTE);
de.setName(ProtocolPropertiesCostanti.PARAMETRO_PP_CONTENUTO_DOCUMENTO_WARN);
de.setSize(this.getSize());
dati.add(de);
}
if(!readOnly && noteAggiornamento!=null) {
de = new DataElement();
de.setValue(noteAggiornamento);
de.setType(DataElementType.NOTE);
de.setName(ProtocolPropertiesCostanti.PARAMETRO_PP_CONTENUTO_DOCUMENTO_NOTE);
de.setSize(this.getSize());
dati.add(de);
}
if(readOnly) {
this.pd.disableEditMode();
}
}
return dati;
}
public ConsoleConfiguration getConsoleDynamicConfiguration(Object idOggettoProprietario, String idProprietario,
String nomeProprietario, String nomeParentProprietario, ProprietariProtocolProperty tipoProprietario,
String tipoAccordo, ConsoleOperationType consoleOperationType,
IRegistryReader registryReader,IConfigIntegrationReader configRegistryReader,IConsoleDynamicConfiguration consoleDynamicConfiguration) throws ProtocolException{
try{
if(tipoProprietario != null && idProprietario != null && idOggettoProprietario != null){
switch (tipoProprietario) {
case ACCORDO_COOPERAZIONE:
IDAccordo idAccordoCooperazione = (IDAccordo) idOggettoProprietario;
return consoleDynamicConfiguration.getDynamicConfigAccordoCooperazione(consoleOperationType, this,
registryReader, configRegistryReader, idAccordoCooperazione);
case ACCORDO_SERVIZIO_PARTE_COMUNE:
IDAccordo idApc = (IDAccordo) idOggettoProprietario;
if(tipoAccordo.equals(ProtocolPropertiesCostanti.PARAMETRO_VALORE_PP_TIPO_ACCORDO_PARTE_COMUNE)){
return consoleDynamicConfiguration.getDynamicConfigAccordoServizioParteComune(consoleOperationType, this,
registryReader, configRegistryReader, idApc);
} else {
return consoleDynamicConfiguration.getDynamicConfigAccordoServizioComposto(consoleOperationType, this,
registryReader, configRegistryReader, idApc);
}
case ACCORDO_SERVIZIO_PARTE_SPECIFICA:
IDServizio idAps =(IDServizio) idOggettoProprietario;
return consoleDynamicConfiguration.getDynamicConfigAccordoServizioParteSpecifica(consoleOperationType, this,
registryReader, configRegistryReader, idAps);
case AZIONE_ACCORDO:
IDAccordoAzione idAccordoAzione = (IDAccordoAzione) idOggettoProprietario;
return consoleDynamicConfiguration.getDynamicConfigAzione(consoleOperationType, this,
registryReader, configRegistryReader, idAccordoAzione);
case FRUITORE:
IDFruizione idFruizione = (IDFruizione) idOggettoProprietario;
return consoleDynamicConfiguration.getDynamicConfigFruizioneAccordoServizioParteSpecifica(consoleOperationType, this,
registryReader, configRegistryReader, idFruizione);
case OPERATION:
IDPortTypeAzione idAzionePt = (IDPortTypeAzione) idOggettoProprietario;
return consoleDynamicConfiguration.getDynamicConfigOperation(consoleOperationType, this,
registryReader, configRegistryReader, idAzionePt);
case PORT_TYPE:
IDPortType idPt = (IDPortType) idOggettoProprietario;
return consoleDynamicConfiguration.getDynamicConfigPortType(consoleOperationType, this,
registryReader, configRegistryReader, idPt);
case RESOURCE:
IDResource idAccordoRisorsa = (IDResource) idOggettoProprietario;
String httpMethod = null;
String path = null;
try {
Resource r = registryReader.getResourceAccordo(idAccordoRisorsa);
httpMethod = r.getMethod()!=null ? r.getMethod().getValue() : null;
path = r.getPath();
}catch(Exception e) {}
return consoleDynamicConfiguration.getDynamicConfigResource(consoleOperationType, this,
registryReader, configRegistryReader, idAccordoRisorsa, httpMethod, path);
case SOGGETTO:
IDSoggetto idSoggetto = (IDSoggetto) idOggettoProprietario;
return consoleDynamicConfiguration.getDynamicConfigSoggetto(consoleOperationType, this,
registryReader, configRegistryReader, idSoggetto);
case SERVIZIO_APPLICATIVO:
IDServizioApplicativo idServizioApplicativo = (IDServizioApplicativo) idOggettoProprietario;
return consoleDynamicConfiguration.getDynamicConfigServizioApplicativo(consoleOperationType, this,
registryReader, configRegistryReader, idServizioApplicativo);
}
}
} catch (ProtocolException e) {
throw e;
}
return null;
}
public boolean isProtocolPropertiesRegistry(ProprietariProtocolProperty tipoProprietario){
try{
if(tipoProprietario != null){
switch (tipoProprietario) {
case ACCORDO_COOPERAZIONE:
case ACCORDO_SERVIZIO_PARTE_COMUNE:
case ACCORDO_SERVIZIO_PARTE_SPECIFICA:
case AZIONE_ACCORDO:
case FRUITORE:
case OPERATION:
case PORT_TYPE:
case RESOURCE:
case SOGGETTO:
return true;
case SERVIZIO_APPLICATIVO:
return false;
}
}
} catch (Exception e) {
throw e;
}
return false;
}
public List<ProtocolProperty> getProtocolPropertiesRegistry(Object proprietario, String id, String nome, String idProprietario, String nomeProprietario,
String nomeParentProprietario, ProprietariProtocolProperty tipoProprietario, String tipoAccordo) throws Exception {
try{
if(proprietario != null){
List<ProtocolProperty> protocolPropertyList = null;
switch (tipoProprietario) {
case ACCORDO_COOPERAZIONE:
AccordoCooperazione ac = (AccordoCooperazione) proprietario;
protocolPropertyList = ac.getProtocolPropertyList();
break;
case ACCORDO_SERVIZIO_PARTE_COMUNE:
AccordoServizioParteComune as = (AccordoServizioParteComune) proprietario;
protocolPropertyList = as.getProtocolPropertyList();
break;
case ACCORDO_SERVIZIO_PARTE_SPECIFICA:
AccordoServizioParteSpecifica aps = (AccordoServizioParteSpecifica) proprietario;
protocolPropertyList = aps.getProtocolPropertyList();
break;
case AZIONE_ACCORDO:
Azione azione = (Azione) proprietario;
protocolPropertyList = azione.getProtocolPropertyList();
break;
case FRUITORE:
Fruitore fruitore = (Fruitore) proprietario;
protocolPropertyList = fruitore.getProtocolPropertyList();
break;
case OPERATION:
org.openspcoop2.core.registry.Operation azionePt = (Operation) proprietario;
protocolPropertyList = azionePt.getProtocolPropertyList();
break;
case PORT_TYPE:
PortType pt = (PortType) proprietario;
protocolPropertyList = pt.getProtocolPropertyList();
break;
case RESOURCE:
Resource risorsa = (Resource) proprietario;
protocolPropertyList = risorsa.getProtocolPropertyList();
break;
case SOGGETTO:
Soggetto soggettoRegistro = (Soggetto) proprietario;
protocolPropertyList = soggettoRegistro.getProtocolPropertyList();
break;
case SERVIZIO_APPLICATIVO:
throw new Exception("Con il TipoProprietario indicato ("+tipoProprietario+") deve essere invocato il metodo 'getProtocolPropertiesConfig'");
}
return protocolPropertyList;
}
} catch (Exception e) {
throw e;
}
return null;
}
public List<org.openspcoop2.core.config.ProtocolProperty> getProtocolPropertiesConfig(Object proprietario, String id, String nome, String idProprietario, String nomeProprietario,
String nomeParentProprietario, ProprietariProtocolProperty tipoProprietario, String tipoAccordo) throws Exception {
try{
if(proprietario != null){
List<org.openspcoop2.core.config.ProtocolProperty> protocolPropertyList = null;
switch (tipoProprietario) {
case ACCORDO_COOPERAZIONE:
case ACCORDO_SERVIZIO_PARTE_COMUNE:
case ACCORDO_SERVIZIO_PARTE_SPECIFICA:
case AZIONE_ACCORDO:
case FRUITORE:
case OPERATION:
case PORT_TYPE:
case RESOURCE:
case SOGGETTO:
throw new Exception("Con il TipoProprietario indicato ("+tipoProprietario+") deve essere invocato il metodo 'getProtocolPropertiesRegistry'");
case SERVIZIO_APPLICATIVO:
ServizioApplicativo servizioApplicativo = (ServizioApplicativo) proprietario;
protocolPropertyList = servizioApplicativo.getProtocolPropertyList();
break;
}
return protocolPropertyList;
}
} catch (Exception e) {
throw e;
}
return null;
}
public void salvaPropertiesRegistry(String userLogin, boolean smista, Object proprietario, List<ProtocolProperty> protocolPropertiesAggiornate,
String id, String nome, String idProprietario, String nomeProprietario, String nomeParentProprietario,
ProprietariProtocolProperty tipoProprietario, String tipoAccordo) throws Exception {
try{
if(proprietario != null){
int idProp = Integer.parseInt(idProprietario);
boolean save = false;
switch (tipoProprietario) {
case ACCORDO_COOPERAZIONE:
AccordoCooperazione ac = (AccordoCooperazione) proprietario;
ac.setProtocolPropertyList(protocolPropertiesAggiornate);
// salvataggio
this.core.performUpdateOperation(userLogin, smista, proprietario);
break;
case ACCORDO_SERVIZIO_PARTE_COMUNE:
AccordoServizioParteComune as = (AccordoServizioParteComune) proprietario;
as.setProtocolPropertyList(protocolPropertiesAggiornate);
// salvataggio
this.core.performUpdateOperation(userLogin, smista, proprietario);
break;
case ACCORDO_SERVIZIO_PARTE_SPECIFICA:
AccordoServizioParteSpecifica aps = (AccordoServizioParteSpecifica) proprietario;
aps.setProtocolPropertyList(protocolPropertiesAggiornate);
// salvataggio
this.core.performUpdateOperation(userLogin, smista, proprietario);
break;
case AZIONE_ACCORDO:
Azione newAzione = (Azione) proprietario;
AccordoServizioParteComune apca = this.apcCore.getAccordoServizioFull(idProp);
for(Azione azione: apca.getAzioneList()){
if(azione.getNome().equals(newAzione.getNome())){
azione.setProtocolPropertyList(protocolPropertiesAggiornate);
save = true;
break;
}
}
// salvataggio
if(save)
this.core.performUpdateOperation(userLogin, smista, apca);
break;
case FRUITORE:
Fruitore fruitore = (Fruitore) proprietario;
AccordoServizioParteSpecifica apsFrui = this.apsCore.getAccordoServizioParteSpecifica(fruitore.getIdServizio());
for (Fruitore fr : apsFrui.getFruitoreList()) {
if(fr.getTipo().equals(fruitore.getTipo()) && fr.getNome().equals(fruitore.getNome())){
fr.setProtocolPropertyList(protocolPropertiesAggiornate);
save = true;
break;
}
}
// salvataggio
if(save)
this.core.performUpdateOperation(userLogin, smista, apsFrui);
break;
case OPERATION:
org.openspcoop2.core.registry.Operation newAzionePt = (Operation) proprietario;
AccordoServizioParteComune apcop = this.apcCore.getAccordoServizioFull(idProp);
for (PortType pt : apcop.getPortTypeList()) {
if(pt.getNome().equals(nomeParentProprietario)){
for (org.openspcoop2.core.registry.Operation azione : pt.getAzioneList()) {
if(azione.getNome().equals(newAzionePt.getNome())){
azione.setProtocolPropertyList(protocolPropertiesAggiornate);
save = true;
break;
}
}
}
}
// salvataggio
if(save)
this.core.performUpdateOperation(userLogin, smista, apcop);
break;
case PORT_TYPE:
AccordoServizioParteComune apc = this.apcCore.getAccordoServizioFull(idProp);
PortType newPt = (PortType) proprietario;
for (PortType pt : apc.getPortTypeList()) {
if(pt.getNome().equals(newPt.getNome())){
pt.setProtocolPropertyList(protocolPropertiesAggiornate);
save = true;
break;
}
}
// salvataggio
if(save)
this.core.performUpdateOperation(userLogin, smista, apc);
break;
case RESOURCE:
Resource newResource = (Resource) proprietario;
AccordoServizioParteComune apcr = this.apcCore.getAccordoServizioFull(idProp);
for(Resource resource: apcr.getResourceList()){
if(resource.getNome().equals(newResource.getNome())){
resource.setProtocolPropertyList(protocolPropertiesAggiornate);
save = true;
break;
}
}
// salvataggio
if(save)
this.core.performUpdateOperation(userLogin, smista, apcr);
break;
case SOGGETTO:
Soggetto soggettoRegistro = (Soggetto) proprietario;
soggettoRegistro.setProtocolPropertyList(protocolPropertiesAggiornate);
// salvataggio
this.core.performUpdateOperation(userLogin, smista, proprietario);
break;
case SERVIZIO_APPLICATIVO:
throw new Exception("Con il TipoProprietario indicato ("+tipoProprietario+") deve essere invocato il metodo 'salvaPropertiesRegistry'");
}
}
} catch (Exception e) {
throw e;
}
}
public void salvaPropertiesConfig(String userLogin, boolean smista, Object proprietario, List<org.openspcoop2.core.config.ProtocolProperty> protocolPropertiesAggiornate,
String id, String nome, String idProprietario, String nomeProprietario, String nomeParentProprietario,
ProprietariProtocolProperty tipoProprietario, String tipoAccordo) throws Exception {
try{
if(proprietario != null){
@SuppressWarnings("unused")
int idProp = Integer.parseInt(idProprietario);
switch (tipoProprietario) {
case ACCORDO_COOPERAZIONE:
case ACCORDO_SERVIZIO_PARTE_COMUNE:
case ACCORDO_SERVIZIO_PARTE_SPECIFICA:
case AZIONE_ACCORDO:
case FRUITORE:
case OPERATION:
case PORT_TYPE:
case RESOURCE:
case SOGGETTO:
throw new Exception("Con il TipoProprietario indicato ("+tipoProprietario+") deve essere invocato il metodo 'salvaPropertiesRegistry'");
case SERVIZIO_APPLICATIVO:
ServizioApplicativo servizioApplicativo = (ServizioApplicativo) proprietario;
servizioApplicativo.setProtocolPropertyList(protocolPropertiesAggiornate);
// salvataggio
this.core.performUpdateOperation(userLogin, smista, proprietario);
break;
}
}
} catch (Exception e) {
throw e;
}
}
public void validateDynamicConfig(IConsoleDynamicConfiguration consoleDynamicConfiguration, Object idOggettoProprietario, String tipoAccordo, ProprietariProtocolProperty tipoProprietario,
ConsoleConfiguration consoleConfiguration, ConsoleOperationType consoleOperationType,ProtocolProperties protocolProperties,
IRegistryReader registryReader, IConfigIntegrationReader configRegistryReader) throws ProtocolException {
try{
if(idOggettoProprietario != null){
switch (tipoProprietario) {
case ACCORDO_COOPERAZIONE:
IDAccordo idAccordoCooperazione = (IDAccordo) idOggettoProprietario;
consoleDynamicConfiguration.validateDynamicConfigCooperazione(consoleConfiguration, consoleOperationType, this, protocolProperties,
registryReader, configRegistryReader, idAccordoCooperazione);
break;
case ACCORDO_SERVIZIO_PARTE_COMUNE:
IDAccordo idApc = (IDAccordo) idOggettoProprietario;
if(tipoAccordo.equals(ProtocolPropertiesCostanti.PARAMETRO_VALORE_PP_TIPO_ACCORDO_PARTE_COMUNE))
consoleDynamicConfiguration.validateDynamicConfigAccordoServizioParteComune(consoleConfiguration, consoleOperationType, this, protocolProperties,
registryReader, configRegistryReader, idApc);
else
consoleDynamicConfiguration.validateDynamicConfigAccordoServizioComposto(consoleConfiguration, consoleOperationType, this, protocolProperties,
registryReader, configRegistryReader, idApc);
break;
case ACCORDO_SERVIZIO_PARTE_SPECIFICA:
IDServizio idAps =(IDServizio) idOggettoProprietario;
consoleDynamicConfiguration.validateDynamicConfigAccordoServizioParteSpecifica(consoleConfiguration, consoleOperationType, this, protocolProperties,
registryReader, configRegistryReader, idAps);
break;
case AZIONE_ACCORDO:
IDAccordoAzione idAccordoAzione = (IDAccordoAzione) idOggettoProprietario;
consoleDynamicConfiguration.validateDynamicConfigAzione(consoleConfiguration, consoleOperationType, this, protocolProperties,
registryReader, configRegistryReader, idAccordoAzione);
break;
case FRUITORE:
IDFruizione idFruizione = (IDFruizione) idOggettoProprietario;
consoleDynamicConfiguration.validateDynamicConfigFruizioneAccordoServizioParteSpecifica(consoleConfiguration, consoleOperationType, this, protocolProperties,
registryReader, configRegistryReader, idFruizione);
break;
case OPERATION:
IDPortTypeAzione idAzionePt = (IDPortTypeAzione) idOggettoProprietario;
consoleDynamicConfiguration.validateDynamicConfigOperation(consoleConfiguration, consoleOperationType, this, protocolProperties,
registryReader, configRegistryReader, idAzionePt);
break;
case PORT_TYPE:
IDPortType idPt = (IDPortType) idOggettoProprietario;
consoleDynamicConfiguration.validateDynamicConfigPortType(consoleConfiguration, consoleOperationType, this, protocolProperties,
registryReader, configRegistryReader, idPt);
break;
case RESOURCE:
IDResource idAccordoRisorsa = (IDResource) idOggettoProprietario;
String httpMethod = null;
String path = null;
try {
Resource r = registryReader.getResourceAccordo(idAccordoRisorsa);
httpMethod = r.getMethod()!=null ? r.getMethod().getValue() : null;
path = r.getPath();
}catch(Exception e) {}
consoleDynamicConfiguration.validateDynamicConfigResource(consoleConfiguration, consoleOperationType, this, protocolProperties,
registryReader, configRegistryReader, idAccordoRisorsa, httpMethod, path);
break;
case SOGGETTO:
IDSoggetto idSoggetto = (IDSoggetto) idOggettoProprietario;
consoleDynamicConfiguration.validateDynamicConfigSoggetto(consoleConfiguration, consoleOperationType, this, protocolProperties,
registryReader, configRegistryReader, idSoggetto);
break;
case SERVIZIO_APPLICATIVO:
IDServizioApplicativo idServizioApplicativo = (IDServizioApplicativo) idOggettoProprietario;
consoleDynamicConfiguration.validateDynamicConfigServizioApplicativo(consoleConfiguration, consoleOperationType, this, protocolProperties,
registryReader, configRegistryReader, idServizioApplicativo);
break;
}
}
}catch(ProtocolException e){
throw e;
}
}
public List<Parameter> getTitolo(Object proprietario,ProprietariProtocolProperty tipoProprietario,
String id, String nome, String idProprietario, String nomeProprietario, String nomeParentProprietario, String urlChange,String tipoAccordo) throws Exception{
return getTitolo(proprietario, tipoProprietario, id, nome, idProprietario, nomeProprietario, nomeParentProprietario, urlChange, tipoAccordo,false);
}
public List<Parameter> getTitolo(Object proprietario,ProprietariProtocolProperty tipoProprietario,
String id, String nome, String idProprietario, String nomeProprietario, String nomeParentProprietario, String urlChange,String tipoAccordo, boolean updateUrlChange) throws Exception{
AccordiServizioParteComuneHelper apcHelper = null;
AccordiServizioParteSpecificaHelper apsHelper = null;
Boolean isModalitaVistaApiCustom = ServletUtils.getBooleanAttributeFromSession(ApiCostanti.SESSION_ATTRIBUTE_VISTA_APC_API, this.session, this.request, false).getValue();
List<Parameter> lstParam = new ArrayList<>();
String labelProprietario = nomeProprietario;
String tipoProtocollo = null;
IDAccordo idAccordoParteComune = null;
try{
String urlDecode = URLDecoder.decode(urlChange,"UTF-8");
String tipologia = ServletUtils.getObjectFromSession(this.request, this.session, String.class, AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_TIPO_EROGAZIONE);
boolean gestioneFruitori = false;
if(tipologia!=null) {
if(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_TIPO_EROGAZIONE_VALUE_FRUIZIONE.equals(tipologia)) {
gestioneFruitori = true;
}
}
Parameter pTipoAccordo = new Parameter(AccordiServizioParteComuneUtilities.getParametroAccordoServizio(tipoAccordo).getName(), AccordiServizioParteComuneUtilities.getParametroAccordoServizio(tipoAccordo).getValue());
Parameter pIdApc = null;
Parameter pNomeApc = null;
if(proprietario != null){
int idProp = Integer.parseInt(idProprietario);
switch (tipoProprietario) {
case ACCORDO_COOPERAZIONE:
AccordoCooperazione ac = (AccordoCooperazione) proprietario;
lstParam.add(new Parameter(AccordiCooperazioneCostanti.LABEL_ACCORDI_COOPERAZIONE, AccordiCooperazioneCostanti.SERVLET_NAME_ACCORDI_COOPERAZIONE_LIST));
labelProprietario = this.getLabelIdAccordoCooperazione(ac);
// Escape della url del link, risolve il problema di autorizzazione
lstParam.add(new Parameter(labelProprietario,urlDecode));
break;
case ACCORDO_SERVIZIO_PARTE_COMUNE:
apcHelper = new AccordiServizioParteComuneHelper(this.request, this.pd, this.session);
AccordoServizioParteComune as = (AccordoServizioParteComune) proprietario;
idAccordoParteComune = this.idAccordoFactory.getIDAccordoFromValues(as.getNome(),BeanUtilities.getSoggettoReferenteID(as.getSoggettoReferente()),as.getVersione());
tipoProtocollo = this.soggettiCore.getProtocolloAssociatoTipoSoggetto(as.getSoggettoReferente().getTipo());
labelProprietario = this.getLabelIdAccordo(tipoProtocollo , idAccordoParteComune);
List<Parameter> parametriDaUrlAs = Parameter.estraiParametriDaUrl(urlDecode);
String parParz = null;
for (Parameter parameter : parametriDaUrlAs) {
if(parameter.getName().equals(ApiCostanti.PARAMETRO_APC_API_GESTIONE_PARZIALE)) {
parParz = parameter.getValue();
break;
}
}
lstParam = apcHelper.getTitoloApc(TipoOperazione.OTHER, as, tipoAccordo, labelProprietario, AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_CHANGE, parParz, true);
lstParam.get(lstParam.size() -1).setValue(urlDecode);
// lstParam.add(new Parameter(labelProprietario,urlDecode));
break;
case ACCORDO_SERVIZIO_PARTE_SPECIFICA:
apsHelper = new AccordiServizioParteSpecificaHelper(this.request, this.pd, this.session);
AccordoServizioParteSpecifica aps = (AccordoServizioParteSpecifica) proprietario;
List<Parameter> parametriDaUrlAps = Parameter.estraiParametriDaUrl(urlDecode);
String tipoSoggettoFruitore = null;
String nomeSoggettoFruitore = null;
for (Parameter parameter : parametriDaUrlAps) {
if(parameter.getName().equals(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_TIPO_SOGGETTO_FRUITORE)) {
tipoSoggettoFruitore = parameter.getValue();
break;
}
}
for (Parameter parameter : parametriDaUrlAps) {
if(parameter.getName().equals(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_NOME_SOGGETTO_FRUITORE)) {
nomeSoggettoFruitore = parameter.getValue();
break;
}
}
tipoProtocollo = this.soggettiCore.getProtocolloAssociatoTipoSoggetto(aps.getTipoSoggettoErogatore());
if(gestioneFruitori) {
IDSoggetto idSoggettoFruitore = null;
if(tipoSoggettoFruitore!=null && !"".equals(tipoSoggettoFruitore) &&
nomeSoggettoFruitore!=null && !"".equals(nomeSoggettoFruitore)) {
idSoggettoFruitore = new IDSoggetto(tipoSoggettoFruitore, nomeSoggettoFruitore);
}
labelProprietario = apsHelper.getLabelServizioFruizione(tipoProtocollo, idSoggettoFruitore, aps);
}
else {
labelProprietario = apsHelper.getLabelServizioErogazione(tipoProtocollo, aps);
}
lstParam = apsHelper.getTitoloAps(TipoOperazione.OTHER, aps, gestioneFruitori, labelProprietario, AccordiServizioParteSpecificaCostanti.SERVLET_NAME_APS_CHANGE, true, tipoSoggettoFruitore, nomeSoggettoFruitore);
lstParam.get(lstParam.size() -1).setName(AccordiServizioParteComuneCostanti.LABEL_PARAMETRO_APC_PROTOCOLLO);
lstParam.get(lstParam.size() -1).setValue(urlDecode);
// Escape della url del link, risolve il problema di autorizzazione
// lstParam.add(new Parameter(labelProprietario,urlDecode));
break;
case AZIONE_ACCORDO:
Azione newAzione = (Azione) proprietario;
AccordoServizioParteComune apca = this.apcCore.getAccordoServizioFull(idProp);
for(Azione azione: apca.getAzioneList()){
if(azione.getNome().equals(newAzione.getNome())){
labelProprietario = azione.getNome();
break;
}
}
tipoProtocollo = this.soggettiCore.getProtocolloAssociatoTipoSoggetto(apca.getSoggettoReferente().getTipo());
idAccordoParteComune = this.idAccordoFactory.getIDAccordoFromValues(apca.getNome(),BeanUtilities.getSoggettoReferenteID(apca.getSoggettoReferente()),apca.getVersione());
pIdApc = new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_ID, apca.getId()+"");
pNomeApc = new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_NOME, apca.getNome());
lstParam.add(new Parameter(AccordiServizioParteComuneUtilities.getTerminologiaAccordoServizio(tipoAccordo), AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_LIST, pTipoAccordo));
lstParam.add(new Parameter(AccordiServizioParteComuneCostanti.LABEL_AZIONI + " di " + this.getLabelIdAccordo(tipoProtocollo , idAccordoParteComune),
AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_AZIONI_LIST, pIdApc,pNomeApc, pTipoAccordo));
// Escape della url del link, risolve il problema di autorizzazione
lstParam.add(new Parameter(labelProprietario,urlDecode));
break;
case FRUITORE:
Fruitore fruitore = (Fruitore) proprietario;
AccordoServizioParteSpecifica apsFrui = this.apsCore.getAccordoServizioParteSpecifica(fruitore.getIdServizio());
for (Fruitore fr : apsFrui.getFruitoreList()) {
if(fr.getTipo().equals(fruitore.getTipo()) && fr.getNome().equals(fruitore.getNome())){
tipoProtocollo = this.soggettiCore.getProtocolloAssociatoTipoSoggetto(fr.getTipo());
labelProprietario = this.getLabelNomeSoggetto(tipoProtocollo, fr.getTipo() , fr.getNome());
break;
}
}
// prelevo il flag che mi dice da quale pagina ho acceduto la sezione delle porte delegate
Integer parentPD = ServletUtils.getIntegerAttributeFromSession(PorteDelegateCostanti.ATTRIBUTO_PORTE_DELEGATE_PARENT, this.session, this.request);
if(parentPD == null)
parentPD = PorteDelegateCostanti.ATTRIBUTO_PORTE_DELEGATE_PARENT_NONE;
PorteDelegateHelper porteDelegateHelper = new PorteDelegateHelper(this.request, this.pd, this.session);
lstParam = porteDelegateHelper.getTitoloPD(PorteDelegateCostanti.ATTRIBUTO_PORTE_DELEGATE_PARENT_CONFIGURAZIONE, fruitore.getIdSoggetto() +"",apsFrui.getId() +"", fruitore.getId() +"");
labelProprietario = AccordiServizioParteComuneCostanti.LABEL_PARAMETRO_APC_PROTOCOLLO;
lstParam.set(lstParam.size()-1, new Parameter(labelProprietario, urlDecode));
break;
case OPERATION:
apcHelper = new AccordiServizioParteComuneHelper(this.request, this.pd, this.session);
org.openspcoop2.core.registry.Operation newAzionePt = (Operation) proprietario;
AccordoServizioParteComune apcop = this.apcCore.getAccordoServizioFull(idProp);
for (PortType pt : apcop.getPortTypeList()) {
if(pt.getNome().equals(nomeParentProprietario)){
for (org.openspcoop2.core.registry.Operation azione : pt.getAzioneList()) {
if(azione.getNome().equals(newAzionePt.getNome())){
labelProprietario = azione.getNome();
break;
}
}
}
}
tipoProtocollo = this.soggettiCore.getProtocolloAssociatoTipoSoggetto(apcop.getSoggettoReferente().getTipo());
idAccordoParteComune = this.idAccordoFactory.getIDAccordoFromValues(apcop.getNome(),BeanUtilities.getSoggettoReferenteID(apcop.getSoggettoReferente()),apcop.getVersione());
pIdApc = new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_ID, apcop.getId()+"");
pNomeApc = new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_NOME, apcop.getNome());
Parameter pNomePt = new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_PORT_TYPES_NOME, nomeParentProprietario);
lstParam = apcHelper.getTitoloApc(TipoOperazione.OTHER, apcop, tipoAccordo, this.getLabelIdAccordo(tipoProtocollo , idAccordoParteComune), null, false);
String labelPortTypesOp = isModalitaVistaApiCustom ? AccordiServizioParteComuneCostanti.LABEL_PORT_TYPES : AccordiServizioParteComuneCostanti.LABEL_PORT_TYPES + " di " + this.getLabelIdAccordo(tipoProtocollo , idAccordoParteComune);
lstParam.add(new Parameter(labelPortTypesOp, AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_PORT_TYPES_LIST, pIdApc,pNomeApc, pTipoAccordo));
lstParam.add(new Parameter(AccordiServizioParteComuneCostanti.LABEL_AZIONI + " di " + nomeParentProprietario, AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_PORT_TYPE_OPERATIONS_LIST,pIdApc,pNomePt,pTipoAccordo));
// Escape della url del link, risolve il problema di autorizzazione
lstParam.add(new Parameter(labelProprietario,urlDecode));
break;
case PORT_TYPE:
apcHelper = new AccordiServizioParteComuneHelper(this.request, this.pd, this.session);
AccordoServizioParteComune apc = this.apcCore.getAccordoServizioFull(idProp);
PortType newPt = (PortType) proprietario;
for (PortType pt : apc.getPortTypeList()) {
if(pt.getNome().equals(newPt.getNome())){
labelProprietario = pt.getNome();
break;
}
}
pIdApc = new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_ID, apc.getId()+"");
pNomeApc = new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_NOME, apc.getNome());
idAccordoParteComune = this.idAccordoFactory.getIDAccordoFromValues(apc.getNome(),BeanUtilities.getSoggettoReferenteID(apc.getSoggettoReferente()),apc.getVersione());
tipoProtocollo = this.soggettiCore.getProtocolloAssociatoTipoSoggetto(apc.getSoggettoReferente().getTipo());
lstParam = apcHelper.getTitoloApc(TipoOperazione.OTHER, apc, tipoAccordo, this.getLabelIdAccordo(tipoProtocollo , idAccordoParteComune), null, false);
String labelPortTypes = isModalitaVistaApiCustom ? AccordiServizioParteComuneCostanti.LABEL_PORT_TYPES : AccordiServizioParteComuneCostanti.LABEL_PORT_TYPES + " di " + this.getLabelIdAccordo(tipoProtocollo , idAccordoParteComune);
lstParam.add(new Parameter(labelPortTypes, AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_PORT_TYPES_LIST, pIdApc, pNomeApc, pNomeApc));
// Escape della url del link, risolve il problema di autorizzazione
lstParam.add(new Parameter(labelProprietario,urlDecode));
break;
case RESOURCE:
apcHelper = new AccordiServizioParteComuneHelper(this.request, this.pd, this.session);
Resource newResource = (Resource) proprietario;
AccordoServizioParteComune apcr = this.apcCore.getAccordoServizioFull(idProp);
Long idRs = newResource.getId();
for(Resource resource: apcr.getResourceList()){
if(resource.getNome().equals(newResource.getNome())){
// labelProprietario = APIUtils.normalizeResourceName(HttpMethod.toEnumConstant(resource.get_value_method()), resource.getPath());
labelProprietario = resource.getNome();
idRs = resource.getId();
break;
}
}
Parameter pLabelProprietario = new Parameter(labelProprietario,urlDecode);
if(updateUrlChange) {
List<Parameter> parametriDaUrl = Parameter.estraiParametriDaUrl(urlDecode);
String pathDaUrl = Parameter.estraiPathDaUrl(urlDecode);
for (Parameter parameter : parametriDaUrl) {
if(parameter.getName().equals(AccordiServizioParteComuneCostanti.PARAMETRO_APC_RESOURCES_ID)) {
parameter.setValue(idRs+"");
break;
}
}
pLabelProprietario = new Parameter(labelProprietario,pathDaUrl,parametriDaUrl);
}
tipoProtocollo = this.soggettiCore.getProtocolloAssociatoTipoSoggetto(apcr.getSoggettoReferente().getTipo());
idAccordoParteComune = this.idAccordoFactory.getIDAccordoFromValues(apcr.getNome(),BeanUtilities.getSoggettoReferenteID(apcr.getSoggettoReferente()),apcr.getVersione());
pIdApc = new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_ID, apcr.getId()+"");
pNomeApc = new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_NOME, apcr.getNome());
lstParam = apcHelper.getTitoloApc(TipoOperazione.OTHER, apcr, tipoAccordo, this.getLabelIdAccordo(tipoProtocollo , idAccordoParteComune), null, false);
String labelRisorse = isModalitaVistaApiCustom ? AccordiServizioParteComuneCostanti.LABEL_RISORSE : AccordiServizioParteComuneCostanti.LABEL_RISORSE + " di " + this.getLabelIdAccordo(tipoProtocollo , idAccordoParteComune);
lstParam.add(new Parameter(labelRisorse, AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_RESOURCES_LIST, pIdApc,pNomeApc, pTipoAccordo));
// Escape della url del link, risolve il problema di autorizzazione
lstParam.add(pLabelProprietario);
break;
case SOGGETTO:
Soggetto soggettoRegistro = (Soggetto) proprietario;
lstParam.add(new Parameter(SoggettiCostanti.LABEL_SOGGETTI, SoggettiCostanti.SERVLET_NAME_SOGGETTI_LIST));
tipoProtocollo = this.soggettiCore.getProtocolloAssociatoTipoSoggetto(soggettoRegistro.getTipo());
labelProprietario = this.getLabelNomeSoggetto(tipoProtocollo, soggettoRegistro.getTipo() , soggettoRegistro.getNome());
// Escape della url del link, risolve il problema di autorizzazione
lstParam.add(new Parameter(labelProprietario,urlDecode));
break;
case SERVIZIO_APPLICATIVO:
ServizioApplicativo servizioApplicativo = (ServizioApplicativo) proprietario;
Integer parentSA = ServletUtils.getIntegerAttributeFromSession(ServiziApplicativiCostanti.ATTRIBUTO_SERVIZI_APPLICATIVI_PARENT, this.session, this.request);
if(parentSA == null) parentSA = ServiziApplicativiCostanti.ATTRIBUTO_SERVIZI_APPLICATIVI_PARENT_NONE;
Boolean useIdSogg = parentSA == ServiziApplicativiCostanti.ATTRIBUTO_SERVIZI_APPLICATIVI_PARENT_SOGGETTO;
String labelApplicativi = ServiziApplicativiCostanti.LABEL_SERVIZI_APPLICATIVI;
String labelApplicativiDi = ServiziApplicativiCostanti.LABEL_PARAMETRO_SERVIZI_APPLICATIVI_DI;
if(this.isModalitaCompleta()==false) {
labelApplicativi = ServiziApplicativiCostanti.LABEL_APPLICATIVI;
labelApplicativiDi = ServiziApplicativiCostanti.LABEL_PARAMETRO_APPLICATIVI_DI;
}
if(useIdSogg){
tipoProtocollo = this.soggettiCore.getProtocolloAssociatoTipoSoggetto(servizioApplicativo.getTipoSoggettoProprietario());
String tipoENomeSoggetto = this.getLabelNomeSoggetto(tipoProtocollo, servizioApplicativo.getTipoSoggettoProprietario(), servizioApplicativo.getNomeSoggettoProprietario());
lstParam.add(new Parameter(ServiziApplicativiCostanti.LABEL_PARAMETRO_SERVIZI_APPLICATIVI_SOGGETTI, SoggettiCostanti.SERVLET_NAME_SOGGETTI_LIST));
lstParam.add(new Parameter(labelApplicativiDi + tipoENomeSoggetto,
ServiziApplicativiCostanti.SERVLET_NAME_SERVIZI_APPLICATIVI_LIST,
new Parameter(ServiziApplicativiCostanti.PARAMETRO_SERVIZI_APPLICATIVI_PROVIDER,servizioApplicativo.getIdSoggetto()+"")));
// Escape della url del link, risolve il problema di autorizzazione
lstParam.add(new Parameter(nome, urlDecode));
}else {
lstParam.add(new Parameter(labelApplicativi, ServiziApplicativiCostanti.SERVLET_NAME_SERVIZI_APPLICATIVI_LIST));
// Escape della url del link, risolve il problema di autorizzazione
lstParam.add(new Parameter(servizioApplicativo.getNome(), urlDecode));
}
break;
}
}
} catch (Exception e) {
throw e;
}
return lstParam;
}
}