ProprietaErroreApplicativo.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.sdk.builder;
import org.openspcoop2.protocol.sdk.IProtocolFactory;
import org.openspcoop2.protocol.sdk.ProtocolException;
import org.openspcoop2.protocol.sdk.constants.CodiceErroreIntegrazione;
import org.openspcoop2.protocol.sdk.constants.CostantiProtocollo;
import org.openspcoop2.protocol.sdk.constants.ErroreIntegrazione;
/**
* Classe utilizzata per raccogliere le informazioni sul tipo di errore applicativo desiderato.
*
*
* @author Poli Andrea (apoli@link.it)
* @author $Author$
* @version $Rev$, $Date$
*/
public class ProprietaErroreApplicativo implements java.io.Serializable {
/**
* serialVersionUID
*/
private static final long serialVersionUID = 1L;
/* ******** F I E L D S P R I V A T I ******** */
/** Indicazione se il msg di Errore Applicativo deve essere costruito come un SOAPFault(false)
* o come un msg di errore applicativo (true). */
private boolean faultAsXML;
/** Eventuale defaultFaultCodeIntegrationNamespace */
private String defaultFaultCodeIntegrationNamespace;
/** Eventuale defaultFaultCodeProtocolNamespace */
private String defaultFaultCodeProtocolNamespace;
/** Eventuale FaultActor. */
private String faultActor;
/** Dominio del soggetto che ha effettuato la richiesta */
private String dominio;
/** Identificativo del Modulo che genera il msg di errore Applicativo */
private String idModulo;
/** tipo di fault ritornato dall'applicazione: generic code o specifico codice di errore */
private boolean faultAsGenericCode;
/** tipo di fault ritornato dall'applicazione: prefix code */
private String faultPrefixCode;
/** Insert dell'errore applicativo come details */
private boolean insertAsDetails;
/** Descrizione se il details di OpenSPCoop deve possedere informazioni generiche o specifiche */
private Boolean informazioniGenericheDetailsOpenSPCoop;
/** Indicazione se aggiungere un detail contenente descrizione dell'errore nel SoapFaultApplicativo originale */
private boolean aggiungiDetailErroreApplicativo_SoapFaultApplicativo;
/** Indicazione se aggiungere un detail contenente descrizione dell'errore nel SoapFaultPdD originale */
private boolean aggiungiDetailErroreApplicativo_SoapFaultPdD;
/* ******** C O S T R U T T O R E ******** */
/**
* Costruttore.
*
*
*/
public ProprietaErroreApplicativo(){
// Costruttore di default.
}
/**
* Restituisce il fault code che segue determinate caratteristiche di prefix e code.
* !!Nota: da eseguire prima di un transformFaultCode!!
*
* @param errore Errore Integrazione
* @param protocolFactory Protocol Factory
* @return Restituisce il msg che segue determinate caratteristiche di generalita'.
* @throws ProtocolException
*
*/
public String transformFaultMsg(ErroreIntegrazione errore,IProtocolFactory<?> protocolFactory) throws ProtocolException{
CodiceErroreIntegrazione code = errore.getCodiceErrore();
if(this.faultAsGenericCode){
if( code.getCodice() >= 450 &&
code.getCodice() != CodiceErroreIntegrazione.CODICE_516_CONNETTORE_UTILIZZO_CON_ERRORE.getCodice() &&
code.getCodice() != CodiceErroreIntegrazione.CODICE_517_RISPOSTA_RICHIESTA_NON_RITORNATA.getCodice() &&
code.getCodice() != CodiceErroreIntegrazione.CODICE_518_RISPOSTA_RICHIESTA_RITORNATA_COME_FAULT.getCodice() &&
code.getCodice() != CodiceErroreIntegrazione.CODICE_559_RICEVUTA_RISPOSTA_CON_ERRORE_TRASPORTO.getCodice() &&
code.getCodice() != CodiceErroreIntegrazione.CODICE_543_HANDLER_OUT_REQUEST.getCodice() &&
code.getCodice() != CodiceErroreIntegrazione.CODICE_544_HANDLER_IN_RESPONSE.getCodice() &&
code.getCodice() != CodiceErroreIntegrazione.CODICE_558_HANDLER_IN_PROTOCOL_REQUEST.getCodice() &&
code.getCodice() != CodiceErroreIntegrazione.CODICE_550_PD_SERVICE_NOT_ACTIVE.getCodice() &&
code.getCodice() != CodiceErroreIntegrazione.CODICE_551_PA_SERVICE_NOT_ACTIVE.getCodice() &&
code.getCodice() != CodiceErroreIntegrazione.CODICE_552_IM_SERVICE_NOT_ACTIVE.getCodice()
) {
return CostantiProtocollo.SISTEMA_NON_DISPONIBILE;
}
}
return new String(errore.getDescrizione(protocolFactory));
}
/* ******** S E T T E R ******** */
/**
* Indicazione se il msg di Errore Applicativo deve essere costruito come un SOAPFault(false)
* o come un msg di errore applicativo (true).
*
* @param faultAsXML Indicazione se il msg di Errore Applicativo deve essere costruito come un SOAPFault(false)
* o come un msg di errore applicativo (true).
*
*/
public void setFaultAsXML(boolean faultAsXML) {
this.faultAsXML = faultAsXML;
}
public void setDefaultFaultCodeIntegrationNamespace(String defaultFaultCodeIntegrationNamespace) {
this.defaultFaultCodeIntegrationNamespace = defaultFaultCodeIntegrationNamespace;
}
public void setDefaultFaultCodeProtocolNamespace(String defaultFaultCodeProtocolNamespace) {
this.defaultFaultCodeProtocolNamespace = defaultFaultCodeProtocolNamespace;
}
/**
* Eventuale FaultActor
*
* @param faultActor Eventuale FaultActor
*
*/
public void setFaultActor(String faultActor) {
this.faultActor = faultActor;
}
/**
* Dominio del soggetto che ha effettuato la richiesta
*
* @param dominio Dominio del soggetto che ha effettuato la richiesta
*
*/
public void setDominio(String dominio) {
this.dominio = dominio;
}
/**
* Identificativo del Modulo che genera il msg di errore Applicativo
*
* @param idModulo Identificativo del Modulo che genera il msg di errore Applicativo
*
*/
public void setIdModulo(String idModulo) {
this.idModulo = idModulo;
}
/**
* Tipo di fault ritornato dall'applicazione: codice di errore generico (true) o specifico (false)
* @param faultAsGenericCode tipo di codice ritornato
*/
public void setFaultAsGenericCode(boolean faultAsGenericCode) {
this.faultAsGenericCode = faultAsGenericCode;
}
/**
* Tipo di fault ritornato dall'applicazione: prefisso del FaultCode
* @param faultPrefixCode prefisso del FaultCode
*/
public void setFaultPrefixCode(String faultPrefixCode) {
this.faultPrefixCode = faultPrefixCode;
}
public void setInformazioniGenericheDetailsOpenSPCoop(
Boolean informazioniGenericheDetailsOpenSPCoop) {
this.informazioniGenericheDetailsOpenSPCoop = informazioniGenericheDetailsOpenSPCoop;
}
public void setAggiungiDetailErroreApplicativo_SoapFaultApplicativo(
boolean aggiungiDetailErroreApplicativo_SoapFaultApplicativo) {
this.aggiungiDetailErroreApplicativo_SoapFaultApplicativo = aggiungiDetailErroreApplicativo_SoapFaultApplicativo;
}
public void setAggiungiDetailErroreApplicativo_SoapFaultPdD(boolean aggiungiDetailErroreApplicativo_SoapFaultPdD) {
this.aggiungiDetailErroreApplicativo_SoapFaultPdD = aggiungiDetailErroreApplicativo_SoapFaultPdD;
}
/* ******** G E T T E R ******** */
/**
* Indicazione se il msg di Errore Applicativo deve essere costruito come un SOAPFault(false)
* o come un msg di errore applicativo (true).
*
* @return Indicazione se il msg di Errore Applicativo deve essere costruito come un SOAPFault(false)
* o come un msg di errore applicativo (true).
*
*/
public boolean isFaultAsXML() {
return this.faultAsXML;
}
public String getDefaultFaultCodeIntegrationNamespace() {
return this.defaultFaultCodeIntegrationNamespace;
}
public String getDefaultFaultCodeProtocolNamespace() {
return this.defaultFaultCodeProtocolNamespace;
}
/**
* Eventuale FaultActor
*
* @return Eventuale FaultActor
*
*/
public String getFaultActor() {
return this.faultActor;
}
/**
* Dominio del soggetto che ha effettuato la richiesta
*
* @return dominio Dominio del soggetto che ha effettuato la richiesta
*
*/
public String getDominio() {
return this.dominio;
}
/**
* Identificativo del Modulo che genera il msg di errore Applicativo
*
* @return Identificativo del Modulo che genera il msg di errore Applicativo
*
*/
public String getIdModulo() {
return this.idModulo;
}
/**
* Tipo di fault ritornato dall'applicazione: prefisso del FaultCode
* @return prefisso del FaultCode
*/
public String getFaultPrefixCode() {
return this.faultPrefixCode;
}
/**
* Tipo di fault ritornato dall'applicazione: codice di errore generico (true) o specifico (false)
* @return tipo di codice ritornato
*/
public boolean isFaultAsGenericCode() {
return this.faultAsGenericCode;
}
public boolean isInsertAsDetails() {
return this.insertAsDetails;
}
public void setInsertAsDetails(boolean insertAsDetails) {
this.insertAsDetails = insertAsDetails;
}
public boolean isInformazioniGenericheDetailsOpenSPCoop() {
if(this.informazioniGenericheDetailsOpenSPCoop!=null)
return this.informazioniGenericheDetailsOpenSPCoop;
else
return this.faultAsGenericCode;
}
public boolean isAggiungiDetailErroreApplicativo_SoapFaultApplicativo() {
return this.aggiungiDetailErroreApplicativo_SoapFaultApplicativo;
}
public boolean isAggiungiDetailErroreApplicativo_SoapFaultPdD() {
return this.aggiungiDetailErroreApplicativo_SoapFaultPdD;
}
}