AccordiServizioParteComuneUtilities.java
- /*
- * GovWay - A customizable API Gateway
- * https://govway.org
- *
- * Copyright (c) 2005-2025 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.apc;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- import org.openspcoop2.core.commons.ErrorsHandlerCostant;
- import org.openspcoop2.core.id.IDAccordo;
- import org.openspcoop2.core.id.IDPortType;
- import org.openspcoop2.core.id.IDPortTypeAzione;
- import org.openspcoop2.core.id.IDResource;
- import org.openspcoop2.core.registry.AccordoServizioParteComune;
- import org.openspcoop2.core.registry.AccordoServizioParteComuneServizioComposto;
- import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
- import org.openspcoop2.core.registry.Documento;
- 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.beans.AccordoServizioParteComuneSintetico;
- import org.openspcoop2.core.registry.constants.FormatoSpecifica;
- import org.openspcoop2.core.registry.constants.RuoliDocumento;
- import org.openspcoop2.core.registry.constants.StatiAccordo;
- import org.openspcoop2.core.registry.driver.DriverRegistroServiziException;
- import org.openspcoop2.core.registry.driver.DriverRegistroServiziNotFound;
- import org.openspcoop2.core.registry.driver.FiltroRicercaOperations;
- import org.openspcoop2.core.registry.driver.FiltroRicercaProtocolPropertyRegistry;
- import org.openspcoop2.core.registry.driver.FiltroRicercaResources;
- import org.openspcoop2.core.registry.driver.IDAccordoFactory;
- import org.openspcoop2.core.registry.driver.ValidazioneStatoPackageException;
- import org.openspcoop2.core.registry.driver.db.IDAccordoDB;
- import org.openspcoop2.protocol.engine.constants.Costanti;
- import org.openspcoop2.protocol.engine.utils.DBOggettiInUsoUtils;
- import org.openspcoop2.protocol.engine.utils.NamingUtils;
- import org.openspcoop2.protocol.manifest.constants.InterfaceType;
- import org.openspcoop2.web.ctrlstat.core.ConsoleSearch;
- import org.openspcoop2.web.ctrlstat.servlet.aps.AccordiServizioParteSpecificaCore;
- import org.openspcoop2.web.ctrlstat.servlet.archivi.ArchiviCore;
- import org.openspcoop2.web.lib.mvc.Parameter;
- /**
- * AccordiServizioParteComuneUtilities
- *
- * @author Poli Andrea (apoli@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class AccordiServizioParteComuneUtilities {
- public static void findOggettiDaAggiornare(IDAccordo idAccordoOLD, AccordoServizioParteComune as, AccordiServizioParteComuneCore apcCore, List<Object> listOggettiDaAggiornare) throws Exception {
-
- AccordiServizioParteSpecificaCore apsCore = new AccordiServizioParteSpecificaCore(apcCore);
-
- IDAccordoFactory idAccordoFactory = IDAccordoFactory.getInstance();
-
- String newURI = idAccordoFactory.getUriFromAccordo(as);
- // Cerco i servizi in cui devo cambiare la URI dell'accordo
- List<AccordoServizioParteSpecifica> servizi = apsCore.serviziByAccordoFilterList(idAccordoOLD);
- if(servizi!=null){
- while(servizi.size()>0){
- AccordoServizioParteSpecifica s = servizi.remove(0);
- s.setAccordoServizioParteComune(newURI);
- listOggettiDaAggiornare.add(s);
- }
- }
-
- if(Costanti.MODIPA_PROTOCOL_NAME.equals(idAccordoOLD.getSoggettoReferente().getTipo())) {
-
- String oldURI = idAccordoFactory.getUriFromIDAccordo(idAccordoOLD);
-
- Map<String, AccordoServizioParteComune> map = new HashMap<String, AccordoServizioParteComune>();
-
- if(org.openspcoop2.core.registry.constants.ServiceBinding.REST.equals(as.getServiceBinding())) {
- FiltroRicercaResources filtroRicerca = new FiltroRicercaResources();
- FiltroRicercaProtocolPropertyRegistry filtroRPP = new FiltroRicercaProtocolPropertyRegistry();
- filtroRPP.setName(org.openspcoop2.protocol.engine.constants.Costanti.MODIPA_PROFILO_INTERAZIONE_ASINCRONA_API_RICHIESTA_CORRELATA);
- filtroRPP.setValueAsString(oldURI);
- filtroRicerca.addProtocolPropertyResource(filtroRPP);
- List<IDResource> list = null;
- try {
- list = apcCore.getAllIdResource(filtroRicerca);
- }catch(DriverRegistroServiziNotFound notFound) {}
- if(list!=null && !list.isEmpty()) {
- for (IDResource idResource : list) {
-
- AccordoServizioParteComune aspc = null;
- String uri = idAccordoFactory.getUriFromIDAccordo(idResource.getIdAccordo());
- boolean forceAdd = false;
- if(map.containsKey(uri)) {
- aspc = map.remove(uri);
- forceAdd = true;
- }
- else {
- if(idResource.getIdAccordo().equals(idAccordoOLD)) {
- // è quello che sto modificando
- aspc = as;
- }
- else {
- aspc = apcCore.getAccordoServizioFull(idResource.getIdAccordo());
- }
- }
- boolean find = false;
- if(aspc.sizeResourceList()>0) {
- for (Resource res : aspc.getResourceList()) {
- if(res.getNome().equals(idResource.getNome())) {
- if(res.sizeProtocolPropertyList()>0) {
- for (ProtocolProperty pp : res.getProtocolPropertyList()) {
- if(org.openspcoop2.protocol.engine.constants.Costanti.MODIPA_PROFILO_INTERAZIONE_ASINCRONA_API_RICHIESTA_CORRELATA.equals(pp.getName())) {
- pp.setValue(newURI);
- find = true;
- break;
- }
- }
- }
- break;
- }
- }
- }
- if((!idResource.getIdAccordo().equals(idAccordoOLD)) && (forceAdd || find)) {
- map.put(uri, aspc);
- }
- }
- }
- }
- else {
- FiltroRicercaOperations filtroRicerca = new FiltroRicercaOperations();
- FiltroRicercaProtocolPropertyRegistry filtroRPP = new FiltroRicercaProtocolPropertyRegistry();
- filtroRPP.setName(org.openspcoop2.protocol.engine.constants.Costanti.MODIPA_PROFILO_INTERAZIONE_ASINCRONA_API_RICHIESTA_CORRELATA);
- filtroRPP.setValueAsString(oldURI);
- filtroRicerca.addProtocolPropertyAzione(filtroRPP);
- List<IDPortTypeAzione> list = null;
- try {
- list = apcCore.getAllIdOperation(filtroRicerca);
- }catch(DriverRegistroServiziNotFound notFound) {}
- if(list!=null && !list.isEmpty()) {
- for (IDPortTypeAzione idAzione : list) {
-
- AccordoServizioParteComune aspc = null;
- String uri = idAccordoFactory.getUriFromIDAccordo(idAzione.getIdPortType().getIdAccordo());
- boolean forceAdd = false;
- if(map.containsKey(uri)) {
- aspc = map.remove(uri);
- forceAdd = true;
- }
- else {
- if(idAzione.getIdPortType().getIdAccordo().equals(idAccordoOLD)) {
- // è quello che sto modificando
- aspc = as;
- }
- else {
- aspc = apcCore.getAccordoServizioFull(idAzione.getIdPortType().getIdAccordo());
- }
- }
- boolean find = false;
- if(aspc.sizePortTypeList()>0) {
- for (PortType portType : aspc.getPortTypeList()) {
- if(portType.getNome().contentEquals(idAzione.getIdPortType().getNome())) {
- if(portType.sizeAzioneList()>0) {
- for (Operation op : portType.getAzioneList()) {
- if(op.getNome().equals(idAzione.getNome())) {
- if(op.sizeProtocolPropertyList()>0) {
- for (ProtocolProperty pp : op.getProtocolPropertyList()) {
- if(org.openspcoop2.protocol.engine.constants.Costanti.MODIPA_PROFILO_INTERAZIONE_ASINCRONA_API_RICHIESTA_CORRELATA.equals(pp.getName())) {
- pp.setValue(newURI);
- find = true;
- break;
- }
- }
- }
- break;
- }
- }
- }
- break;
- }
- }
- }
- if((!idAzione.getIdPortType().getIdAccordo().equals(idAccordoOLD)) && (forceAdd || find)) {
- map.put(uri, aspc);
- }
-
- }
- }
- }
-
- if(!map.isEmpty()) {
- listOggettiDaAggiornare.addAll( map.values() );
- }
-
- }
- }
-
- public static boolean deleteAccordoServizioParteComune(AccordoServizioParteComune as, String userLogin, AccordiServizioParteComuneCore apcCore, AccordiServizioParteComuneHelper apcHelper, StringBuilder inUsoMessage, String newLine) throws Exception {
-
- HashMap<ErrorsHandlerCostant, List<String>> whereIsInUso = new HashMap<ErrorsHandlerCostant, List<String>>();
-
- IDAccordo idAccordo = IDAccordoFactory.getInstance().getIDAccordoFromAccordo(as);
- boolean normalizeObjectIds = !apcHelper.isModalitaCompleta();
- if (apcCore.isAccordoInUso(as, whereIsInUso, normalizeObjectIds)) {// accordo in uso
- inUsoMessage.append(DBOggettiInUsoUtils.toString(idAccordo, whereIsInUso, true, newLine, normalizeObjectIds));
- inUsoMessage.append(newLine);
- } else {// accordo non in uso
- apcCore.performDeleteOperation(userLogin, apcHelper.smista(), as);
- return true;
- }
-
- return false;
- }
-
- public static boolean deleteResource(AccordoServizioParteComune as, IDResource idResource, String userLogin, AccordiServizioParteComuneCore apcCore, AccordiServizioParteComuneHelper apcHelper, StringBuilder inUsoMessage, String newLine) throws Exception {
- HashMap<ErrorsHandlerCostant, List<String>> whereIsInUso = new HashMap<ErrorsHandlerCostant, List<String>>();
- boolean normalizeObjectIds = !apcHelper.isModalitaCompleta();
- boolean risorsaInUso = apcCore.isRisorsaInUso(idResource,whereIsInUso,normalizeObjectIds);
-
- boolean modificaAS_effettuata = false;
-
- if (risorsaInUso) {
-
- // traduco nomeRisorsa in path
- String methodPath = null;
- for (int j = 0; j < as.sizeResourceList(); j++) {
- Resource risorsa = as.getResource(j);
- if (idResource.getNome().equals(risorsa.getNome())) {
- methodPath = NamingUtils.getLabelResource(risorsa);
- break;
- }
- }
- if(methodPath==null) {
- methodPath = idResource.getNome();
- }
-
- inUsoMessage.append(DBOggettiInUsoUtils.toString(idResource, methodPath, whereIsInUso, true, newLine));
- inUsoMessage.append(newLine);
- } else {
- // Effettuo eliminazione
- for (int j = 0; j < as.sizeResourceList(); j++) {
- Resource risorsa = as.getResource(j);
- if (idResource.getNome().equals(risorsa.getNome())) {
- modificaAS_effettuata = true;
- as.removeResource(j);
- break;
- }
- }
- }
-
- return modificaAS_effettuata;
- }
-
- public static void deleteAccordoServizioParteComuneRisorse(AccordoServizioParteComune as, String userLogin, AccordiServizioParteComuneCore apcCore, AccordiServizioParteComuneHelper apcHelper,
- StringBuilder inUsoMessage, String newLine, List<String> resourcesToRemove) throws Exception {
- boolean modificaAS_effettuata = false;
-
- IDAccordo idAccordo = IDAccordoFactory.getInstance().getIDAccordoFromAccordo(as);
-
- for (int i = 0; i < resourcesToRemove.size(); i++) {
- String nomeRisorsa = resourcesToRemove.get(i);
- IDResource idRisorsa = new IDResource();
- idRisorsa.setNome(nomeRisorsa);
- idRisorsa.setIdAccordo(idAccordo);
-
- boolean modificato = AccordiServizioParteComuneUtilities.deleteResource(as, idRisorsa, userLogin, apcCore, apcHelper, inUsoMessage, newLine);
- if(modificato) {
- modificaAS_effettuata = true;
- }
-
- }// chiudo for
- if(modificaAS_effettuata) {
- apcCore.performUpdateOperation(userLogin, apcHelper.smista(), as);
- }
- }
-
- public static boolean deletePortType(AccordoServizioParteComune as, IDPortType idPortType, String userLogin, AccordiServizioParteComuneCore apcCore, AccordiServizioParteComuneHelper apcHelper, StringBuilder inUsoMessage, String newLine) throws Exception {
- HashMap<ErrorsHandlerCostant, List<String>> whereIsInUso = new HashMap<ErrorsHandlerCostant, List<String>>();
- boolean normalizeObjectIds = !apcHelper.isModalitaCompleta();
- boolean portTypeInUso = apcCore.isPortTypeInUso(idPortType,whereIsInUso,normalizeObjectIds);
-
- boolean modificaAS_effettuata = false;
-
- if (portTypeInUso) {
- inUsoMessage.append(DBOggettiInUsoUtils.toString(idPortType, whereIsInUso, true, newLine));
- inUsoMessage.append(newLine);
- } else {
- // Effettuo eliminazione
- for (int j = 0; j < as.sizePortTypeList(); j++) {
- PortType pt = as.getPortType(j);
- if (idPortType.getNome().equals(pt.getNome())) {
- modificaAS_effettuata = true;
- as.removePortType(j);
- break;
- }
- }
- }
-
- return modificaAS_effettuata;
- }
-
- public static void deleteAccordoServizioParteComunePortTypes(AccordoServizioParteComune as, String userLogin, AccordiServizioParteComuneCore apcCore, AccordiServizioParteComuneHelper apcHelper,
- StringBuilder inUsoMessage, String newLine, List<String> ptsToRemove) throws Exception {
-
- boolean modificaAS_effettuata = false;
-
- IDAccordo idAccordo = IDAccordoFactory.getInstance().getIDAccordoFromAccordo(as);
-
- for (int i = 0; i < ptsToRemove.size(); i++) {
- String nomePT = ptsToRemove.get(i);
-
- IDPortType idPT = new IDPortType();
- idPT.setNome(nomePT);
- idPT.setIdAccordo(idAccordo);
-
- boolean modificato = AccordiServizioParteComuneUtilities.deletePortType(as, idPT, userLogin, apcCore, apcHelper, inUsoMessage, newLine);
- if(modificato) {
- modificaAS_effettuata = true;
- }
-
- }// chiudo for
- if(modificaAS_effettuata) {
- apcCore.performUpdateOperation(userLogin, apcHelper.smista(), as);
- }
-
- }
-
- public static boolean deleteOperazione(PortType pt, IDPortTypeAzione idOperazione, String userLogin, AccordiServizioParteComuneCore apcCore, AccordiServizioParteComuneHelper apcHelper, StringBuilder inUsoMessage, String newLine) throws Exception {
- HashMap<ErrorsHandlerCostant, List<String>> whereIsInUso = new HashMap<ErrorsHandlerCostant, List<String>>();
- boolean normalizeObjectIds = !apcHelper.isModalitaCompleta();
- boolean operazioneInUso = apcCore.isOperazioneInUso(idOperazione,whereIsInUso,normalizeObjectIds);
-
- boolean modificaAS_effettuata = false;
-
- if (operazioneInUso) {
- inUsoMessage.append(DBOggettiInUsoUtils.toString(idOperazione, whereIsInUso, true, newLine));
- inUsoMessage.append(newLine);
- } else {
- // Effettuo eliminazione
- for (int j = 0; j < pt.sizeAzioneList(); j++) {
- Operation op = pt.getAzione(j);
- if (idOperazione.getNome().equals(op.getNome())) {
- modificaAS_effettuata = true;
- pt.removeAzione(j);
- break;
- }
- }
- }
-
- return modificaAS_effettuata;
- }
-
-
- public static void deleteAccordoServizioParteComuneOperations(AccordoServizioParteComune as, String userLogin, AccordiServizioParteComuneCore apcCore, AccordiServizioParteComuneHelper apcHelper,
- StringBuilder inUsoMessage, String newLine, PortType pt, List<String> optsToRemove) throws Exception {
-
- boolean modificaAS_effettuata = false;
-
- IDAccordo idAccordo = IDAccordoFactory.getInstance().getIDAccordoFromAccordo(as);
- IDPortType idPortType = new IDPortType();
- idPortType.setNome(pt.getNome());
- idPortType.setIdAccordo(idAccordo);
-
- for (int i = 0; i < optsToRemove.size(); i++) {
- String nomeop = optsToRemove.get(i);
-
- IDPortTypeAzione idOperazione = new IDPortTypeAzione();
- idOperazione.setNome(nomeop);
- idOperazione.setIdPortType(idPortType);
-
- boolean modificato = AccordiServizioParteComuneUtilities.deleteOperazione(pt, idOperazione, userLogin, apcCore, apcHelper, inUsoMessage, newLine);
- if(modificato) {
- modificaAS_effettuata = true;
- }
-
- }// chiudo for
- if(modificaAS_effettuata) {
- apcCore.performUpdateOperation(userLogin, apcHelper.smista(), pt);
- }
-
- }
-
- @SuppressWarnings("incomplete-switch")
- public static void updateAccordoServizioParteComuneAllegati(AccordoServizioParteComune as,Documento doc, Documento docNew) {
- switch (RuoliDocumento.valueOf(doc.getRuolo())) {
- case allegato:
- //rimuovo il vecchio doc dalla lista
- for (int i = 0; i < as.sizeAllegatoList(); i++) {
- Documento documento = as.getAllegato(i);
- if(documento.getId().equals(doc.getId()))
- as.removeAllegato(i);
- }
- //aggiungo il nuovo
- as.addAllegato(docNew);
-
- break;
-
- case specificaSemiformale:
-
- for (int i = 0; i < as.sizeSpecificaSemiformaleList(); i++) {
- Documento documento = as.getSpecificaSemiformale(i);
- if(documento.getId().equals(doc.getId())){
- as.removeSpecificaSemiformale(i);
- break;
- }
- }
- //aggiungo il nuovo
- as.addSpecificaSemiformale(docNew);
- break;
-
- case specificaCoordinamento:
- AccordoServizioParteComuneServizioComposto assc = as.getServizioComposto();
- for (int i = 0; i < assc.sizeSpecificaCoordinamentoList(); i++) {
- Documento documento = assc.getSpecificaCoordinamento(i);
- if(documento.getId().equals(doc.getId())){
- assc.removeSpecificaCoordinamento(i);
- break;
- }
- }
- assc.addSpecificaCoordinamento(docNew);
- as.setServizioComposto(assc);
- break;
- }
- }
-
- public static void deleteAccordoServizioParteComuneAllegati(AccordoServizioParteComune as, String userLogin,
- AccordiServizioParteComuneCore apcCore, AccordiServizioParteComuneHelper apcHelper,
- List<Long> idAllegati) throws Exception {
-
- ArchiviCore archiviCore = new ArchiviCore(apcCore);
-
- for (int i = 0; i < idAllegati.size(); i++) {
- long idAllegato = idAllegati.get(i);
-
- Documento doc = archiviCore.getDocumento(idAllegato, false);
-
- switch (RuoliDocumento.valueOf(doc.getRuolo())) {
- case allegato:
- //rimuovo il vecchio doc dalla lista
- for (int j = 0; j < as.sizeAllegatoList(); j++) {
- Documento documento = as.getAllegato(j);
- if(documento.getFile().equals(doc.getFile()))
- as.removeAllegato(j);
- }
-
- break;
- case specificaSemiformale:
-
- for (int j = 0; j < as.sizeSpecificaSemiformaleList(); j++) {
- Documento documento = as.getSpecificaSemiformale(j);
- if(documento.getFile().equals(doc.getFile()))
- as.removeSpecificaSemiformale(j);
- }
- break;
-
- case specificaCoordinamento:
- if(as.getServizioComposto()!=null){
- for (int j = 0; j < as.getServizioComposto().sizeSpecificaCoordinamentoList(); j++) {
- Documento documento = as.getServizioComposto().getSpecificaCoordinamento(j);
- if(documento.getFile().equals(doc.getFile()))
- as.getServizioComposto().removeSpecificaCoordinamento(j);
- }
- }
- break;
- case specificaLivelloServizio:
- break;
- case specificaSicurezza:
- break;
- }
-
- }
- // effettuo le operazioni
- apcCore.performUpdateOperation(userLogin, apcHelper.smista(), as);
-
- }
-
- public static String getTerminologiaAccordoServizio(String tipo){
- String termine = null;
- if(AccordiServizioParteComuneCostanti.PARAMETRO_VALORE_APC_TIPO_ACCORDO_PARTE_COMUNE.equals(tipo)){
- termine=AccordiServizioParteComuneCostanti.LABEL_APC;
- }
- else{
- termine=AccordiServizioParteComuneCostanti.LABEL_ASC;
- }
- return termine;
- }
- @Deprecated
- public static String getParametroAccordoServizio(String tipo,String appendChar){
- String parametro = "";
- if(AccordiServizioParteComuneCostanti.PARAMETRO_VALORE_APC_TIPO_ACCORDO_PARTE_COMUNE.equals(tipo)){
- parametro = appendChar+AccordiServizioParteComuneCostanti.PARAMETRO_APC_TIPO_ACCORDO+"="+AccordiServizioParteComuneCostanti.PARAMETRO_VALORE_APC_TIPO_ACCORDO_PARTE_COMUNE;
- }
- else{
- parametro = appendChar+AccordiServizioParteComuneCostanti.PARAMETRO_APC_TIPO_ACCORDO+"="+AccordiServizioParteComuneCostanti.PARAMETRO_VALORE_APC_TIPO_ACCORDO_SERVIZIO_COMPOSTO;
- }
- return parametro;
- }
- public static Parameter getParametroAccordoServizio(AccordoServizioParteComune apc){
- if(apc.getServizioComposto()!=null){
- return new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_TIPO_ACCORDO,
- AccordiServizioParteComuneCostanti.PARAMETRO_VALORE_APC_TIPO_ACCORDO_SERVIZIO_COMPOSTO);
- }else
- {
- return new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_TIPO_ACCORDO,
- AccordiServizioParteComuneCostanti.PARAMETRO_VALORE_APC_TIPO_ACCORDO_PARTE_COMUNE);
- }
- }
- public static Parameter getParametroAccordoServizio(AccordoServizioParteComuneSintetico apc){
- if(apc.getServizioComposto()!=null){
- return new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_TIPO_ACCORDO,
- AccordiServizioParteComuneCostanti.PARAMETRO_VALORE_APC_TIPO_ACCORDO_SERVIZIO_COMPOSTO);
- }else
- {
- return new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_TIPO_ACCORDO,
- AccordiServizioParteComuneCostanti.PARAMETRO_VALORE_APC_TIPO_ACCORDO_PARTE_COMUNE);
- }
- }
- public static Parameter getParametroAccordoServizio(String tipo){
- if(AccordiServizioParteComuneCostanti.PARAMETRO_VALORE_APC_TIPO_ACCORDO_PARTE_COMUNE.equals(tipo)){
- return new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_TIPO_ACCORDO,
- AccordiServizioParteComuneCostanti.PARAMETRO_VALORE_APC_TIPO_ACCORDO_PARTE_COMUNE);
- }
- else{
- return new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_TIPO_ACCORDO,
- AccordiServizioParteComuneCostanti.PARAMETRO_VALORE_APC_TIPO_ACCORDO_SERVIZIO_COMPOSTO);
- }
- }
- public static boolean showInformazioniServiziComponenti(String tipo){
- boolean value = true;
- if(AccordiServizioParteComuneCostanti.PARAMETRO_VALORE_APC_TIPO_ACCORDO_PARTE_COMUNE.equals(tipo)){
- value = false;
- }
- return value;
- }
- public static boolean showFlagServizioComposto(){
- return false;
- }
- public static List<AccordoServizioParteComuneSintetico> accordiList(AccordiServizioParteComuneCore core,String userLogin,ConsoleSearch ricerca,String tipoAccordo) throws DriverRegistroServiziException{
- List<AccordoServizioParteComuneSintetico> lista = null;
- if(AccordiServizioParteComuneCostanti.PARAMETRO_VALORE_APC_TIPO_ACCORDO_PARTE_COMUNE.equals(tipoAccordo)){
- if(core.isVisioneOggettiGlobale(userLogin)){
- lista = core.accordiServizioParteComuneList(null, ricerca);
- }else{
- lista = core.accordiServizioParteComuneList(userLogin, ricerca);
- }
- }
- else if(AccordiServizioParteComuneCostanti.PARAMETRO_VALORE_APC_TIPO_ACCORDO_SERVIZIO_COMPOSTO.equals(tipoAccordo)){
- if(core.isVisioneOggettiGlobale(userLogin)){
- lista = core.accordiServizioCompostiList(null, ricerca);
- }else{
- lista = core.accordiServizioCompostiList(userLogin, ricerca);
- }
- }
- else {
- if(core.isVisioneOggettiGlobale(userLogin)){
- lista = core.accordiList(null, ricerca);
- }else{
- lista = core.accordiList(userLogin, ricerca);
- }
- }
- return lista;
- }
- public static List<AccordoServizioParteComuneSintetico> accordiListFromPermessiUtente(AccordiServizioParteComuneCore core,String userLogin,ConsoleSearch ricerca,boolean[] permessiUtente) throws DriverRegistroServiziException{
- List<AccordoServizioParteComuneSintetico> lista = null;
- if(permessiUtente != null){
- if(permessiUtente[0] && !permessiUtente[1]){
- if(core.isVisioneOggettiGlobale(userLogin)){
- lista = core.accordiServizioParteComuneList(null, ricerca);
- }else{
- lista = core.accordiServizioParteComuneList(userLogin, ricerca);
- }
- return lista;
- }
- if(!permessiUtente[0] && permessiUtente[1]){
- if(core.isVisioneOggettiGlobale(userLogin)){
- lista = core.accordiServizioCompostiList(null, ricerca);
- }else{
- lista = core.accordiServizioCompostiList(userLogin, ricerca);
- }
- return lista;
- }
- }
- if(core.isVisioneOggettiGlobale(userLogin)){
- lista = core.accordiList(null, ricerca);
- }else{
- lista = core.accordiList(userLogin, ricerca);
- }
- return lista;
- }
-
- public static List<IDAccordoDB> idAccordiListFromPermessiUtente(AccordiServizioParteComuneCore core,String userLogin,ConsoleSearch ricerca,boolean[] permessiUtente,
- boolean soloAccordiConsistentiRest, boolean soloAccordiConsistentiSoap) throws DriverRegistroServiziException{
- List<IDAccordoDB> lista = null;
- if(permessiUtente != null){
- if(permessiUtente[0] && !permessiUtente[1]){
- if(core.isVisioneOggettiGlobale(userLogin)){
- lista = core.idAccordiServizioParteComuneList(null, ricerca,
- soloAccordiConsistentiRest, soloAccordiConsistentiSoap);
- }else{
- lista = core.idAccordiServizioParteComuneList(userLogin, ricerca,
- soloAccordiConsistentiRest, soloAccordiConsistentiSoap);
- }
- return lista;
- }
- if(!permessiUtente[0] && permessiUtente[1]){
- if(core.isVisioneOggettiGlobale(userLogin)){
- lista = core.idAccordiServizioCompostiList(null, ricerca,
- soloAccordiConsistentiRest, soloAccordiConsistentiSoap);
- }else{
- lista = core.idAccordiServizioCompostiList(userLogin, ricerca,
- soloAccordiConsistentiRest, soloAccordiConsistentiSoap);
- }
- return lista;
- }
- }
- if(core.isVisioneOggettiGlobale(userLogin)){
- lista = core.idAccordiList(null, ricerca,
- soloAccordiConsistentiRest, soloAccordiConsistentiSoap);
- }else{
- lista = core.idAccordiList(userLogin, ricerca,
- soloAccordiConsistentiRest, soloAccordiConsistentiSoap);
- }
- return lista;
- }
- public static ArrayList<String> selectPortTypeAsincroni(AccordoServizioParteComune as,String profcollop,String nomept){
- // Recupero i servizi dell'accordo con lo stesso profilo di collaborazione
- ArrayList<String> servCorrUniche = null;
- //List<PortType> getServCorrList = core.accordiPorttypeList(idInt, null, new Search(true));
- List<PortType> getServCorrList = new ArrayList<PortType>();
- for(int k=0;k<as.sizePortTypeList();k++){
- getServCorrList.add(as.getPortType(k));
- }
- if (!getServCorrList.isEmpty()) {
- servCorrUniche = new ArrayList<>();
- servCorrUniche.add("-");
- for (Iterator<PortType> iterator = getServCorrList.iterator(); iterator.hasNext();) {
- PortType myPT = iterator.next();
- // Devono possedere almeno un'azione
- if(myPT.sizeAzioneList()<=0)
- continue;
- // Devono possedere almeno un'azione con profilo di collaborazione uguale a quello selezionato
- List<Operation> opList = new ArrayList<>();
- for(int j=0; j<myPT.sizeAzioneList();j++){
- Operation op = myPT.getAzione(j);
- // ridefinito sull'azione
- if(AccordiServizioParteComuneCostanti.INFORMAZIONI_PROTOCOLLO_MODALITA_RIDEFINITO.equals(op.getProfAzione()) &&
- (op.getProfiloCollaborazione()!=null && op.getProfiloCollaborazione().equals(profcollop))
- ){
- opList.add(op);
- }
- // ereditato dal port type
- else if (AccordiServizioParteComuneCostanti.INFORMAZIONI_PROTOCOLLO_MODALITA_DEFAULT.equals(op.getProfAzione()) &&
- AccordiServizioParteComuneCostanti.INFORMAZIONI_PROTOCOLLO_MODALITA_RIDEFINITO.equals(myPT.getProfiloPT()) &&
- (myPT.getProfiloCollaborazione()!=null && myPT.getProfiloCollaborazione().equals(profcollop))
- ){
- opList.add(op);
- }
- // ereditato dall'accordo di servizio
- else if (AccordiServizioParteComuneCostanti.INFORMAZIONI_PROTOCOLLO_MODALITA_DEFAULT.equals(op.getProfAzione()) &&
- AccordiServizioParteComuneCostanti.INFORMAZIONI_PROTOCOLLO_MODALITA_DEFAULT.equals(myPT.getProfiloPT()) &&
- (as.getProfiloCollaborazione()!=null && as.getProfiloCollaborazione().equals(profcollop))
- ){
- opList.add(op);
- }
- // profilo non matcha quello atteso
- else{
- continue;
- }
- }
- if(opList.size()<=0){
- continue;
- }
- if (!nomept.equals(myPT.getNome())) {
- servCorrUniche.add(myPT.getNome());
- }
- }
- }
- if (servCorrUniche != null && servCorrUniche.size() > 0)
- return servCorrUniche;
- else
- return null;
- }
- public static Map<String, List<Operation>> selectPortTypeOperationsListAsincrone(AccordoServizioParteComune as,String profcollop,String nomept){
- //List<PortType> getServCorrList = core.accordiPorttypeList(idInt, null, new Search(true));
- List<PortType> getServCorrList = new ArrayList<PortType>();
- for(int k=0;k<as.sizePortTypeList();k++){
- getServCorrList.add(as.getPortType(k));
- }
- Map<String, List<Operation>> operationsListSelezionate = new HashMap<>();
- if (!getServCorrList.isEmpty()) {
- for (Iterator<PortType> iterator = getServCorrList.iterator(); iterator.hasNext();) {
- PortType myPT = iterator.next();
- // Devono possedere almeno un'azione
- if(myPT.sizeAzioneList()<=0)
- continue;
- // Devono possedere almeno un'azione con profilo di collaborazione uguale a quello selezionato
- List<Operation> opList = new ArrayList<>();
- for(int j=0; j<myPT.sizeAzioneList();j++){
- Operation op = myPT.getAzione(j);
- // ridefinito sull'azione
- if(AccordiServizioParteComuneCostanti.INFORMAZIONI_PROTOCOLLO_MODALITA_RIDEFINITO.equals(op.getProfAzione()) &&
- (op.getProfiloCollaborazione()!=null && op.getProfiloCollaborazione().equals(profcollop))
- ){
- opList.add(op);
- }
- // ereditato dal port type
- else if (AccordiServizioParteComuneCostanti.INFORMAZIONI_PROTOCOLLO_MODALITA_DEFAULT.equals(op.getProfAzione()) &&
- AccordiServizioParteComuneCostanti.INFORMAZIONI_PROTOCOLLO_MODALITA_RIDEFINITO.equals(myPT.getProfiloPT()) &&
- (myPT.getProfiloCollaborazione()!=null && myPT.getProfiloCollaborazione().equals(profcollop))
- ){
- opList.add(op);
- }
- // ereditato dall'accordo di servizio
- else if (AccordiServizioParteComuneCostanti.INFORMAZIONI_PROTOCOLLO_MODALITA_DEFAULT.equals(op.getProfAzione()) &&
- AccordiServizioParteComuneCostanti.INFORMAZIONI_PROTOCOLLO_MODALITA_DEFAULT.equals(myPT.getProfiloPT()) &&
- (as.getProfiloCollaborazione()!=null && as.getProfiloCollaborazione().equals(profcollop))
- ){
- opList.add(op);
- }
- // profilo non matcha quello atteso
- else{
- continue;
- }
- }
- if(opList.size()<=0){
- continue;
- }
- if (!nomept.equals(myPT.getNome())) {
- operationsListSelezionate.put(myPT.getNome(), opList);
- }
- else{
- operationsListSelezionate.put("-", opList);
- }
- }
- }
- return operationsListSelezionate;
- }
- public static ArrayList<String> selectOperationAsincrone(AccordoServizioParteComune as,String servcorr,String profProtocollo,
- String profcollop,PortType pt,String nomeop,AccordiServizioParteComuneCore core, Map<String, List<Operation>> operationsListSelezionate)throws DriverRegistroServiziException{
- // Se è stato selezionato un servizio,
- // recupero le azioni del servizio
- // che non sono già state correlate
- //
- // Se non è stato selezionato un servizio:
- // - se il profilo dell'azione è
- // asincronoAsimmetrico, recupero le
- // azioni del servizio con profilo
- // asincronoAsimmetrico che non sono già
- // state correlate
- // - se il profilo dell'azione è
- // asincronoSimmetrico, non permetto
- // di scegliere un'azione correlata
- ArrayList<String> aziCorrUniche = null;
- List<Operation> getAziCorrList = null;
- PortType ptSel = null;
- if (!servcorr.equals("-")) {
- // Prendo il servizio selezionato
- for (int j = 0; j < as.sizePortTypeList(); j++) {
- ptSel = as.getPortType(j);
- if (servcorr.equals(ptSel.getNome()))
- break;
- }
- //getAziCorrList = core.accordiPorttypeOperationList(ptSel.getId().intValue(), ptSel.getProfiloCollaborazione(), new Search(true));*/
- getAziCorrList = operationsListSelezionate.get(servcorr);
- } else {
-
- boolean calcolaLista = false;
- if(AccordiServizioParteComuneCostanti.INFORMAZIONI_PROTOCOLLO_MODALITA_RIDEFINITO.equals(profProtocollo) && profcollop.equals("asincronoAsimmetrico")) {
- calcolaLista = true;
- }
- else if(AccordiServizioParteComuneCostanti.INFORMAZIONI_PROTOCOLLO_MODALITA_DEFAULT.contentEquals(profProtocollo)) {
- if(AccordiServizioParteComuneCostanti.INFORMAZIONI_PROTOCOLLO_MODALITA_RIDEFINITO.equals(pt.getProfiloPT())) {
- if(pt.getProfiloCollaborazione()!=null) {
- calcolaLista = "asincronoAsimmetrico".equals(pt.getProfiloCollaborazione().getValue());
- }
- }
- else {
- if(as.getProfiloCollaborazione()!=null) {
- calcolaLista = "asincronoAsimmetrico".equals(as.getProfiloCollaborazione().getValue());
- }
- }
- }
- if (calcolaLista){
- //getAziCorrList = core.accordiPorttypeOperationList(pt.getId().intValue(), "asincronoAsimmetrico", new Search(true));
- getAziCorrList = operationsListSelezionate.get(servcorr);
- ptSel = pt;
- }
- }
- if (getAziCorrList != null && getAziCorrList.size() > 0) {
- aziCorrUniche = new ArrayList<>();
- aziCorrUniche.add("-");
- for (Iterator<Operation> iterator = getAziCorrList.iterator(); iterator.hasNext();) {
- Operation operation = iterator.next();
- // Se sto utilizzando lo stesso port type, non devo inserire le azioni con il mio nome
- if (servcorr.equals("-") && nomeop.equals(operation.getNome())) {
- continue;
- }
- // Non devo inserire le azioni gia correlate une alle altre.
- // Devo quindi verificare se l'azione suddetta 'operation.getNome' risulta gia' correlata, oppure e' utilizzata come correlata
- if (ptSel!=null && !core.isOperationCorrelata(ptSel.getNome(), ptSel.getId(), operation.getNome(), operation.getId())) {
- aziCorrUniche.add(operation.getNome());
- }
- }
- }
- if (aziCorrUniche != null && aziCorrUniche.size() > 0)
- return aziCorrUniche;
- else
- return null;
- }
- public static void mapppingAutomaticoInterfaccia(AccordoServizioParteComune as, AccordiServizioParteComuneCore apcCore,
- boolean enableAutoMapping, boolean validazioneDocumenti, boolean enableAutoMapping_estraiXsdSchemiFromWsdlTypes, boolean facilityUnicoWSDL_interfacciaStandard,
- String tipoProtocollo,
- InterfaceType interfaceType) throws Exception{
- if(as.getByteWsdlConcettuale() != null || as.getByteWsdlLogicoErogatore() != null || as.getByteWsdlLogicoFruitore() != null) {
- apcCore.mappingAutomatico(tipoProtocollo, as, validazioneDocumenti);
- if(enableAutoMapping_estraiXsdSchemiFromWsdlTypes && InterfaceType.WSDL_11.equals(interfaceType)){
- Map<String, byte[]> schemiAggiuntiInQuestaOperazione = new HashMap<String, byte[]>();
- if(as.getByteWsdlConcettuale() != null){
- apcCore.estraiSchemiFromWSDLTypesAsAllegati(as, as.getByteWsdlConcettuale(),AccordiServizioParteComuneCostanti.TIPO_WSDL_CONCETTUALE, schemiAggiuntiInQuestaOperazione);
- }
- if(facilityUnicoWSDL_interfacciaStandard){
- // è stato utilizzato il concettuale. Lo riporto nel logico
- if(as.getByteWsdlConcettuale()!=null){
- as.setByteWsdlLogicoErogatore(as.getByteWsdlConcettuale());
- }
- }
- else{
- if(as.getByteWsdlLogicoErogatore() != null){
- apcCore.estraiSchemiFromWSDLTypesAsAllegati(as, as.getByteWsdlLogicoErogatore(),AccordiServizioParteComuneCostanti.TIPO_WSDL_EROGATORE, schemiAggiuntiInQuestaOperazione);
- }
- if(as.getByteWsdlLogicoFruitore() != null){
- apcCore.estraiSchemiFromWSDLTypesAsAllegati(as, as.getByteWsdlLogicoFruitore(),AccordiServizioParteComuneCostanti.TIPO_WSDL_FRUITORE, schemiAggiuntiInQuestaOperazione);
- }
- }
- }
- try{
- // Se ho fatto il mapping controllo la validita' di quanto prodotto
- as.setStatoPackage(StatiAccordo.operativo.toString());
- boolean utilizzoAzioniDiretteInAccordoAbilitato = apcCore.isShowAccordiColonnaAzioni();
- apcCore.validaStatoAccordoServizio(as, utilizzoAzioniDiretteInAccordoAbilitato, false);
- }catch(ValidazioneStatoPackageException validazioneException){
- // Se l'automapping non ha prodotto ne porttype ne operatin rimetto lo stato a bozza
- as.setStatoPackage(StatiAccordo.bozza.toString());
- }
- }
- }
-
- public static boolean createPortTypeOperation(boolean enableAutoMapping, AccordiServizioParteComuneCore apcCore, AccordiServizioParteComuneHelper apcHelper,
- AccordoServizioParteComune as, PortType pt, String userLogin) throws Exception{
- boolean updateAccordo = false;
- try{
- if(enableAutoMapping) {
- if(StatiAccordo.bozza.toString().equals(as.getStatoPackage())) {
- // Se ho aggiunto la prima operazione
- if(pt.sizeAzioneList()==1) {
- as.setStatoPackage(StatiAccordo.operativo.toString());
- boolean utilizzoAzioniDiretteInAccordoAbilitato = apcCore.isShowAccordiColonnaAzioni();
- apcCore.validaStatoAccordoServizio(as, utilizzoAzioniDiretteInAccordoAbilitato, false);
- updateAccordo = true;
- }
- }
- }
- }catch(ValidazioneStatoPackageException validazioneException){
- }
-
- if(updateAccordo) {
- // effettuo le operazioni
- apcCore.performUpdateOperation(userLogin, apcHelper.smista(), as);
- }
- else {
- // effettuo le operazioni
- apcCore.performUpdateOperation(userLogin, apcHelper.smista(), pt);
- }
- return updateAccordo;
- }
-
- public static void createResource(boolean enableAutoMapping, AccordiServizioParteComuneCore apcCore, AccordiServizioParteComuneHelper apcHelper,
- AccordoServizioParteComune as, String userLogin) throws Exception{
-
- try{
- if(enableAutoMapping) {
- if(StatiAccordo.bozza.toString().equals(as.getStatoPackage())) {
- // Se ho aggiunto la prima risorsa
- if(as.sizeResourceList()==1) {
- as.setStatoPackage(StatiAccordo.operativo.toString());
- boolean utilizzoAzioniDiretteInAccordoAbilitato = apcCore.isShowAccordiColonnaAzioni();
- apcCore.validaStatoAccordoServizio(as, utilizzoAzioniDiretteInAccordoAbilitato, false);
- }
- }
- }
- }catch(ValidazioneStatoPackageException validazioneException){
- // Se l'automapping non ha prodotto ne porttype ne operatin rimetto lo stato a bozza
- as.setStatoPackage(StatiAccordo.bozza.toString());
- }
-
- // effettuo le operazioni
- apcCore.performUpdateOperation(userLogin, apcHelper.smista(), as);
-
- }
-
- public static void updateInterfacciaAccordoServizioParteComune(String tipoParam, String wsdlS, AccordoServizioParteComune as,
- boolean enableAutoMapping, boolean validazioneDocumenti, boolean enableAutoMapping_estraiXsdSchemiFromWsdlTypes, boolean facilityUnicoWSDL_interfacciaStandard,
- String tipoProtocollo,
- AccordiServizioParteComuneCore apcCore,
- boolean aggiornaEsistenti, boolean eliminaNonPresentiNuovaInterfaccia,
- List<IDResource> risorseEliminate,List<IDPortType> portTypeEliminati, List<IDPortTypeAzione> operationEliminate) throws Exception {
-
- FormatoSpecifica formato = null;
- byte [] wsdlBytes = null;
- if(as!=null) {
- formato = as.getFormatoSpecifica();
- }
- if(wsdlS!=null) {
- wsdlBytes = apcCore.getInterfaceAsByteArray(formato, wsdlS);
- }
-
- // il wsdl definitorio rimane fuori dal nuovo comportamento quindi il flusso della pagina continua come prima
- if (tipoParam.equals(AccordiServizioParteComuneCostanti.PARAMETRO_APC_WSDL_DEFINITORIO)) {
- as.setByteWsdlDefinitorio(wsdlBytes);
- }
- else {
- // se sono state definiti dei port type ed e' la prima volta che ho passato i controlli
- //Informo l'utente che potrebbe sovrascrivere i servizi definiti tramite l'aggiornamento del wsdl
- // Questa Modalita' e' controllata tramite la proprieta' isenabledAutoMappingWsdlIntoAccordo
- // e se non e' un reset
- if(enableAutoMapping){
-
- if( wsdlBytes!=null ){
- AccordoServizioParteComune asNuovo = new AccordoServizioParteComune();
- asNuovo.setFormatoSpecifica(as.getFormatoSpecifica());
- asNuovo.setServiceBinding(as.getServiceBinding());
- boolean fillXsd = false;
- String tipo = null;
-
- // decodifico quale wsdl/wsbl sto aggiornando
- if (tipoParam.equals(AccordiServizioParteComuneCostanti.PARAMETRO_APC_WSDL_CONCETTUALE)) {
- as.setByteWsdlConcettuale(wsdlBytes);
- asNuovo.setByteSpecificaConversazioneConcettuale(as.getByteSpecificaConversazioneConcettuale());
- asNuovo.setByteSpecificaConversazioneErogatore(as.getByteSpecificaConversazioneErogatore());
- asNuovo.setByteSpecificaConversazioneFruitore(as.getByteSpecificaConversazioneFruitore());
- asNuovo.setByteWsdlConcettuale(wsdlBytes);
-
- fillXsd = true;
- tipo=AccordiServizioParteComuneCostanti.TIPO_WSDL_CONCETTUALE;
- }
- if (tipoParam.equals(AccordiServizioParteComuneCostanti.PARAMETRO_APC_WSDL_EROGATORE)) {
- as.setByteWsdlLogicoErogatore(wsdlBytes);
- asNuovo.setByteSpecificaConversazioneConcettuale(as.getByteSpecificaConversazioneConcettuale());
- asNuovo.setByteSpecificaConversazioneErogatore(as.getByteSpecificaConversazioneErogatore());
- asNuovo.setByteSpecificaConversazioneFruitore(as.getByteSpecificaConversazioneFruitore());
- asNuovo.setByteWsdlLogicoErogatore(wsdlBytes);
-
- fillXsd = true;
- if(facilityUnicoWSDL_interfacciaStandard){
- tipo=AccordiServizioParteComuneCostanti.TIPO_WSDL_CONCETTUALE;
- }
- else{
- tipo=AccordiServizioParteComuneCostanti.TIPO_WSDL_EROGATORE;
- }
-
- }
- if (tipoParam.equals(AccordiServizioParteComuneCostanti.PARAMETRO_APC_WSDL_FRUITORE)) {
- as.setByteWsdlLogicoFruitore(wsdlBytes);
- asNuovo.setByteSpecificaConversazioneConcettuale(as.getByteSpecificaConversazioneConcettuale());
- asNuovo.setByteSpecificaConversazioneErogatore(as.getByteSpecificaConversazioneErogatore());
- asNuovo.setByteSpecificaConversazioneFruitore(as.getByteSpecificaConversazioneFruitore());
- asNuovo.setByteWsdlLogicoFruitore(wsdlBytes);
-
- fillXsd = true;
- tipo=AccordiServizioParteComuneCostanti.TIPO_WSDL_FRUITORE;
- }
- if (tipoParam.equals(AccordiServizioParteComuneCostanti.PARAMETRO_APC_SPECIFICA_CONVERSAZIONE_CONCETTUALE)) {
- as.setByteSpecificaConversazioneConcettuale(wsdlBytes);
- asNuovo.setByteSpecificaConversazioneConcettuale(wsdlBytes);
- asNuovo.setByteWsdlConcettuale(as.getByteWsdlConcettuale());
- asNuovo.setByteWsdlLogicoErogatore(as.getByteWsdlLogicoErogatore());
- asNuovo.setByteWsdlLogicoFruitore(as.getByteWsdlLogicoFruitore());
- }
- if (tipoParam.equals(AccordiServizioParteComuneCostanti.PARAMETRO_APC_SPECIFICA_CONVERSAZIONE_EROGATORE)) {
- as.setByteSpecificaConversazioneErogatore(wsdlBytes);
- asNuovo.setByteSpecificaConversazioneErogatore(wsdlBytes);
- asNuovo.setByteWsdlConcettuale(as.getByteWsdlConcettuale());
- asNuovo.setByteWsdlLogicoErogatore(as.getByteWsdlLogicoErogatore());
- asNuovo.setByteWsdlLogicoFruitore(as.getByteWsdlLogicoFruitore());
- }
- if (tipoParam.equals(AccordiServizioParteComuneCostanti.PARAMETRO_APC_SPECIFICA_CONVERSAZIONE_FRUITORE)) {
- as.setByteSpecificaConversazioneFruitore(wsdlBytes);
- asNuovo.setByteSpecificaConversazioneFruitore(wsdlBytes);
- asNuovo.setByteWsdlConcettuale(as.getByteWsdlConcettuale());
- asNuovo.setByteWsdlLogicoErogatore(as.getByteWsdlLogicoErogatore());
- asNuovo.setByteWsdlLogicoFruitore(as.getByteWsdlLogicoFruitore());
- }
- // Genero la nuova definizione
- apcCore.mappingAutomatico(tipoProtocollo, asNuovo, validazioneDocumenti);
- // se l'aggiornamento ha creato nuovi oggetti o aggiornato i vecchi aggiorno la configurazione
- if(org.openspcoop2.core.registry.constants.ServiceBinding.REST.equals(as.getServiceBinding())) {
- apcCore.popolaResourceDaUnAltroASPC(as,asNuovo,
- aggiornaEsistenti, eliminaNonPresentiNuovaInterfaccia, risorseEliminate);
- }
- else {
- apcCore.popolaPorttypeOperationDaUnAltroASPC(as,asNuovo,
- aggiornaEsistenti, eliminaNonPresentiNuovaInterfaccia,
- portTypeEliminati, operationEliminate);
- }
-
- // popolo gli allegati
- if(fillXsd && enableAutoMapping_estraiXsdSchemiFromWsdlTypes && FormatoSpecifica.WSDL_11.equals(as.getFormatoSpecifica())){
- apcCore.estraiSchemiFromWSDLTypesAsAllegati(as, wsdlBytes, tipo, new HashMap<String, byte[]> ());
- if(facilityUnicoWSDL_interfacciaStandard){
- // è stato utilizzato il concettuale. Lo riporto nel logico
- as.setByteWsdlLogicoErogatore(as.getByteWsdlConcettuale());
- }
- }
-
- try{
- if(StatiAccordo.bozza.toString().equals(as.getStatoPackage())) {
- // Se ho fatto il mapping controllo la validita' di quanto prodotto
- as.setStatoPackage(StatiAccordo.operativo.toString());
- boolean utilizzoAzioniDiretteInAccordoAbilitato = apcCore.isShowAccordiColonnaAzioni();
- apcCore.validaStatoAccordoServizio(as, utilizzoAzioniDiretteInAccordoAbilitato, false);
- }
- }catch(ValidazioneStatoPackageException validazioneException){
- // Se l'automapping non ha prodotto ne porttype ne operatin rimetto lo stato a bozza
- as.setStatoPackage(StatiAccordo.bozza.toString());
- }
-
- }
- }else {
- // vecchio comportamento sovrascrivo i wsdl
- // Modifico i dati del wsdl dell'accordo nel db
- // anche in caso di reset del wsdl
- if (tipoParam.equals(AccordiServizioParteComuneCostanti.PARAMETRO_APC_WSDL_CONCETTUALE)) {
- as.setByteWsdlConcettuale(wsdlBytes);
- }
- if (tipoParam.equals(AccordiServizioParteComuneCostanti.PARAMETRO_APC_WSDL_EROGATORE)) {
- as.setByteWsdlLogicoErogatore(wsdlBytes);
- }
- if (tipoParam.equals(AccordiServizioParteComuneCostanti.PARAMETRO_APC_WSDL_FRUITORE)) {
- as.setByteWsdlLogicoFruitore(wsdlBytes);
- }
- if (tipoParam.equals(AccordiServizioParteComuneCostanti.PARAMETRO_APC_SPECIFICA_CONVERSAZIONE_CONCETTUALE)) {
- as.setByteSpecificaConversazioneConcettuale(wsdlBytes);
- }
- if (tipoParam.equals(AccordiServizioParteComuneCostanti.PARAMETRO_APC_SPECIFICA_CONVERSAZIONE_EROGATORE)) {
- as.setByteSpecificaConversazioneErogatore(wsdlBytes);
- }
- if (tipoParam.equals(AccordiServizioParteComuneCostanti.PARAMETRO_APC_SPECIFICA_CONVERSAZIONE_FRUITORE)) {
- as.setByteSpecificaConversazioneFruitore(wsdlBytes);
- }
- }
- }
- // Se un utente ha impostato solo il logico erogatore (avviene automaticamente nel caso non venga visualizzato il campo concettuale)
- // imposto lo stesso wsdl anche per il concettuale. Tanto Rappresenta la stessa informazione, ma e' utile per lo stato dell'accordo
- if(as!=null && as.getByteWsdlLogicoErogatore()!=null && as.getByteWsdlLogicoFruitore()==null && as.getByteWsdlConcettuale()==null){
- as.setByteWsdlConcettuale(as.getByteWsdlLogicoErogatore());
- }
- }
- }