ProprietaErroreApplicativo.java

  1. /*
  2.  * GovWay - A customizable API Gateway
  3.  * https://govway.org
  4.  *
  5.  * Copyright (c) 2005-2025 Link.it srl (https://link.it).
  6.  *
  7.  * This program is free software: you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License version 3, as published by
  9.  * the Free Software Foundation.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  *
  19.  */



  20. package org.openspcoop2.protocol.sdk.builder;

  21. import org.openspcoop2.protocol.sdk.IProtocolFactory;
  22. import org.openspcoop2.protocol.sdk.ProtocolException;
  23. import org.openspcoop2.protocol.sdk.constants.CodiceErroreIntegrazione;
  24. import org.openspcoop2.protocol.sdk.constants.CostantiProtocollo;
  25. import org.openspcoop2.protocol.sdk.constants.ErroreIntegrazione;



  26. /**
  27.  * Classe utilizzata per raccogliere le informazioni sul tipo di errore applicativo desiderato.
  28.  *
  29.  *
  30.  * @author Poli Andrea (apoli@link.it)
  31.  * @author $Author$
  32.  * @version $Rev$, $Date$
  33.  */


  34. public class ProprietaErroreApplicativo implements java.io.Serializable {

  35.     /**
  36.      * serialVersionUID
  37.      */
  38.     private static final long serialVersionUID = 1L;

  39.     /* ********  F I E L D S  P R I V A T I  ******** */

  40.     /** Indicazione se il msg di Errore Applicativo deve essere costruito come un SOAPFault(false)
  41.      *                    o come un msg di errore applicativo (true). */
  42.     private boolean faultAsXML;
  43.     /** Eventuale defaultFaultCodeIntegrationNamespace */
  44.     private String defaultFaultCodeIntegrationNamespace;
  45.     /** Eventuale defaultFaultCodeProtocolNamespace */
  46.     private String defaultFaultCodeProtocolNamespace;
  47.     /** Eventuale FaultActor. */
  48.     private String faultActor;
  49.     /** Dominio del soggetto che ha effettuato la richiesta */
  50.     private String dominio;
  51.     /** Identificativo del Modulo che genera il msg di errore Applicativo */
  52.     private String idModulo;
  53.     /** tipo di fault ritornato dall'applicazione: generic code o specifico codice di errore */
  54.     private boolean faultAsGenericCode;
  55.     /** tipo di fault ritornato dall'applicazione: prefix code */
  56.     private String faultPrefixCode;
  57.     /** Insert dell'errore applicativo come details */
  58.     private boolean insertAsDetails;
  59.     /** Descrizione se il details di OpenSPCoop deve possedere informazioni generiche o specifiche */
  60.     private Boolean informazioniGenericheDetailsOpenSPCoop;
  61.     /** Indicazione se aggiungere un detail contenente descrizione dell'errore nel SoapFaultApplicativo originale */
  62.     private boolean aggiungiDetailErroreApplicativo_SoapFaultApplicativo;
  63.     /** Indicazione se aggiungere un detail contenente descrizione dell'errore nel SoapFaultPdD originale */
  64.     private boolean aggiungiDetailErroreApplicativo_SoapFaultPdD;




  65.     /* ********  C O S T R U T T O R E  ******** */

  66.     /**
  67.      * Costruttore.
  68.      *
  69.      *
  70.      */
  71.     public ProprietaErroreApplicativo(){
  72.         // Costruttore di default.
  73.     }






  74.     /**
  75.      * Restituisce il fault code che segue determinate caratteristiche di prefix e code.
  76.      * !!Nota: da eseguire prima di un transformFaultCode!!
  77.      *
  78.      * @param errore Errore Integrazione
  79.      * @param protocolFactory Protocol Factory
  80.      * @return Restituisce il msg che segue determinate caratteristiche di generalita'.
  81.      * @throws ProtocolException
  82.      *
  83.      */
  84.     public String transformFaultMsg(ErroreIntegrazione errore,IProtocolFactory<?> protocolFactory) throws ProtocolException{

  85.         CodiceErroreIntegrazione code = errore.getCodiceErrore();
  86.         if(this.faultAsGenericCode){
  87.             if( code.getCodice() >= 450 &&
  88.                     code.getCodice() != CodiceErroreIntegrazione.CODICE_516_CONNETTORE_UTILIZZO_CON_ERRORE.getCodice() &&
  89.                     code.getCodice() != CodiceErroreIntegrazione.CODICE_517_RISPOSTA_RICHIESTA_NON_RITORNATA.getCodice() &&
  90.                     code.getCodice() != CodiceErroreIntegrazione.CODICE_518_RISPOSTA_RICHIESTA_RITORNATA_COME_FAULT.getCodice() &&
  91.                     code.getCodice() != CodiceErroreIntegrazione.CODICE_559_RICEVUTA_RISPOSTA_CON_ERRORE_TRASPORTO.getCodice() &&
  92.                     code.getCodice() != CodiceErroreIntegrazione.CODICE_543_HANDLER_OUT_REQUEST.getCodice() &&  
  93.                     code.getCodice() != CodiceErroreIntegrazione.CODICE_544_HANDLER_IN_RESPONSE.getCodice() &&  
  94.                     code.getCodice() != CodiceErroreIntegrazione.CODICE_558_HANDLER_IN_PROTOCOL_REQUEST.getCodice() &&  
  95.                     code.getCodice() != CodiceErroreIntegrazione.CODICE_550_PD_SERVICE_NOT_ACTIVE.getCodice() &&
  96.                     code.getCodice() != CodiceErroreIntegrazione.CODICE_551_PA_SERVICE_NOT_ACTIVE.getCodice() &&
  97.                     code.getCodice() != CodiceErroreIntegrazione.CODICE_552_IM_SERVICE_NOT_ACTIVE.getCodice()
  98.                     ) {
  99.                 return CostantiProtocollo.SISTEMA_NON_DISPONIBILE;
  100.             }
  101.         }

  102.         return new String(errore.getDescrizione(protocolFactory));

  103.     }






  104.     /* ********  S E T T E R   ******** */
  105.     /**
  106.      * Indicazione se il msg di Errore Applicativo deve essere costruito come un SOAPFault(false)
  107.      *                    o come un msg di errore applicativo (true).
  108.      *
  109.      * @param faultAsXML Indicazione se il msg di Errore Applicativo deve essere costruito come un SOAPFault(false)
  110.      *                    o come un msg di errore applicativo (true).
  111.      *
  112.      */
  113.     public void setFaultAsXML(boolean faultAsXML) {
  114.         this.faultAsXML = faultAsXML;
  115.     }
  116.     public void setDefaultFaultCodeIntegrationNamespace(String defaultFaultCodeIntegrationNamespace) {
  117.         this.defaultFaultCodeIntegrationNamespace = defaultFaultCodeIntegrationNamespace;
  118.     }
  119.     public void setDefaultFaultCodeProtocolNamespace(String defaultFaultCodeProtocolNamespace) {
  120.         this.defaultFaultCodeProtocolNamespace = defaultFaultCodeProtocolNamespace;
  121.     }
  122.     /**
  123.      * Eventuale FaultActor
  124.      *
  125.      * @param faultActor Eventuale FaultActor
  126.      *
  127.      */
  128.     public void setFaultActor(String faultActor) {
  129.         this.faultActor = faultActor;
  130.     }
  131.     /**
  132.      * Dominio del soggetto che ha effettuato la richiesta
  133.      *
  134.      * @param dominio Dominio del soggetto che ha effettuato la richiesta
  135.      *
  136.      */
  137.     public void setDominio(String dominio) {
  138.         this.dominio = dominio;
  139.     }
  140.     /**
  141.      * Identificativo del Modulo che genera il msg di errore Applicativo
  142.      *
  143.      * @param idModulo Identificativo del Modulo che genera il msg di errore Applicativo
  144.      *
  145.      */
  146.     public void setIdModulo(String idModulo) {
  147.         this.idModulo = idModulo;
  148.     }
  149.     /**
  150.      * Tipo di fault ritornato dall'applicazione: codice di errore generico (true) o specifico (false)
  151.      * @param faultAsGenericCode tipo di codice ritornato
  152.      */
  153.     public void setFaultAsGenericCode(boolean faultAsGenericCode) {
  154.         this.faultAsGenericCode = faultAsGenericCode;
  155.     }
  156.     /**
  157.      * Tipo di fault ritornato dall'applicazione: prefisso del FaultCode
  158.      * @param faultPrefixCode prefisso del FaultCode
  159.      */
  160.     public void setFaultPrefixCode(String faultPrefixCode) {
  161.         this.faultPrefixCode = faultPrefixCode;
  162.     }

  163.     public void setInformazioniGenericheDetailsOpenSPCoop(
  164.             Boolean informazioniGenericheDetailsOpenSPCoop) {
  165.         this.informazioniGenericheDetailsOpenSPCoop = informazioniGenericheDetailsOpenSPCoop;
  166.     }

  167.     public void setAggiungiDetailErroreApplicativo_SoapFaultApplicativo(
  168.             boolean aggiungiDetailErroreApplicativo_SoapFaultApplicativo) {
  169.         this.aggiungiDetailErroreApplicativo_SoapFaultApplicativo = aggiungiDetailErroreApplicativo_SoapFaultApplicativo;
  170.     }

  171.     public void setAggiungiDetailErroreApplicativo_SoapFaultPdD(boolean aggiungiDetailErroreApplicativo_SoapFaultPdD) {
  172.         this.aggiungiDetailErroreApplicativo_SoapFaultPdD = aggiungiDetailErroreApplicativo_SoapFaultPdD;
  173.     }




  174.     /* ********  G E T T E R   ******** */
  175.     /**
  176.      * Indicazione se il msg di Errore Applicativo deve essere costruito come un SOAPFault(false)
  177.      *                    o come un msg di errore applicativo (true).
  178.      *
  179.      * @return Indicazione se il msg di Errore Applicativo deve essere costruito come un SOAPFault(false)
  180.      *                    o come un msg di errore applicativo (true).
  181.      *
  182.      */
  183.     public boolean isFaultAsXML() {
  184.         return this.faultAsXML;
  185.     }
  186.     public String getDefaultFaultCodeIntegrationNamespace() {
  187.         return this.defaultFaultCodeIntegrationNamespace;
  188.     }
  189.     public String getDefaultFaultCodeProtocolNamespace() {
  190.         return this.defaultFaultCodeProtocolNamespace;
  191.     }
  192.     /**
  193.      * Eventuale FaultActor
  194.      *
  195.      * @return Eventuale FaultActor
  196.      *
  197.      */
  198.     public String getFaultActor() {
  199.         return this.faultActor;
  200.     }
  201.     /**
  202.      * Dominio del soggetto che ha effettuato la richiesta
  203.      *
  204.      * @return dominio Dominio del soggetto che ha effettuato la richiesta
  205.      *
  206.      */
  207.     public String getDominio() {
  208.         return this.dominio;
  209.     }
  210.     /**
  211.      * Identificativo del Modulo che genera il msg di errore Applicativo
  212.      *
  213.      * @return Identificativo del Modulo che genera il msg di errore Applicativo
  214.      *
  215.      */
  216.     public String getIdModulo() {
  217.         return this.idModulo;
  218.     }
  219.     /**
  220.      * Tipo di fault ritornato dall'applicazione: prefisso del FaultCode
  221.      * @return prefisso del FaultCode
  222.      */
  223.     public String getFaultPrefixCode() {
  224.         return this.faultPrefixCode;
  225.     }
  226.     /**
  227.      * Tipo di fault ritornato dall'applicazione: codice di errore generico (true) o specifico (false)
  228.      * @return tipo di codice ritornato
  229.      */
  230.     public boolean isFaultAsGenericCode() {
  231.         return this.faultAsGenericCode;
  232.     }

  233.     public boolean isInsertAsDetails() {
  234.         return this.insertAsDetails;
  235.     }

  236.     public void setInsertAsDetails(boolean insertAsDetails) {
  237.         this.insertAsDetails = insertAsDetails;
  238.     }

  239.     public boolean isInformazioniGenericheDetailsOpenSPCoop() {
  240.         if(this.informazioniGenericheDetailsOpenSPCoop!=null)
  241.             return this.informazioniGenericheDetailsOpenSPCoop;
  242.         else
  243.             return this.faultAsGenericCode;
  244.     }

  245.     public boolean isAggiungiDetailErroreApplicativo_SoapFaultApplicativo() {
  246.         return this.aggiungiDetailErroreApplicativo_SoapFaultApplicativo;
  247.     }

  248.     public boolean isAggiungiDetailErroreApplicativo_SoapFaultPdD() {
  249.         return this.aggiungiDetailErroreApplicativo_SoapFaultPdD;
  250.     }



  251. }