XMLUtils.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 it.gov.spcoop.sica.manifest.driver;
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.InputStream;
- import java.io.OutputStream;
- import org.slf4j.Logger;
- import org.openspcoop2.utils.xml.JaxbUtils;
- import org.openspcoop2.utils.xml.ValidatoreXSD;
- import it.gov.spcoop.sica.manifest.AccordoCooperazione;
- import it.gov.spcoop.sica.manifest.AccordoServizio;
- import it.gov.spcoop.sica.manifest.AccordoServizioParteComune;
- import it.gov.spcoop.sica.manifest.AccordoServizioParteSpecifica;
- import it.gov.spcoop.sica.manifest.DocumentoCoordinamento;
- import it.gov.spcoop.sica.manifest.DocumentoLivelloServizio;
- import it.gov.spcoop.sica.manifest.DocumentoSemiformale;
- import it.gov.spcoop.sica.manifest.DocumentoSicurezza;
- import it.gov.spcoop.sica.manifest.ServizioComposto;
- import it.gov.spcoop.sica.manifest.SpecificaCoordinamento;
- import it.gov.spcoop.sica.manifest.SpecificaLivelliServizio;
- import it.gov.spcoop.sica.manifest.SpecificaSicurezza;
- /**
- * Classe utilizzata per lavorare sui manifest inseriti all'interno di un package di un accordo di servizio o di cooperazione
- *
- *
- * @author Poli Andrea (apoli@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class XMLUtils {
-
- /** Validatore XSD */
- static ValidatoreXSD validatoreXSD = null;
- public static synchronized ValidatoreXSD getValidatoreXSD(Logger log) throws Exception{
- if(XMLUtils.validatoreXSD==null){
- XMLUtils.validatoreXSD = new ValidatoreXSD(log,XMLUtils.class.getResourceAsStream("/ManifestPackageSICA_originale.xsd"));
- }
- return XMLUtils.validatoreXSD;
- }
- public static boolean validateManifestoAS(AccordoServizio manifestoAS,StringBuilder motivoErroreValidazione,boolean includiInfoRegistroGenerale,boolean lunghezzaNomeAccordoLimitata){
-
- int size = motivoErroreValidazione.length();
-
- // Vincoli ManifestoAccordo
- if(manifestoAS.getDescrizione()==null){
- motivoErroreValidazione.append("Descrizione non fornita\n");
- }
- if(manifestoAS.getNome()==null){
- motivoErroreValidazione.append("Nome non fornito\n");
- }else if(lunghezzaNomeAccordoLimitata && manifestoAS.getNome().length()>Costanti.LUNGHEZZA_MAX_NOME_ACCORDO){
- motivoErroreValidazione.append("Nome fornito ["+manifestoAS.getNome()+"] supera il numero di caratteri consentiti: "+Costanti.LUNGHEZZA_MAX_NOME_ACCORDO+"\n");
- }
-
- if(manifestoAS.getDataCreazione()==null){
- motivoErroreValidazione.append("DataCreazione non fornita\n");
- }
- if(manifestoAS.getAllegati()!=null){
- for(int i=0; i<manifestoAS.getAllegati().sizeGenericoDocumentoList(); i++){
- if(manifestoAS.getAllegati().getGenericoDocumento(i)==null){
- motivoErroreValidazione.append("Allegato["+i+"] senza la definizione del documento\n");
- }
- }
- }
- if(manifestoAS.getSpecificaSemiformale()!=null){
- for(int i=0; i<manifestoAS.getSpecificaSemiformale().sizeDocumentoSemiformaleList(); i++){
- DocumentoSemiformale ss = manifestoAS.getSpecificaSemiformale().getDocumentoSemiformale(i);
- if(ss.getBase()==null){
- motivoErroreValidazione.append("SpecificaSemiformale["+i+"] senza la location del documento semiformale\n");
- }
- if(ss.getTipo()==null){
- motivoErroreValidazione.append("SpecificaSemiformale["+i+"] senza il tipo del documento semiformale\n");
- }else{
- if(TipiDocumentoSemiformale.HTML.toString().equals(ss.getTipo())==false &&
- TipiDocumentoSemiformale.UML.toString().equals(ss.getTipo())==false &&
- TipiDocumentoSemiformale.XML.toString().equals(ss.getTipo())==false &&
- TipiDocumentoSemiformale.LINGUAGGIO_NATURALE.toString().equals(ss.getTipo())==false ){
- motivoErroreValidazione.append("SpecificaSemiformale["+i+"] con tipo del documento semiformale["+ss.getTipo()+"] diverso dai tipi accettati:"+
- TipiDocumentoSemiformale.HTML.toString()+","+
- TipiDocumentoSemiformale.UML.toString()+","+
- TipiDocumentoSemiformale.XML.toString()+","+
- TipiDocumentoSemiformale.LINGUAGGIO_NATURALE.toString()+","+"\n");
- }
- }
- }
- }
-
- if(manifestoAS.getParteComune()!=null && manifestoAS.getParteSpecifica()!=null){
- motivoErroreValidazione.append("Definita sia una parte comune che una parte specifica\n");
- }else if(manifestoAS.getParteComune()!=null){
- AccordoServizioParteComune parteComune = manifestoAS.getParteComune();
- if(includiInfoRegistroGenerale){
- if(parteComune.getPubblicatore()==null){
- motivoErroreValidazione.append("Pubblicatore non definito\n");
- }
- }
- if(parteComune.getSpecificaInterfaccia()==null){
- motivoErroreValidazione.append("SpecificaInterfaccia non definita\n");
- }else{
- if(parteComune.getSpecificaInterfaccia().getInterfacciaConcettuale()==null){
- motivoErroreValidazione.append("SpecificaInterfacciaConcettuale non definita\n");
- }else{
- if(parteComune.getSpecificaInterfaccia().getInterfacciaConcettuale().getBase()==null){
- motivoErroreValidazione.append("contenuto SpecificaInterfacciaConcettuale non definito\n");
- }
- if(parteComune.getSpecificaInterfaccia().getInterfacciaConcettuale().getTipo()!=null &&
- TipiDocumentoInterfaccia.WSDL.toString().equals(parteComune.getSpecificaInterfaccia().getInterfacciaConcettuale().getTipo().name())==false){
- motivoErroreValidazione.append("tipo SpecificaInterfacciaConcettuale diverso da "+TipiDocumentoInterfaccia.WSDL.toString()+"\n");
- }
- }
- if(parteComune.getSpecificaInterfaccia().getInterfacciaLogicaLatoErogatore()==null){
- motivoErroreValidazione.append("SpecificaInterfacciaLogicaLatoErogatore non definita\n");
- }else{
- if(parteComune.getSpecificaInterfaccia().getInterfacciaLogicaLatoErogatore().getBase()==null){
- motivoErroreValidazione.append("contenuto SpecificaInterfacciaLogicaLatoErogatore non definito\n");
- }
- if(parteComune.getSpecificaInterfaccia().getInterfacciaLogicaLatoErogatore().getTipo()!=null &&
- TipiDocumentoInterfaccia.WSDL.toString().equals(parteComune.getSpecificaInterfaccia().getInterfacciaLogicaLatoErogatore().getTipo().name())==false){
- motivoErroreValidazione.append("tipo SpecificaInterfacciaLogicaLatoErogatore diverso da "+TipiDocumentoInterfaccia.WSDL.toString()+"\n");
- }
- }
- if(parteComune.getSpecificaInterfaccia().getInterfacciaLogicaLatoFruitore()!=null){
- if(parteComune.getSpecificaInterfaccia().getInterfacciaLogicaLatoFruitore().getBase()==null){
- motivoErroreValidazione.append("contenuto SpecificaInterfacciaLogicaLatoFruitore non definito\n");
- }
- if(parteComune.getSpecificaInterfaccia().getInterfacciaLogicaLatoFruitore().getTipo()!=null &&
- TipiDocumentoInterfaccia.WSDL.toString().equals(parteComune.getSpecificaInterfaccia().getInterfacciaLogicaLatoFruitore().getTipo().name())==false){
- motivoErroreValidazione.append("tipo SpecificaInterfacciaLogicaLatoFruitore diverso da "+TipiDocumentoInterfaccia.WSDL.toString()+"\n");
- }
- }
- }
- if(parteComune.getSpecificaConversazione()!=null){
- if(parteComune.getSpecificaConversazione().getConversazioneConcettuale()!=null){
- if(parteComune.getSpecificaConversazione().getConversazioneConcettuale().getBase()==null){
- motivoErroreValidazione.append("contenuto ConversazioneConcettuale non definito\n");
- }
- if(parteComune.getSpecificaConversazione().getConversazioneConcettuale().getTipo()!=null &&
- TipiDocumentoConversazione.BPEL.toString().equals(parteComune.getSpecificaConversazione().getConversazioneConcettuale().getTipo().name())==false &&
- TipiDocumentoConversazione.WSBL.toString().equals(parteComune.getSpecificaConversazione().getConversazioneConcettuale().getTipo().name())==false){
- motivoErroreValidazione.append("tipo ConversazioneConcettuale diverso da "+TipiDocumentoConversazione.BPEL.toString()+"/"+TipiDocumentoConversazione.WSBL.toString()+"\n");
- }
- }
- if(parteComune.getSpecificaConversazione().getConversazioneLogicaLatoErogatore()!=null){
- if(parteComune.getSpecificaConversazione().getConversazioneLogicaLatoErogatore().getBase()==null){
- motivoErroreValidazione.append("contenuto ConversazioneLogicaLatoErogatore non definito\n");
- }
- if(parteComune.getSpecificaConversazione().getConversazioneLogicaLatoErogatore().getTipo()!=null &&
- TipiDocumentoConversazione.BPEL.toString().equals(parteComune.getSpecificaConversazione().getConversazioneLogicaLatoErogatore().getTipo().name())==false &&
- TipiDocumentoConversazione.WSBL.toString().equals(parteComune.getSpecificaConversazione().getConversazioneLogicaLatoErogatore().getTipo().name())==false){
- motivoErroreValidazione.append("tipo ConversazioneLogicaLatoErogatore diverso da "+TipiDocumentoConversazione.BPEL.toString()+"/"+TipiDocumentoConversazione.WSBL.toString()+"\n");
- }
- }
- if(parteComune.getSpecificaConversazione().getConversazioneLogicaLatoFruitore()!=null){
- if(parteComune.getSpecificaConversazione().getConversazioneLogicaLatoFruitore().getBase()==null){
- motivoErroreValidazione.append("contenuto ConversazioneLogicaLatoFruitore non definito\n");
- }
- if(parteComune.getSpecificaConversazione().getConversazioneLogicaLatoFruitore().getTipo()!=null &&
- TipiDocumentoConversazione.BPEL.toString().equals(parteComune.getSpecificaConversazione().getConversazioneLogicaLatoFruitore().getTipo().name())==false &&
- TipiDocumentoConversazione.WSBL.toString().equals(parteComune.getSpecificaConversazione().getConversazioneLogicaLatoFruitore().getTipo().name())==false){
- motivoErroreValidazione.append("tipo ConversazioneLogicaLatoFruitore diverso da "+TipiDocumentoConversazione.BPEL.toString()+"/"+TipiDocumentoConversazione.WSBL.toString()+"\n");
- }
- }
- }
-
- }else if(manifestoAS.getParteSpecifica()!=null){
- AccordoServizioParteSpecifica parteSpecifica = manifestoAS.getParteSpecifica();
- if(parteSpecifica.getAdesione()==null){
- motivoErroreValidazione.append("Adesione non definita\n");
- }
- if(includiInfoRegistroGenerale){
- if(parteSpecifica.getErogatore()==null){
- motivoErroreValidazione.append("Erogatore non definito\n");
- }
- }
- if(parteSpecifica.getRiferimentoParteComune()==null){
- motivoErroreValidazione.append("RiferimentoParteComune non definito\n");
- }
- if(parteSpecifica.getSpecificaPortiAccesso()!=null){
- if(parteSpecifica.getSpecificaPortiAccesso().getPortiAccessoErogatore()!=null){
- if(parteSpecifica.getSpecificaPortiAccesso().getPortiAccessoErogatore().getBase()==null){
- motivoErroreValidazione.append("contenuto PortiAccessoErogatore non definito\n");
- }
- if(parteSpecifica.getSpecificaPortiAccesso().getPortiAccessoErogatore().getTipo()!=null &&
- TipiDocumentoInterfaccia.WSDL.toString().equals(parteSpecifica.getSpecificaPortiAccesso().getPortiAccessoErogatore().getTipo().name())==false){
- motivoErroreValidazione.append("tipo PortiAccessoErogatore diverso da "+TipiDocumentoInterfaccia.WSDL.toString()+"\n");
- }
- }
- if(parteSpecifica.getSpecificaPortiAccesso().getPortiAccessoFruitore()!=null){
- if(parteSpecifica.getSpecificaPortiAccesso().getPortiAccessoFruitore().getBase()==null){
- motivoErroreValidazione.append("contenuto PortiAccessoFruitore non definito\n");
- }
- if(parteSpecifica.getSpecificaPortiAccesso().getPortiAccessoFruitore().getTipo()!=null &&
- TipiDocumentoInterfaccia.WSDL.toString().equals(parteSpecifica.getSpecificaPortiAccesso().getPortiAccessoFruitore().getTipo().name())==false){
- motivoErroreValidazione.append("tipo PortiAccessoFruitore diverso da "+TipiDocumentoInterfaccia.WSDL.toString()+"\n");
- }
- }
- }
- SpecificaSicurezza specificaSicurezza = parteSpecifica.getSpecificaSicurezza();
- if(specificaSicurezza!=null){
- for(int i=0; i<specificaSicurezza.sizeDocumentoSicurezzaList(); i++){
- DocumentoSicurezza docS = specificaSicurezza.getDocumentoSicurezza(i);
- if(docS.getBase()==null){
- motivoErroreValidazione.append("SpecificaSicurezza["+i+"] senza la location del documento \n");
- }
- if(docS.getTipo()==null){
- motivoErroreValidazione.append("SpecificaSicurezza["+i+"] senza il tipo del documento \n");
- }else{
- if(TipiDocumentoSicurezza.LINGUAGGIO_NATURALE.toString().equals(docS.getTipo())==false &&
- TipiDocumentoSicurezza.WSPOLICY.toString().equals(docS.getTipo())==false ){
- motivoErroreValidazione.append("SpecificaSicurezza["+i+"] con tipo del documento specificaSicurezza["+docS.getTipo()+"] diverso dai tipi accettati:"+
- TipiDocumentoSicurezza.LINGUAGGIO_NATURALE.toString()+","+TipiDocumentoSicurezza.WSPOLICY.toString()+"\n");
- }
- }
- }
- }
- SpecificaLivelliServizio specificaLivelliServizio = parteSpecifica.getSpecificaLivelliServizio();
- if(specificaSicurezza!=null){
- for(int i=0; i<specificaLivelliServizio.sizeDocumentoLivelloServizioList(); i++){
- DocumentoLivelloServizio docL = specificaLivelliServizio.getDocumentoLivelloServizio(i);
- if(docL.getBase()==null){
- motivoErroreValidazione.append("SpecificaLivelliServizio["+i+"] senza la location del documento \n");
- }
- if(docL.getTipo()==null){
- motivoErroreValidazione.append("SpecificaLivelliServizio["+i+"] senza il tipo del documento \n");
- }else{
- if(TipiDocumentoLivelloServizio.WSAGREEMENT.toString().equals(docL.getTipo())==false &&
- TipiDocumentoLivelloServizio.WSLA.toString().equals(docL.getTipo())==false ){
- motivoErroreValidazione.append("SpecificaLivelliServizio["+i+"] con tipo del documento specificaLivelliServizio["+docL.getTipo()+"] diverso dai tipi accettati:"+
- TipiDocumentoLivelloServizio.WSAGREEMENT.toString()+","+TipiDocumentoLivelloServizio.WSLA.toString()+"\n");
- }
- }
- }
- }
-
- }else{
- motivoErroreValidazione.append("Una parte comune o una parte specifica non definita\n");
- }
-
- if(motivoErroreValidazione.length()!=size)
- return false;
- else
- return true;
-
- }
- public static boolean validateManifestoAC(AccordoCooperazione manifestoAC,StringBuilder motivoErroreValidazione, boolean includiInfoRegistroGenerale,boolean lunghezzaNomeAccordoLimitata){
- int size = motivoErroreValidazione.length();
-
- // Vincoli ManifestoAccordo
- if(manifestoAC.getDescrizione()==null){
- motivoErroreValidazione.append("Descrizione non fornita\n");
- }
- if(manifestoAC.getNome()==null){
- motivoErroreValidazione.append("Nome non fornito\n");
- }else if(lunghezzaNomeAccordoLimitata && manifestoAC.getNome().length()>Costanti.LUNGHEZZA_MAX_NOME_ACCORDO){
- motivoErroreValidazione.append("Nome fornito ["+manifestoAC.getNome()+"] supera il numero di caratteri consentiti: "+Costanti.LUNGHEZZA_MAX_NOME_ACCORDO+"\n");
- }
- if(manifestoAC.getDataCreazione()==null){
- motivoErroreValidazione.append("DataCreazione non fornita\n");
- }
- if(manifestoAC.getAllegati()!=null){
- for(int i=0; i<manifestoAC.getAllegati().sizeGenericoDocumentoList(); i++){
- if(manifestoAC.getAllegati().getGenericoDocumento(i)==null){
- motivoErroreValidazione.append("Allegato["+i+"] senza la definizione del documento\n");
- }
- }
- }
- if(manifestoAC.getSpecificaSemiformale()!=null){
- for(int i=0; i<manifestoAC.getSpecificaSemiformale().sizeDocumentoSemiformaleList(); i++){
- DocumentoSemiformale ss = manifestoAC.getSpecificaSemiformale().getDocumentoSemiformale(i);
- if(ss.getBase()==null){
- motivoErroreValidazione.append("SpecificaSemiformale["+i+"] senza la location del documento semiformale\n");
- }
- if(ss.getTipo()==null){
- motivoErroreValidazione.append("SpecificaSemiformale["+i+"] senza il tipo del documento semiformale\n");
- }else{
- if(TipiDocumentoSemiformale.HTML.toString().equals(ss.getTipo())==false &&
- TipiDocumentoSemiformale.UML.toString().equals(ss.getTipo())==false &&
- TipiDocumentoSemiformale.XML.toString().equals(ss.getTipo())==false &&
- TipiDocumentoSemiformale.LINGUAGGIO_NATURALE.toString().equals(ss.getTipo())==false ){
- motivoErroreValidazione.append("SpecificaSemiformale["+i+"] con tipo del documento semiformale["+ss.getTipo()+"] diverso dai tipi accettati:"+
- TipiDocumentoSemiformale.HTML.toString()+","+
- TipiDocumentoSemiformale.UML.toString()+","+
- TipiDocumentoSemiformale.XML.toString()+","+
- TipiDocumentoSemiformale.LINGUAGGIO_NATURALE.toString()+","+"\n");
- }
- }
- }
- }
-
- if(includiInfoRegistroGenerale){
- if(manifestoAC.getCoordinatore()==null){
- motivoErroreValidazione.append("Coordinatore non definito\n");
- }
- }
- if(manifestoAC.getElencoPartecipanti()==null){
- motivoErroreValidazione.append("ElencoPartecipanti non definito\n");
- }else{
- if(manifestoAC.getElencoPartecipanti().sizePartecipanteList()<2){
- motivoErroreValidazione.append("ElencoPartecipanti <2\n");
- }else{
- for(int i=0; i<manifestoAC.getElencoPartecipanti().sizePartecipanteList(); i++){
- if(manifestoAC.getElencoPartecipanti().getPartecipante(i)==null){
- motivoErroreValidazione.append("ElencoPartecipanti["+i+"] senza il partecipante \n");
- }
- }
- }
- }
- if(includiInfoRegistroGenerale){
- if(manifestoAC.getServiziComposti()!=null){
- for(int i=0; i<manifestoAC.getServiziComposti().sizeServizioCompostoList(); i++){
- java.net.URI servComposti = manifestoAC.getServiziComposti().getServizioComposto(i);
- if(servComposti==null){
- motivoErroreValidazione.append("ElencoServiziComposti["+i+"] senza il servizio composto \n");
- }
- }
- }
- }
-
- if(motivoErroreValidazione.length()!=size)
- return false;
- else
- return true;
-
- }
- public static boolean validateManifestoSC(ServizioComposto manifestoSC,StringBuilder motivoErroreValidazione, boolean includiInfoRegistroGenerale,boolean lunghezzaNomeAccordoLimitata){
- int size = motivoErroreValidazione.length();
-
- // Vincoli ManifestoAccordo
- if(manifestoSC.getDescrizione()==null){
- motivoErroreValidazione.append("Descrizione non fornita\n");
- }
- if(manifestoSC.getNome()==null){
- motivoErroreValidazione.append("Nome non fornito\n");
- }else if(lunghezzaNomeAccordoLimitata && manifestoSC.getNome().length()>Costanti.LUNGHEZZA_MAX_NOME_ACCORDO){
- motivoErroreValidazione.append("Nome fornito ["+manifestoSC.getNome()+"] supera il numero di caratteri consentiti: "+Costanti.LUNGHEZZA_MAX_NOME_ACCORDO+"\n");
- }
- if(manifestoSC.getDataCreazione()==null){
- motivoErroreValidazione.append("DataCreazione non fornita\n");
- }
- if(manifestoSC.getAllegati()!=null){
- for(int i=0; i<manifestoSC.getAllegati().sizeGenericoDocumentoList(); i++){
- if(manifestoSC.getAllegati().getGenericoDocumento(i)==null){
- motivoErroreValidazione.append("Allegato["+i+"] senza la definizione del documento\n");
- }
- }
- }
- if(includiInfoRegistroGenerale){
- if(manifestoSC.getPubblicatore()==null){
- motivoErroreValidazione.append("Pubblicatore non definito\n");
- }
- }
- if(manifestoSC.getSpecificaSemiformale()!=null){
- for(int i=0; i<manifestoSC.getSpecificaSemiformale().sizeDocumentoSemiformaleList(); i++){
- DocumentoSemiformale ss = manifestoSC.getSpecificaSemiformale().getDocumentoSemiformale(i);
- if(ss.getBase()==null){
- motivoErroreValidazione.append("SpecificaSemiformale["+i+"] senza la location del documento semiformale\n");
- }
- if(ss.getTipo()==null){
- motivoErroreValidazione.append("SpecificaSemiformale["+i+"] senza il tipo del documento semiformale\n");
- }else{
- if(TipiDocumentoSemiformale.HTML.toString().equals(ss.getTipo())==false &&
- TipiDocumentoSemiformale.UML.toString().equals(ss.getTipo())==false &&
- TipiDocumentoSemiformale.XML.toString().equals(ss.getTipo())==false &&
- TipiDocumentoSemiformale.LINGUAGGIO_NATURALE.toString().equals(ss.getTipo())==false ){
- motivoErroreValidazione.append("SpecificaSemiformale["+i+"] con tipo del documento semiformale["+ss.getTipo()+"] diverso dai tipi accettati:"+
- TipiDocumentoSemiformale.HTML.toString()+","+
- TipiDocumentoSemiformale.UML.toString()+","+
- TipiDocumentoSemiformale.XML.toString()+","+
- TipiDocumentoSemiformale.LINGUAGGIO_NATURALE.toString()+","+"\n");
- }
- }
- }
- }
-
- if(manifestoSC.getSpecificaInterfaccia()==null){
- motivoErroreValidazione.append("SpecificaInterfaccia non definita\n");
- }else{
- if(manifestoSC.getSpecificaInterfaccia().getInterfacciaConcettuale()==null){
- motivoErroreValidazione.append("SpecificaInterfacciaConcettuale non definita\n");
- }else{
- if(manifestoSC.getSpecificaInterfaccia().getInterfacciaConcettuale().getBase()==null){
- motivoErroreValidazione.append("contenuto SpecificaInterfacciaConcettuale non definito\n");
- }
- if(manifestoSC.getSpecificaInterfaccia().getInterfacciaConcettuale().getTipo()!=null &&
- TipiDocumentoInterfaccia.WSDL.toString().equals(manifestoSC.getSpecificaInterfaccia().getInterfacciaConcettuale().getTipo().name())==false){
- motivoErroreValidazione.append("tipo SpecificaInterfacciaConcettuale diverso da "+TipiDocumentoInterfaccia.WSDL.toString()+"\n");
- }
- }
- if(manifestoSC.getSpecificaInterfaccia().getInterfacciaLogicaLatoErogatore()==null){
- motivoErroreValidazione.append("SpecificaInterfacciaLogicaLatoErogatore non definita\n");
- }else{
- if(manifestoSC.getSpecificaInterfaccia().getInterfacciaLogicaLatoErogatore().getBase()==null){
- motivoErroreValidazione.append("contenuto SpecificaInterfacciaLogicaLatoErogatore non definito\n");
- }
- if(manifestoSC.getSpecificaInterfaccia().getInterfacciaLogicaLatoErogatore().getTipo()!=null &&
- TipiDocumentoInterfaccia.WSDL.toString().equals(manifestoSC.getSpecificaInterfaccia().getInterfacciaLogicaLatoErogatore().getTipo().name())==false){
- motivoErroreValidazione.append("tipo SpecificaInterfacciaLogicaLatoErogatore diverso da "+TipiDocumentoInterfaccia.WSDL.toString()+"\n");
- }
- }
- if(manifestoSC.getSpecificaInterfaccia().getInterfacciaLogicaLatoFruitore()!=null){
- if(manifestoSC.getSpecificaInterfaccia().getInterfacciaLogicaLatoFruitore().getBase()==null){
- motivoErroreValidazione.append("contenuto SpecificaInterfacciaLogicaLatoFruitore non definito\n");
- }
- if(manifestoSC.getSpecificaInterfaccia().getInterfacciaLogicaLatoFruitore().getTipo()!=null &&
- TipiDocumentoInterfaccia.WSDL.toString().equals(manifestoSC.getSpecificaInterfaccia().getInterfacciaLogicaLatoFruitore().getTipo().name())==false){
- motivoErroreValidazione.append("tipo SpecificaInterfacciaLogicaLatoFruitore diverso da "+TipiDocumentoInterfaccia.WSDL.toString()+"\n");
- }
- }
- }
- if(manifestoSC.getSpecificaConversazione()!=null){
- if(manifestoSC.getSpecificaConversazione().getConversazioneConcettuale()!=null){
- if(manifestoSC.getSpecificaConversazione().getConversazioneConcettuale().getBase()==null){
- motivoErroreValidazione.append("contenuto ConversazioneConcettuale non definito\n");
- }
- if(manifestoSC.getSpecificaConversazione().getConversazioneConcettuale().getTipo()!=null &&
- TipiDocumentoConversazione.BPEL.toString().equals(manifestoSC.getSpecificaConversazione().getConversazioneConcettuale().getTipo().name())==false &&
- TipiDocumentoConversazione.WSBL.toString().equals(manifestoSC.getSpecificaConversazione().getConversazioneConcettuale().getTipo().name())==false){
- motivoErroreValidazione.append("tipo ConversazioneConcettuale diverso da "+TipiDocumentoConversazione.BPEL.toString()+"/"+TipiDocumentoConversazione.WSBL.toString()+"\n");
- }
- }
- if(manifestoSC.getSpecificaConversazione().getConversazioneLogicaLatoErogatore()!=null){
- if(manifestoSC.getSpecificaConversazione().getConversazioneLogicaLatoErogatore().getBase()==null){
- motivoErroreValidazione.append("contenuto ConversazioneLogicaLatoErogatore non definito\n");
- }
- if(manifestoSC.getSpecificaConversazione().getConversazioneLogicaLatoErogatore().getTipo()!=null &&
- TipiDocumentoConversazione.BPEL.toString().equals(manifestoSC.getSpecificaConversazione().getConversazioneLogicaLatoErogatore().getTipo().name())==false &&
- TipiDocumentoConversazione.WSBL.toString().equals(manifestoSC.getSpecificaConversazione().getConversazioneLogicaLatoErogatore().getTipo().name())==false){
- motivoErroreValidazione.append("tipo ConversazioneLogicaLatoErogatore diverso da "+TipiDocumentoConversazione.BPEL.toString()+"/"+TipiDocumentoConversazione.WSBL.toString()+"\n");
- }
- }
- if(manifestoSC.getSpecificaConversazione().getConversazioneLogicaLatoFruitore()!=null){
- if(manifestoSC.getSpecificaConversazione().getConversazioneLogicaLatoFruitore().getBase()==null){
- motivoErroreValidazione.append("contenuto ConversazioneLogicaLatoFruitore non definito\n");
- }
- if(manifestoSC.getSpecificaConversazione().getConversazioneLogicaLatoFruitore().getTipo()!=null &&
- TipiDocumentoConversazione.BPEL.toString().equals(manifestoSC.getSpecificaConversazione().getConversazioneLogicaLatoFruitore().getTipo().name())==false &&
- TipiDocumentoConversazione.WSBL.toString().equals(manifestoSC.getSpecificaConversazione().getConversazioneLogicaLatoFruitore().getTipo().name())==false){
- motivoErroreValidazione.append("tipo ConversazioneLogicaLatoFruitore diverso da "+TipiDocumentoConversazione.BPEL.toString()+"/"+TipiDocumentoConversazione.WSBL.toString()+"\n");
- }
- }
- }
-
- if(manifestoSC.getRiferimentoAccordoCooperazione()==null){
- motivoErroreValidazione.append("RiferimentoAccordo non definito\n");
- }
-
- if(manifestoSC.getServiziComponenti()==null){
- motivoErroreValidazione.append("ElencoServiziComponenti non presente \n");
- }else{
- for(int i=0; i<manifestoSC.getServiziComponenti().sizeServizioComponenteList(); i++){
- java.net.URI servComponente = manifestoSC.getServiziComponenti().getServizioComponente(i);
- if(servComponente==null){
- motivoErroreValidazione.append("ElencoServiziComponenti["+i+"] senza il servizio componente \n");
- }
- }
- }
-
- SpecificaCoordinamento specificaCoordinamento = manifestoSC.getSpecificaCoordinamento();
- if(specificaCoordinamento!=null){
- for(int i=0; i<specificaCoordinamento.sizeDocumentoCoordinamentoList(); i++){
- DocumentoCoordinamento docC = specificaCoordinamento.getDocumentoCoordinamento(i);
- if(docC.getBase()==null){
- motivoErroreValidazione.append("SpecificaCoordinamento["+i+"] senza la location del documento \n");
- }
- if(docC.getTipo()==null){
- motivoErroreValidazione.append("SpecificaCoordinamento["+i+"] senza il tipo del documento \n");
- }else{
- if(TipiDocumentoCoordinamento.BPEL.toString().equals(docC.getTipo())==false &&
- TipiDocumentoCoordinamento.WSCDL.toString().equals(docC.getTipo())==false){
- motivoErroreValidazione.append("tipo SpecificaCoordinamento["+docC.getTipo()+"] diverso da "+TipiDocumentoCoordinamento.BPEL.toString()+"/"+TipiDocumentoCoordinamento.WSCDL.toString()+"\n");
- }
- }
- }
- }
-
- if(motivoErroreValidazione.length()!=size)
- return false;
- else
- return true;
-
- }
-
-
-
-
-
-
-
- /* ----- Unmarshall Manifest dell'accordo di servizio ----- */
-
- /**
- * Ritorna la rappresentazione java di un Manifest di un accordo di servizio
- *
- * @param m byte[]
- * @return ManifestoAS
- * @throws XMLUtilsException
- */
- public static AccordoServizio getManifestoAS(Logger log,byte[] m) throws XMLUtilsException{
- ByteArrayInputStream bin = null;
- try{
- bin = new ByteArrayInputStream(m);
- return XMLUtils.getManifestoAS(log,bin);
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }finally{
- try{
- if(bin!=null)
- bin.close();
- }catch(Exception eClose){
- // close
- }
- }
- }
-
- /**
- * Ritorna la rappresentazione java di un Manifest di un accordo di servizio
- *
- * @param m File
- * @return ManifestoAS
- * @throws XMLUtilsException
- */
- public static AccordoServizio getManifestoAS(Logger log,File m) throws XMLUtilsException{
- FileInputStream fin = null;
- try{
- fin = new FileInputStream(m);
- return XMLUtils.getManifestoAS(log,fin);
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }finally{
- try{
- if(fin!=null)
- fin.close();
- }catch(Exception eClose){
- // close
- }
- }
- }
-
- /**
- * Ritorna la rappresentazione java di un Manifest di un accordo di servizio
- *
- * @param m String
- * @return ManifestoAS
- * @throws XMLUtilsException
- */
- public static AccordoServizio getManifestoAS(Logger log,String m) throws XMLUtilsException{
- return XMLUtils.getManifestoAS(log,m.getBytes());
- }
-
- /**
- * Ritorna la rappresentazione java di un Manifest di un accordo di servizio
- *
- * @param m InputStream
- * @return ManifestoAS
- * @throws XMLUtilsException
- */
- public static AccordoServizio getManifestoAS(Logger log,InputStream m) throws XMLUtilsException{
- try{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- byte[]reads = new byte[1024];
- int letti = 0;
- while( (letti=m.read(reads)) != -1){
- bout.write(reads, 0, letti);
- }
- bout.flush();
- bout.close();
- byte [] xml = bout.toByteArray();
- ByteArrayInputStream binValidazione = new ByteArrayInputStream(xml);
- ValidatoreXSD validatoreXSD = XMLUtils.getValidatoreXSD(log);
- validatoreXSD.valida(binValidazione);
-
- ByteArrayInputStream binTrasformazione = new ByteArrayInputStream(xml);
-
- return (AccordoServizio) JaxbUtils.xmlToObj(binTrasformazione, AccordoServizio.class);
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }
- }
-
-
-
-
-
-
- /* ----- Marshall Manifest dell'accordo di servizio ----- */
- public static void generateManifestoAS(AccordoServizio manifest,boolean includiInfoRegistroGenerale,boolean lunghezzaNomeAccordoLimitata,File out) throws XMLUtilsException{
- try{
- StringBuilder risultatoValidazione = new StringBuilder();
- if(XMLUtils.validateManifestoAS(manifest, risultatoValidazione, includiInfoRegistroGenerale, lunghezzaNomeAccordoLimitata)==false){
- throw new Exception(risultatoValidazione.toString());
- }
-
- JaxbUtils.objToXml(out.getName(), AccordoServizio.class, manifest);
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }
- }
-
- public static void generateManifestoAS(AccordoServizio manifest,boolean includiInfoRegistroGenerale,boolean lunghezzaNomeAccordoLimitata,String fileName) throws XMLUtilsException{
- try{
- StringBuilder risultatoValidazione = new StringBuilder();
- if(XMLUtils.validateManifestoAS(manifest, risultatoValidazione, includiInfoRegistroGenerale,lunghezzaNomeAccordoLimitata)==false){
- throw new Exception(risultatoValidazione.toString());
- }
-
- JaxbUtils.objToXml(fileName, AccordoServizio.class, manifest);
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }
- }
-
- public static byte[] generateManifestoAS(AccordoServizio manifest, boolean includiInfoRegistroGenerale,boolean lunghezzaNomeAccordoLimitata) throws XMLUtilsException{
- try{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- XMLUtils.generateManifestoAS(manifest,includiInfoRegistroGenerale,lunghezzaNomeAccordoLimitata,bout);
- bout.flush();
- bout.close();
- return bout.toByteArray();
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }
- }
- public static void generateManifestoAS(AccordoServizio manifest,boolean includiInfoRegistroGenerale,boolean lunghezzaNomeAccordoLimitata,OutputStream out) throws XMLUtilsException{
- try{
- StringBuilder risultatoValidazione = new StringBuilder();
- if(XMLUtils.validateManifestoAS(manifest, risultatoValidazione, includiInfoRegistroGenerale,lunghezzaNomeAccordoLimitata)==false){
- throw new Exception(risultatoValidazione.toString());
- }
-
- JaxbUtils.objToXml(out, AccordoServizio.class, manifest);
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }
- }
-
-
-
-
-
-
-
- /* ----- Unmarshall Manifest dell'accordo di cooperazione ----- */
-
- /**
- * Ritorna la rappresentazione java di un Manifest di un accordo di servizio
- *
- * @param m byte[]
- * @return ManifestAC
- * @throws XMLUtilsException
- */
- public static AccordoCooperazione getManifestoAC(Logger log,byte[] m) throws XMLUtilsException{
- ByteArrayInputStream bin = null;
- try{
- bin = new ByteArrayInputStream(m);
- return XMLUtils.getManifestoAC(log,bin);
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }finally{
- try{
- if(bin!=null)
- bin.close();
- }catch(Exception eClose){
- // close
- }
- }
- }
-
- /**
- * Ritorna la rappresentazione java di un Manifest di un accordo di servizio
- *
- * @param m File
- * @return ManifestAC
- * @throws XMLUtilsException
- */
- public static AccordoCooperazione getManifestoAC(Logger log,File m) throws XMLUtilsException{
- FileInputStream fin = null;
- try{
- fin = new FileInputStream(m);
- return XMLUtils.getManifestoAC(log,fin);
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }finally{
- try{
- if(fin!=null)
- fin.close();
- }catch(Exception eClose){
- // close
- }
- }
- }
-
- /**
- * Ritorna la rappresentazione java di un Manifest di un accordo di servizio
- *
- * @param m String
- * @return ManifestAC
- * @throws XMLUtilsException
- */
- public static AccordoCooperazione getManifestoAC(Logger log,String m) throws XMLUtilsException{
- return XMLUtils.getManifestoAC(log,m.getBytes());
- }
-
- /**
- * Ritorna la rappresentazione java di un Manifest di un accordo di servizio
- *
- * @param m InputStream
- * @return ManifestAC
- * @throws XMLUtilsException
- */
- public static AccordoCooperazione getManifestoAC(Logger log,InputStream m) throws XMLUtilsException{
- try{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- byte[]reads = new byte[1024];
- int letti = 0;
- while( (letti=m.read(reads)) != -1){
- bout.write(reads, 0, letti);
- }
- bout.flush();
- bout.close();
- byte [] xml = bout.toByteArray();
- ByteArrayInputStream binValidazione = new ByteArrayInputStream(xml);
-
- ValidatoreXSD validatoreXSD = XMLUtils.getValidatoreXSD(log);
- validatoreXSD.valida(binValidazione);
-
- ByteArrayInputStream binTrasformazione = new ByteArrayInputStream(xml);
-
- return (AccordoCooperazione) JaxbUtils.xmlToObj(binTrasformazione, AccordoCooperazione.class);
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }
- }
-
-
-
-
-
-
-
- /* ----- Marshall Manifest dell'accordo di cooperazione ----- */
- public static void generateManifestoAC(AccordoCooperazione manifest,boolean includiInfoRegistroGenerale,boolean lunghezzaNomeAccordoLimitata,File out) throws XMLUtilsException{
- try{
- StringBuilder risultatoValidazione = new StringBuilder();
- if(XMLUtils.validateManifestoAC(manifest, risultatoValidazione, includiInfoRegistroGenerale, lunghezzaNomeAccordoLimitata)==false){
- throw new Exception(risultatoValidazione.toString());
- }
-
- JaxbUtils.objToXml(out.getName(), AccordoCooperazione.class, manifest);
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }
- }
-
- public static void generateManifestoAC(AccordoCooperazione manifest,boolean includiInfoRegistroGenerale,boolean lunghezzaNomeAccordoLimitata,String fileName) throws XMLUtilsException{
- try{
- StringBuilder risultatoValidazione = new StringBuilder();
- if(XMLUtils.validateManifestoAC(manifest, risultatoValidazione, includiInfoRegistroGenerale, lunghezzaNomeAccordoLimitata)==false){
- throw new Exception(risultatoValidazione.toString());
- }
-
- JaxbUtils.objToXml(fileName, AccordoCooperazione.class, manifest);
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }
- }
-
- public static byte[] generateManifestoAC(AccordoCooperazione manifest,boolean includiInfoRegistroGenerale,boolean lunghezzaNomeAccordoLimitata) throws XMLUtilsException{
- try{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- XMLUtils.generateManifestoAC(manifest,includiInfoRegistroGenerale,lunghezzaNomeAccordoLimitata,bout);
- bout.flush();
- bout.close();
- return bout.toByteArray();
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }
- }
- public static void generateManifestoAC(AccordoCooperazione manifest,boolean includiInfoRegistroGenerale,boolean lunghezzaNomeAccordoLimitata,OutputStream out) throws XMLUtilsException{
- try{
- StringBuilder risultatoValidazione = new StringBuilder();
- if(XMLUtils.validateManifestoAC(manifest, risultatoValidazione, includiInfoRegistroGenerale, lunghezzaNomeAccordoLimitata)==false){
- throw new Exception(risultatoValidazione.toString());
- }
-
- JaxbUtils.objToXml(out, AccordoCooperazione.class, manifest);
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }
- }
-
-
-
-
-
-
-
-
-
- /* ----- Unmarshall Manifest del servizio composto ----- */
-
- /**
- * Ritorna la rappresentazione java di un Manifest di un accordo di servizio
- *
- * @param m byte[]
- * @return ManifestAC
- * @throws XMLUtilsException
- */
- public static ServizioComposto getManifestoSC(Logger log,byte[] m) throws XMLUtilsException{
- ByteArrayInputStream bin = null;
- try{
- bin = new ByteArrayInputStream(m);
- return XMLUtils.getManifestoSC(log,bin);
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }finally{
- try{
- if(bin!=null)
- bin.close();
- }catch(Exception eClose){
- // close
- }
- }
- }
-
- /**
- * Ritorna la rappresentazione java di un Manifest di un accordo di servizio
- *
- * @param m File
- * @return ManifestAC
- * @throws XMLUtilsException
- */
- public static ServizioComposto getManifestoSC(Logger log,File m) throws XMLUtilsException{
- FileInputStream fin = null;
- try{
- fin = new FileInputStream(m);
- return XMLUtils.getManifestoSC(log,fin);
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }finally{
- try{
- if(fin!=null)
- fin.close();
- }catch(Exception eClose){
- // close
- }
- }
- }
-
- /**
- * Ritorna la rappresentazione java di un Manifest di un accordo di servizio
- *
- * @param m String
- * @return ManifestAC
- * @throws XMLUtilsException
- */
- public static ServizioComposto getManifestoSC(Logger log,String m) throws XMLUtilsException{
- return XMLUtils.getManifestoSC(log,m.getBytes());
- }
-
- /**
- * Ritorna la rappresentazione java di un Manifest di un accordo di servizio
- *
- * @param m InputStream
- * @return ManifestAC
- * @throws XMLUtilsException
- */
- public static ServizioComposto getManifestoSC(Logger log,InputStream m) throws XMLUtilsException{
- try{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- byte[]reads = new byte[1024];
- int letti = 0;
- while( (letti=m.read(reads)) != -1){
- bout.write(reads, 0, letti);
- }
- bout.flush();
- bout.close();
- byte [] xml = bout.toByteArray();
- ByteArrayInputStream binValidazione = new ByteArrayInputStream(xml);
-
- ValidatoreXSD validatoreXSD = XMLUtils.getValidatoreXSD(log);
- validatoreXSD.valida(binValidazione);
-
- ByteArrayInputStream binTrasformazione = new ByteArrayInputStream(xml);
-
- return (ServizioComposto) JaxbUtils.xmlToObj(binTrasformazione, ServizioComposto.class);
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }
- }
-
-
-
-
-
-
- /* ----- Marshall Manifest dell'accordo di servizio ----- */
- public static void generateManifestoSC(ServizioComposto manifest,boolean includiInfoRegistroGenerale,boolean lunghezzaNomeAccordoLimitata, File out) throws XMLUtilsException{
- try{
- StringBuilder risultatoValidazione = new StringBuilder();
- if(XMLUtils.validateManifestoSC(manifest, risultatoValidazione, includiInfoRegistroGenerale, lunghezzaNomeAccordoLimitata)==false){
- throw new Exception(risultatoValidazione.toString());
- }
-
- JaxbUtils.objToXml(out.getName(), ServizioComposto.class, manifest);
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }
- }
-
- public static void generateManifestoSC(ServizioComposto manifest,boolean includiInfoRegistroGenerale,boolean lunghezzaNomeAccordoLimitata,String fileName) throws XMLUtilsException{
- try{
- StringBuilder risultatoValidazione = new StringBuilder();
- if(XMLUtils.validateManifestoSC(manifest, risultatoValidazione, includiInfoRegistroGenerale, lunghezzaNomeAccordoLimitata)==false){
- throw new Exception(risultatoValidazione.toString());
- }
-
- JaxbUtils.objToXml(fileName, ServizioComposto.class, manifest);
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }
- }
-
- public static byte[] generateManifestoSC(ServizioComposto manifest,boolean includiInfoRegistroGenerale,boolean lunghezzaNomeAccordoLimitata) throws XMLUtilsException{
- try{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- XMLUtils.generateManifestoSC(manifest,includiInfoRegistroGenerale, lunghezzaNomeAccordoLimitata,bout);
- bout.flush();
- bout.close();
- return bout.toByteArray();
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }
- }
- public static void generateManifestoSC(ServizioComposto manifest,boolean includiInfoRegistroGenerale,boolean lunghezzaNomeAccordoLimitata,OutputStream out) throws XMLUtilsException{
- try{
- StringBuilder risultatoValidazione = new StringBuilder();
- if(XMLUtils.validateManifestoSC(manifest, risultatoValidazione, includiInfoRegistroGenerale, lunghezzaNomeAccordoLimitata)==false){
- throw new Exception(risultatoValidazione.toString());
- }
-
- JaxbUtils.objToXml(out, ServizioComposto.class, manifest);
- }catch(Exception e){
- throw new XMLUtilsException(e.getMessage(),e);
- }
- }
-
- }