SPCoopValidazioneDocumenti.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.protocol.spcoop.validator;
import org.openspcoop2.core.registry.AccordoServizioParteComune;
import org.openspcoop2.protocol.basic.validator.ValidazioneDocumenti;
import org.openspcoop2.protocol.sdk.IProtocolFactory;
import org.openspcoop2.protocol.sdk.ProtocolException;
import org.openspcoop2.protocol.sdk.validator.ValidazioneResult;
/**
* SPCoopValidazioneDocumenti
*
* @author Poli Andrea (apoli@link.it)
* @author $Author$
* @version $Rev$, $Date$
*/
public class SPCoopValidazioneDocumenti extends ValidazioneDocumenti {
public SPCoopValidazioneDocumenti(IProtocolFactory<?> factory) throws ProtocolException {
super(factory);
}
@Override
public ValidazioneResult validaSpecificaConversazione(
AccordoServizioParteComune accordoServizioParteComune) {
String objectInEsame = null;
ValidazioneResult result = new ValidazioneResult();
result.setEsito(false);
// WSBL Concettuale
try{
objectInEsame = "[InterfacciaWSBL Concettuale] ";
byte[]wsblConcettuale = null;
if(accordoServizioParteComune.getByteSpecificaConversazioneConcettuale()!=null){
wsblConcettuale = accordoServizioParteComune.getByteSpecificaConversazioneConcettuale();
}
else if(accordoServizioParteComune.getSpecificaConversazioneConcettuale()!=null){
wsblConcettuale = this.readDocumento(accordoServizioParteComune.getSpecificaConversazioneConcettuale());
}
if(wsblConcettuale!=null){
// Verifico che sia un documento xml valido
this.xmlUtils.newDocument(wsblConcettuale);
if(it.gov.spcoop.sica.wsbl.driver.XMLUtils.isMessageBehavior(wsblConcettuale)){
throw new Exception("La specifica di conversazione concettuale non e' un documento WSBL ConceptualBehavior, ma erroneamente un documento WSBL MessageBehavior");
}
it.gov.spcoop.sica.wsbl.driver.XMLUtils.getConceptualBehavior(this.log,wsblConcettuale);
}
}catch(Exception e){
result.setMessaggioErrore(objectInEsame+" Documento non valido: "+e.getMessage());
result.setException(e);
return result;
}
// WSBL Erogatore
try{
objectInEsame = "[InterfacciaWSBL Erogatore] ";
byte[]wsblErogatore = null;
if(accordoServizioParteComune.getByteSpecificaConversazioneErogatore()!=null){
wsblErogatore = accordoServizioParteComune.getByteSpecificaConversazioneErogatore();
}
else if(accordoServizioParteComune.getSpecificaConversazioneErogatore()!=null){
wsblErogatore = this.readDocumento(accordoServizioParteComune.getSpecificaConversazioneErogatore());
}
if(wsblErogatore!=null){
// Verifico che sia un documento xml valido
this.xmlUtils.newDocument(wsblErogatore);
if(it.gov.spcoop.sica.wsbl.driver.XMLUtils.isConceptualBehavior(wsblErogatore)){
throw new Exception("La specifica di conversazione logica erogatore non e' un documento WSBL MessageBehavior, ma erroneamente un documento WSBL ConceptualBehavior");
}
it.gov.spcoop.sica.wsbl.driver.XMLUtils.getMessageBehavior(this.log,wsblErogatore);
}
}catch(Exception e){
result.setMessaggioErrore(objectInEsame+" Documento non valido: "+e.getMessage());
result.setException(e);
return result;
}
// WSBL Fruitore
try{
objectInEsame = "[InterfacciaWSBL Fruitore] ";
byte[]wsblFruitore = null;
if(accordoServizioParteComune.getByteSpecificaConversazioneFruitore()!=null){
wsblFruitore = accordoServizioParteComune.getByteSpecificaConversazioneFruitore();
}
else if(accordoServizioParteComune.getSpecificaConversazioneFruitore()!=null){
wsblFruitore = this.readDocumento(accordoServizioParteComune.getSpecificaConversazioneFruitore());
}
if(wsblFruitore!=null){
// Verifico che sia un documento xml valido
this.xmlUtils.newDocument(wsblFruitore);
if(it.gov.spcoop.sica.wsbl.driver.XMLUtils.isConceptualBehavior(wsblFruitore)){
throw new Exception("La specifica di conversazione logica fruitore non e' un documento WSBL MessageBehavior, ma erroneamente un documento WSBL ConceptualBehavior");
}
it.gov.spcoop.sica.wsbl.driver.XMLUtils.getMessageBehavior(this.log,wsblFruitore);
}
}catch(Exception e){
result.setMessaggioErrore(objectInEsame+" Documento non valido: "+e.getMessage());
result.setException(e);
return result;
}
// result
result.setEsito(true);
return result;
}
}