SPCoopTraduttore.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.spcoop.config;

  21. import java.util.Date;

  22. import org.openspcoop2.core.id.IDSoggetto;
  23. import org.openspcoop2.protocol.basic.config.BasicTraduttore;
  24. import org.openspcoop2.protocol.sdk.IProtocolFactory;
  25. import org.openspcoop2.protocol.sdk.ProtocolException;
  26. import org.openspcoop2.protocol.sdk.constants.CodiceErroreCooperazione;
  27. import org.openspcoop2.protocol.sdk.constants.ContestoCodificaEccezione;
  28. import org.openspcoop2.protocol.sdk.constants.ErroreCooperazione;
  29. import org.openspcoop2.protocol.sdk.constants.Inoltro;
  30. import org.openspcoop2.protocol.sdk.constants.LivelloRilevanza;
  31. import org.openspcoop2.protocol.sdk.constants.MessaggiFaultErroreCooperazione;
  32. import org.openspcoop2.protocol.sdk.constants.ProfiloDiCollaborazione;
  33. import org.openspcoop2.protocol.sdk.constants.SubCodiceErrore;
  34. import org.openspcoop2.protocol.sdk.constants.TipoOraRegistrazione;
  35. import org.openspcoop2.protocol.spcoop.constants.SPCoopCostanti;
  36. import org.openspcoop2.protocol.spcoop.constants.SPCoopCostantiPosizioneEccezione;
  37. import org.openspcoop2.protocol.spcoop.utils.SPCoopUtils;

  38. /**
  39.  * Classe che implementa, in base al protocollo SPCoop, l'interfaccia {@link org.openspcoop2.protocol.sdk.config.ITraduttore}
  40.  *
  41.  * @author Poli Andrea (apoli@link.it)
  42.  * @author Nardi Lorenzo (nardi@link.it)
  43.  * @author $Author$
  44.  * @version $Rev$, $Date$
  45.  */
  46. public class SPCoopTraduttore extends BasicTraduttore {


  47.     public SPCoopTraduttore(IProtocolFactory<?> protocolFactory) throws ProtocolException{
  48.         super(protocolFactory);
  49.     }

  50.     @Override
  51.     public String toString(CodiceErroreCooperazione cod) {
  52.         return toString(cod, null);
  53.     }
  54.     @Override
  55.     public String toString(CodiceErroreCooperazione cod,SubCodiceErrore subCode) {

  56.         String prefix = SPCoopCostanti.ECCEZIONE_PREFIX_CODE;

  57.         switch (cod) {

  58.         // Macro-struttura
  59.         case FORMATO_NON_CORRETTO:
  60.             return prefix+"001";
  61.         case FORMATO_INTESTAZIONE_NON_CORRETTO:
  62.             return prefix+"002";
  63.         case FORMATO_CORPO_NON_CORRETTO:
  64.         case ALLEGATI:
  65.             return prefix+"003";

  66.             // Header
  67.         case INTESTAZIONE_NON_CORRETTA:
  68.             return prefix+"100";

  69.             // Mittente
  70.         case MITTENTE:
  71.         case MITTENTE_NON_PRESENTE:
  72.         case TIPO_MITTENTE_NON_PRESENTE:
  73.         case IDPORTA_MITTENTE_NON_PRESENTE:
  74.         case INDIRIZZO_MITTENTE_NON_PRESENTE:
  75.         case MITTENTE_PRESENTE_PIU_VOLTE:
  76.         case TIPO_MITTENTE_PRESENTE_PIU_VOLTE:
  77.         case IDPORTA_MITTENTE_PRESENTE_PIU_VOLTE:
  78.         case INDIRIZZO_MITTENTE_PRESENTE_PIU_VOLTE:
  79.         case MITTENTE_NON_VALORIZZATO:
  80.         case TIPO_MITTENTE_NON_VALORIZZATO:
  81.         case IDPORTA_MITTENTE_NON_VALORIZZATO:
  82.         case INDIRIZZO_MITTENTE_NON_VALORIZZATO:
  83.         case MITTENTE_NON_VALIDO:
  84.         case TIPO_MITTENTE_NON_VALIDO:
  85.         case IDPORTA_MITTENTE_NON_VALIDO:
  86.         case INDIRIZZO_MITTENTE_NON_VALIDO:
  87.         case MITTENTE_SCONOSCIUTO:
  88.         case TIPO_MITTENTE_SCONOSCIUTO:
  89.         case IDPORTA_MITTENTE_SCONOSCIUTO:
  90.         case INDIRIZZO_MITTENTE_SCONOSCIUTO:
  91.             return prefix+"101";

  92.             // Destinatario
  93.         case DESTINATARIO:
  94.         case DESTINATARIO_NON_PRESENTE:
  95.         case TIPO_DESTINATARIO_NON_PRESENTE:
  96.         case IDPORTA_DESTINATARIO_NON_PRESENTE:
  97.         case INDIRIZZO_DESTINATARIO_NON_PRESENTE:
  98.         case DESTINATARIO_PRESENTE_PIU_VOLTE:
  99.         case TIPO_DESTINATARIO_PRESENTE_PIU_VOLTE:
  100.         case IDPORTA_DESTINATARIO_PRESENTE_PIU_VOLTE:
  101.         case INDIRIZZO_DESTINATARIO_PRESENTE_PIU_VOLTE:
  102.         case DESTINATARIO_NON_VALORIZZATO:
  103.         case TIPO_DESTINATARIO_NON_VALORIZZATO:
  104.         case IDPORTA_DESTINATARIO_NON_VALORIZZATO:
  105.         case INDIRIZZO_DESTINATARIO_NON_VALORIZZATO:
  106.         case DESTINATARIO_NON_VALIDO:
  107.         case TIPO_DESTINATARIO_NON_VALIDO:
  108.         case IDPORTA_DESTINATARIO_NON_VALIDO:
  109.         case INDIRIZZO_DESTINATARIO_NON_VALIDO:
  110.         case DESTINATARIO_SCONOSCIUTO:
  111.         case TIPO_DESTINATARIO_SCONOSCIUTO:
  112.         case IDPORTA_DESTINATARIO_SCONOSCIUTO:
  113.         case INDIRIZZO_DESTINATARIO_SCONOSCIUTO:
  114.             return prefix+"102";

  115.             // Profilo di Collaboraizone
  116.         case PROFILO_COLLABORAZIONE:
  117.         case PROFILO_COLLABORAZIONE_NON_PRESENTE:
  118.         case PROFILO_COLLABORAZIONE_PRESENTE_PIU_VOLTE:
  119.         case PROFILO_COLLABORAZIONE_NON_VALORIZZATO:
  120.         case PROFILO_COLLABORAZIONE_NON_VALIDO:
  121.         case PROFILO_COLLABORAZIONE_SCONOSCIUTO:
  122.         case SERVIZIO_CORRELATO_NON_PRESENTE:
  123.         case TIPO_SERVIZIO_CORRELATO_NON_PRESENTE:
  124.         case VERSIONE_SERVIZIO_CORRELATO_NON_PRESENTE:
  125.         case SERVIZIO_CORRELATO_PRESENTE_PIU_VOLTE:
  126.         case TIPO_SERVIZIO_CORRELATO_PRESENTE_PIU_VOLTE:
  127.         case VERSIONE_SERVIZIO_CORRELATO_PRESENTE_PIU_VOLTE:
  128.         case SERVIZIO_CORRELATO_NON_VALORIZZATO:
  129.         case TIPO_SERVIZIO_CORRELATO_NON_VALORIZZATO:
  130.         case VERSIONE_SERVIZIO_CORRELATO_NON_VALORIZZATO:
  131.         case SERVIZIO_CORRELATO_NON_VALIDO:
  132.         case TIPO_SERVIZIO_CORRELATO_NON_VALIDO:
  133.         case VERSIONE_SERVIZIO_CORRELATO_NON_VALIDO:
  134.         case SERVIZIO_CORRELATO_SCONOSCIUTO:
  135.         case TIPO_SERVIZIO_CORRELATO_SCONOSCIUTO:
  136.         case VERSIONE_SERVIZIO_CORRELATO_SCONOSCIUTO:
  137.             return prefix+"103";

  138.             // Collaborazione
  139.         case COLLABORAZIONE:
  140.         case COLLABORAZIONE_NON_PRESENTE:
  141.         case COLLABORAZIONE_PRESENTE_PIU_VOLTE:
  142.         case COLLABORAZIONE_NON_VALORIZZATA:
  143.         case COLLABORAZIONE_NON_VALIDA:
  144.         case COLLABORAZIONE_SCONOSCIUTA:
  145.             return prefix+"104";

  146.             // Servizio
  147.         case SERVIZIO:
  148.         case SERVIZIO_NON_PRESENTE:
  149.         case TIPO_SERVIZIO_NON_PRESENTE:
  150.         case VERSIONE_SERVIZIO_NON_PRESENTE:
  151.         case SERVIZIO_PRESENTE_PIU_VOLTE:
  152.         case TIPO_SERVIZIO_PRESENTE_PIU_VOLTE:
  153.         case VERSIONE_SERVIZIO_PRESENTE_PIU_VOLTE:
  154.         case SERVIZIO_NON_VALORIZZATO:
  155.         case TIPO_SERVIZIO_NON_VALORIZZATO:
  156.         case VERSIONE_SERVIZIO_NON_VALORIZZATO:
  157.         case SERVIZIO_NON_VALIDO:
  158.         case TIPO_SERVIZIO_NON_VALIDO:
  159.         case VERSIONE_SERVIZIO_NON_VALIDO:
  160.         case SERVIZIO_SCONOSCIUTO:
  161.         case TIPO_SERVIZIO_SCONOSCIUTO:
  162.         case VERSIONE_SERVIZIO_SCONOSCIUTO:
  163.             return prefix+"105";

  164.             // Azione
  165.         case AZIONE:
  166.         case AZIONE_NON_PRESENTE:
  167.         case AZIONE_PRESENTE_PIU_VOLTE:
  168.         case AZIONE_NON_VALORIZZATA:
  169.         case AZIONE_NON_VALIDA:
  170.         case AZIONE_SCONOSCIUTA:
  171.         case INVOCAZIONE_SENZA_AZIONE_NON_PERMESSA:
  172.             return prefix+"106";

  173.             // IdentificativoMessaggio non definito
  174.         case IDENTIFICATIVO_MESSAGGIO:
  175.         case IDENTIFICATIVO_MESSAGGIO_NON_PRESENTE:
  176.         case IDENTIFICATIVO_MESSAGGIO_PRESENTE_PIU_VOLTE:
  177.         case IDENTIFICATIVO_MESSAGGIO_NON_VALORIZZATO:
  178.             return prefix+"107";

  179.             // OraRegistrazione
  180.         case ORA_REGISTRAZIONE:
  181.         case ORA_REGISTRAZIONE_NON_PRESENTE:
  182.         case TIPO_ORA_REGISTRAZIONE_NON_PRESENTE:
  183.         case ORA_REGISTRAZIONE_PRESENTE_PIU_VOLTE:
  184.         case TIPO_ORA_REGISTRAZIONE_PRESENTE_PIU_VOLTE:
  185.         case ORA_REGISTRAZIONE_NON_VALORIZZATA:
  186.         case TIPO_ORA_REGISTRAZIONE_NON_VALORIZZATA:
  187.         case ORA_REGISTRAZIONE_NON_VALIDA:
  188.         case TIPO_ORA_REGISTRAZIONE_NON_VALIDA:
  189.         case ORA_REGISTRAZIONE_SCONOSCIUTA:
  190.         case TIPO_ORA_REGISTRAZIONE_SCONOSCIUTA:
  191.             return prefix+"108";

  192.             // RiferimentoMessaggio non definito
  193.         case RIFERIMENTO_MESSAGGIO:
  194.         case RIFERIMENTO_MESSAGGIO_NON_PRESENTE:
  195.         case RIFERIMENTO_MESSAGGIO_PRESENTE_PIU_VOLTE:
  196.         case RIFERIMENTO_MESSAGGIO_NON_VALORIZZATO:
  197.             return prefix+"109";

  198.             // IdentificativoMessaggio non valido
  199.         case IDENTIFICATIVO_MESSAGGIO_NON_VALIDO:
  200.         case IDENTIFICATIVO_MESSAGGIO_SCONOSCIUTO:
  201.         case IDENTIFICATIVO_MESSAGGIO_GIA_PROCESSATO:
  202.             return prefix+"110";

  203.             // RiferimentoMessaggio non valido
  204.         case RIFERIMENTO_MESSAGGIO_NON_VALIDO:
  205.         case RIFERIMENTO_MESSAGGIO_SCONOSCIUTO:
  206.         case RIFERIMENTO_MESSAGGIO_GIA_PROCESSATO:
  207.             return prefix+"111";

  208.             // OraRegistrazione
  209.         case SCADENZA:
  210.         case SCADENZA_NON_PRESENTE:
  211.         case TIPO_SCADENZA_NON_PRESENTE:
  212.         case SCADENZA_PRESENTE_PIU_VOLTE:
  213.         case TIPO_SCADENZA_PRESENTE_PIU_VOLTE:
  214.         case SCADENZA_NON_VALORIZZATA:
  215.         case TIPO_SCADENZA_NON_VALORIZZATA:
  216.         case SCADENZA_NON_VALIDA:
  217.         case TIPO_SCADENZA_NON_VALIDA:
  218.         case SCADENZA_SCONOSCIUTA:
  219.         case TIPO_SCADENZA_SCONOSCIUTA:
  220.             return prefix+"112";

  221.             // ProfiloTrasmissione
  222.         case PROFILO_TRASMISSIONE:
  223.         case PROFILO_TRASMISSIONE_FILTRO_DUPLICATI:
  224.         case PROFILO_TRASMISSIONE_CONFERMA_RICEZIONE:
  225.         case PROFILO_TRASMISSIONE_NON_PRESENTE:
  226.         case PROFILO_TRASMISSIONE_FILTRO_DUPLICATI_NON_PRESENTE:
  227.         case PROFILO_TRASMISSIONE_CONFERMA_RICEZIONE_NON_PRESENTE:
  228.         case PROFILO_TRASMISSIONE_PRESENTE_PIU_VOLTE:
  229.         case PROFILO_TRASMISSIONE_FILTRO_DUPLICATI_PRESENTE_PIU_VOLTE:
  230.         case PROFILO_TRASMISSIONE_CONFERMA_RICEZIONE_PRESENTE_PIU_VOLTE:
  231.         case PROFILO_TRASMISSIONE_NON_VALORIZZATO:
  232.         case PROFILO_TRASMISSIONE_FILTRO_DUPLICATI_NON_VALORIZZATO:
  233.         case PROFILO_TRASMISSIONE_CONFERMA_RICEZIONE_NON_VALORIZZATO:
  234.         case PROFILO_TRASMISSIONE_NON_VALIDO:
  235.         case PROFILO_TRASMISSIONE_FILTRO_DUPLICATI_NON_VALIDO:
  236.         case PROFILO_TRASMISSIONE_CONFERMA_RICEZIONE_NON_VALIDO:
  237.         case PROFILO_TRASMISSIONE_SCONOSCIUTO:
  238.         case PROFILO_TRASMISSIONE_FILTRO_DUPLICATI_SCONOSCIUTO:
  239.         case PROFILO_TRASMISSIONE_CONFERMA_RICEZIONE_SCONOSCIUTO:
  240.             return prefix+"113";

  241.             // Sequenza
  242.         case CONSEGNA_IN_ORDINE_NON_PRESENTE:
  243.         case CONSEGNA_IN_ORDINE_PRESENTE_PIU_VOLTE:
  244.         case CONSEGNA_IN_ORDINE_NON_VALORIZZATA:
  245.         case CONSEGNA_IN_ORDINE_NON_VALIDA:
  246.         case CONSEGNA_IN_ORDINE_SCONOSCIUTA:
  247.         case CONSEGNA_IN_ORDINE_FUORI_SEQUENZA:
  248.         case CONSEGNA_IN_ORDINE_TIPO_MITTENTE_NON_VALIDO:
  249.         case CONSEGNA_IN_ORDINE_MITTENTE_NON_VALIDO:
  250.         case CONSEGNA_IN_ORDINE_TIPO_DESTINATARIO_NON_VALIDO:
  251.         case CONSEGNA_IN_ORDINE_DESTINATARIO_NON_VALIDO:
  252.         case CONSEGNA_IN_ORDINE_TIPO_SERVIZIO_NON_VALIDO:
  253.         case CONSEGNA_IN_ORDINE_SERVIZIO_NON_VALIDO:
  254.         case CONSEGNA_IN_ORDINE_AZIONE_NON_VALIDA:
  255.         case CONSEGNA_IN_ORDINE_COLLABORAZIONE_IN_BUSTA_NON_CAPOSTIPITE_SCONOSCIUTA:
  256.             return prefix+"114";

  257.             // ListaRiscontri
  258.         case LISTA_RISCONTRI:
  259.         case LISTA_RISCONTRI_NON_PRESENTE:
  260.         case LISTA_RISCONTRI_PRESENTE_PIU_VOLTE:
  261.         case LISTA_RISCONTRI_NON_VALORIZZATA:
  262.         case LISTA_RISCONTRI_NON_VALIDA:
  263.         case LISTA_RISCONTRI_SCONOSCIUTA:
  264.         case RISCONTRO:
  265.         case RISCONTRO_IDENTIFICATIVO_MESSAGGIO:
  266.         case RISCONTRO_ORA_REGISTRAZIONE:
  267.         case RISCONTRO_TIPO_ORA_REGISTRAZIONE:
  268.         case RISCONTRO_NON_PRESENTE:
  269.         case RISCONTRO_IDENTIFICATIVO_MESSAGGIO_NON_PRESENTE:
  270.         case RISCONTRO_ORA_REGISTRAZIONE_NON_PRESENTE:
  271.         case RISCONTRO_TIPO_ORA_REGISTRAZIONE_NON_PRESENTE:
  272.         case RISCONTRO_PRESENTE_PIU_VOLTE:
  273.         case RISCONTRO_IDENTIFICATIVO_MESSAGGIO_PRESENTE_PIU_VOLTE:
  274.         case RISCONTRO_ORA_REGISTRAZIONE_PRESENTE_PIU_VOLTE:
  275.         case RISCONTRO_TIPO_ORA_REGISTRAZIONE_PRESENTE_PIU_VOLTE:
  276.         case RISCONTRO_NON_VALORIZZATO:
  277.         case RISCONTRO_IDENTIFICATIVO_MESSAGGIO_NON_VALORIZZATO:
  278.         case RISCONTRO_ORA_REGISTRAZIONE_NON_VALORIZZATA:
  279.         case RISCONTRO_TIPO_ORA_REGISTRAZIONE_NON_VALORIZZATO:
  280.         case RISCONTRO_NON_VALIDO:
  281.         case RISCONTRO_IDENTIFICATIVO_MESSAGGIO_NON_VALIDO:
  282.         case RISCONTRO_ORA_REGISTRAZIONE_NON_VALIDA:
  283.         case RISCONTRO_TIPO_ORA_REGISTRAZIONE_NON_VALIDO:
  284.         case RISCONTRO_SCONOSCIUTO:
  285.         case RISCONTRO_IDENTIFICATIVO_MESSAGGIO_SCONOSCIUTO:
  286.         case RISCONTRO_ORA_REGISTRAZIONE_SCONOSCIUTA:
  287.         case RISCONTRO_TIPO_ORA_REGISTRAZIONE_SCONOSCIUTO:
  288.             return prefix+"115";

  289.             // ListaTrasmissioni
  290.         case LISTA_TRASMISSIONI:
  291.         case LISTA_TRASMISSIONI_NON_PRESENTE:
  292.         case LISTA_TRASMISSIONI_PRESENTE_PIU_VOLTE:
  293.         case LISTA_TRASMISSIONI_NON_VALORIZZATA:
  294.         case LISTA_TRASMISSIONI_NON_VALIDA:
  295.         case LISTA_TRASMISSIONI_SCONOSCIUTA:
  296.         case TRASMISSIONE:
  297.         case TRASMISSIONE_TIPO_ORIGINE:
  298.         case TRASMISSIONE_ORIGINE:
  299.         case TRASMISSIONE_INDIRIZZO_ORIGINE:
  300.         case TRASMISSIONE_IDPORTA_ORIGINE:
  301.         case TRASMISSIONE_TIPO_DESTINAZIONE:
  302.         case TRASMISSIONE_DESTINAZIONE:
  303.         case TRASMISSIONE_INDIRIZZO_DESTINAZIONE:
  304.         case TRASMISSIONE_IDPORTA_DESTINAZIONE:
  305.         case TRASMISSIONE_TIPO_ORA_REGISTRAZIONE:
  306.         case TRASMISSIONE_ORA_REGISTRAZIONE:
  307.         case TRASMISSIONE_NON_PRESENTE:
  308.         case TRASMISSIONE_TIPO_ORIGINE_NON_PRESENTE:
  309.         case TRASMISSIONE_ORIGINE_NON_PRESENTE:
  310.         case TRASMISSIONE_INDIRIZZO_ORIGINE_NON_PRESENTE:
  311.         case TRASMISSIONE_IDPORTA_ORIGINE_NON_PRESENTE:
  312.         case TRASMISSIONE_TIPO_DESTINAZIONE_NON_PRESENTE:
  313.         case TRASMISSIONE_DESTINAZIONE_NON_PRESENTE:
  314.         case TRASMISSIONE_INDIRIZZO_DESTINAZIONE_NON_PRESENTE:
  315.         case TRASMISSIONE_IDPORTA_DESTINAZIONE_NON_PRESENTE:
  316.         case TRASMISSIONE_TIPO_ORA_REGISTRAZIONE_NON_PRESENTE:
  317.         case TRASMISSIONE_ORA_REGISTRAZIONE_NON_PRESENTE:
  318.         case TRASMISSIONE_PRESENTE_PIU_VOLTE:
  319.         case TRASMISSIONE_TIPO_ORIGINE_PRESENTE_PIU_VOLTE:
  320.         case TRASMISSIONE_ORIGINE_PRESENTE_PIU_VOLTE:
  321.         case TRASMISSIONE_INDIRIZZO_ORIGINE_PRESENTE_PIU_VOLTE:
  322.         case TRASMISSIONE_IDPORTA_ORIGINE_PRESENTE_PIU_VOLTE:
  323.         case TRASMISSIONE_TIPO_DESTINAZIONE_PRESENTE_PIU_VOLTE:
  324.         case TRASMISSIONE_DESTINAZIONE_PRESENTE_PIU_VOLTE:
  325.         case TRASMISSIONE_INDIRIZZO_DESTINAZIONE_PRESENTE_PIU_VOLTE:
  326.         case TRASMISSIONE_IDPORTA_DESTINAZIONE_PRESENTE_PIU_VOLTE:
  327.         case TRASMISSIONE_TIPO_ORA_REGISTRAZIONE_PRESENTE_PIU_VOLTE:
  328.         case TRASMISSIONE_ORA_REGISTRAZIONE_PRESENTE_PIU_VOLTE:
  329.         case TRASMISSIONE_NON_VALORIZZATA:
  330.         case TRASMISSIONE_TIPO_ORIGINE_NON_VALORIZZATA:
  331.         case TRASMISSIONE_ORIGINE_NON_VALORIZZATA:
  332.         case TRASMISSIONE_INDIRIZZO_ORIGINE_NON_VALORIZZATA:
  333.         case TRASMISSIONE_IDPORTA_ORIGINE_NON_VALORIZZATA:
  334.         case TRASMISSIONE_TIPO_DESTINAZIONE_NON_VALORIZZATA:
  335.         case TRASMISSIONE_DESTINAZIONE_NON_VALORIZZATA:
  336.         case TRASMISSIONE_INDIRIZZO_DESTINAZIONE_NON_VALORIZZATA:
  337.         case TRASMISSIONE_IDPORTA_DESTINAZIONE_NON_VALORIZZATA:
  338.         case TRASMISSIONE_TIPO_ORA_REGISTRAZIONE_NON_VALORIZZATA:
  339.         case TRASMISSIONE_ORA_REGISTRAZIONE_NON_VALORIZZATA:
  340.         case TRASMISSIONE_NON_VALIDA:
  341.         case TRASMISSIONE_TIPO_ORIGINE_NON_VALIDA:
  342.         case TRASMISSIONE_ORIGINE_NON_VALIDA:
  343.         case TRASMISSIONE_INDIRIZZO_ORIGINE_NON_VALIDA:
  344.         case TRASMISSIONE_IDPORTA_ORIGINE_NON_VALIDA:
  345.         case TRASMISSIONE_TIPO_DESTINAZIONE_NON_VALIDA:
  346.         case TRASMISSIONE_DESTINAZIONE_NON_VALIDA:
  347.         case TRASMISSIONE_INDIRIZZO_DESTINAZIONE_NON_VALIDA:
  348.         case TRASMISSIONE_IDPORTA_DESTINAZIONE_NON_VALIDA:
  349.         case TRASMISSIONE_TIPO_ORA_REGISTRAZIONE_NON_VALIDA:
  350.         case TRASMISSIONE_ORA_REGISTRAZIONE_NON_VALIDA:
  351.         case TRASMISSIONE_SCONOSCIUTA:
  352.         case TRASMISSIONE_TIPO_ORIGINE_SCONOSCIUTA:
  353.         case TRASMISSIONE_ORIGINE_SCONOSCIUTA:
  354.         case TRASMISSIONE_INDIRIZZO_ORIGINE_SCONOSCIUTA:
  355.         case TRASMISSIONE_IDPORTA_ORIGINE_SCONOSCIUTA:
  356.         case TRASMISSIONE_TIPO_DESTINAZIONE_SCONOSCIUTA:
  357.         case TRASMISSIONE_DESTINAZIONE_SCONOSCIUTA:
  358.         case TRASMISSIONE_INDIRIZZO_DESTINAZIONE_SCONOSCIUTA:
  359.         case TRASMISSIONE_IDPORTA_DESTINAZIONE_SCONOSCIUTA:
  360.         case TRASMISSIONE_TIPO_ORA_REGISTRAZIONE_SCONOSCIUTA:
  361.         case TRASMISSIONE_ORA_REGISTRAZIONE_SCONOSCIUTA:
  362.             return prefix+"116";

  363.             // Firma non valida
  364.         case SICUREZZA_FIRMA_INTESTAZIONE_NON_VALIDA:
  365.         case SICUREZZA_FIRMA_INTESTAZIONE_NON_PRESENTE:
  366.             return prefix+"117";    

  367.             // Allegato riferimento non valido
  368.         case ALLEGATI_RIFERIMENTO_NON_PRESENTE:
  369.         case ALLEGATI_RIFERIMENTO_NON_VALIDO:
  370.             return prefix+"118";    

  371.             // Allegato non presente
  372.         case ALLEGATO_NON_PRESENTE:
  373.             return prefix+"119";    

  374.             // Allegato non definito
  375.         case ALLEGATO_NON_DEFINITO_MANIFEST:
  376.             return prefix+"120";    

  377.             // Politiche di sicurezza
  378.         case SICUREZZA:
  379.         case SICUREZZA_CIFRATURA_NON_PRESENTE:
  380.         case SICUREZZA_CIFRATURA_NON_VALIDA:
  381.         case SICUREZZA_CIFRATURA_ALLEGATO_NON_PRESENTE:
  382.         case SICUREZZA_CIFRATURA_ALLEGATO_NON_VALIDA:
  383.         case SICUREZZA_NON_PRESENTE:
  384.             return prefix+"200";    

  385.             // Mittente non autorizzato
  386.         case SICUREZZA_AUTORIZZAZIONE_FALLITA:
  387.         case SICUREZZA_FALSIFICAZIONE_MITTENTE:
  388.             return prefix+"201";    

  389.             // Firma XML non valida
  390.         case SICUREZZA_FIRMA_NON_VALIDA:
  391.         case SICUREZZA_FIRMA_NON_PRESENTE:
  392.         case SICUREZZA_FIRMA_ALLEGATO_NON_VALIDA:
  393.         case SICUREZZA_FIRMA_ALLEGATO_NON_PRESENTE:
  394.             return prefix+"202";    

  395.             // Firma PKCS#7 non valida
  396.         case SICUREZZA_FIRMA_PKCS7_ALLEGATO_NON_VALIDA:
  397.         case SICUREZZA_FIRMA_PKCS7_ALLEGATO_NON_PRESENTE:
  398.             return prefix+"203";    

  399.             // Eccezione processamento
  400.         case ERRORE_GENERICO_PROCESSAMENTO_MESSAGGIO:
  401.             return prefix+"300";    

  402.             // Messaggio scaduto
  403.         case MESSAGGIO_SCADUTO:
  404.             return prefix+"301";    

  405.             // ECCEZIONE_GESTIONE_TRASPARENZA_TEMPORALE
  406.         case CONSEGNA_IN_ORDINE:
  407.             return prefix+"400";    

  408.             // ECCEZIONE_TRASPARENZA_TEMPORALE_NON_SUPPORTATA
  409.         case CONSEGNA_IN_ORDINE_NON_SUPPORTATA:
  410.             return prefix+"401";    

  411.             // ECCEZIONE_TRASPARENZA_TEMPORALE_NON_GESTIBILE
  412.         case CONSEGNA_IN_ORDINE_NON_GESTIBILE:
  413.             return prefix+"402";    

  414.         default:
  415.             return null;
  416.         }

  417.     }

  418.     @Override
  419.     public CodiceErroreCooperazione toCodiceErroreCooperazione(String codiceCooperazione) {

  420.         String prefix = SPCoopCostanti.ECCEZIONE_PREFIX_CODE;

  421.         // Macro-struttura
  422.         if( (prefix+"001").equals(codiceCooperazione)){
  423.             return CodiceErroreCooperazione.FORMATO_NON_CORRETTO;
  424.         }
  425.         else if( (prefix+"002").equals(codiceCooperazione)){
  426.             return CodiceErroreCooperazione.FORMATO_INTESTAZIONE_NON_CORRETTO;
  427.         }
  428.         else if( (prefix+"003").equals(codiceCooperazione)){
  429.             return CodiceErroreCooperazione.FORMATO_CORPO_NON_CORRETTO;
  430.         }

  431.         // Header
  432.         else if( (prefix+"100").equals(codiceCooperazione)){
  433.             return CodiceErroreCooperazione.INTESTAZIONE_NON_CORRETTA;
  434.         }

  435.         // Mittente
  436.         else if( (prefix+"101").equals(codiceCooperazione)){
  437.             return CodiceErroreCooperazione.MITTENTE;
  438.         }

  439.         // Destinatario
  440.         else if( (prefix+"102").equals(codiceCooperazione)){
  441.             return CodiceErroreCooperazione.DESTINATARIO;
  442.         }

  443.         // Profilo di Collaborazione
  444.         else if( (prefix+"103").equals(codiceCooperazione)){
  445.             return CodiceErroreCooperazione.PROFILO_COLLABORAZIONE;
  446.         }

  447.         // Collaborazione
  448.         else if( (prefix+"104").equals(codiceCooperazione)){
  449.             return CodiceErroreCooperazione.COLLABORAZIONE;
  450.         }

  451.         // Servizio
  452.         else if( (prefix+"105").equals(codiceCooperazione)){
  453.             return CodiceErroreCooperazione.SERVIZIO;
  454.         }

  455.         // Azione
  456.         else if( (prefix+"106").equals(codiceCooperazione)){
  457.             return CodiceErroreCooperazione.AZIONE;
  458.         }

  459.         // IdentificativoMessaggio non definito
  460.         else if( (prefix+"107").equals(codiceCooperazione)){
  461.             return CodiceErroreCooperazione.IDENTIFICATIVO_MESSAGGIO;
  462.         }

  463.         // OraRegistrazione
  464.         else if( (prefix+"108").equals(codiceCooperazione)){
  465.             return CodiceErroreCooperazione.ORA_REGISTRAZIONE;
  466.         }

  467.         // RiferimentoMessaggio non definito
  468.         else if( (prefix+"109").equals(codiceCooperazione)){
  469.             return CodiceErroreCooperazione.RIFERIMENTO_MESSAGGIO;
  470.         }

  471.         // IdentificativoMessaggio non valido
  472.         else if( (prefix+"110").equals(codiceCooperazione)){
  473.             return CodiceErroreCooperazione.IDENTIFICATIVO_MESSAGGIO_NON_VALIDO;
  474.         }

  475.         // RiferimentoMessaggio non valido
  476.         else if( (prefix+"111").equals(codiceCooperazione)){
  477.             return CodiceErroreCooperazione.RIFERIMENTO_MESSAGGIO_NON_VALIDO;
  478.         }

  479.         // Scadenza
  480.         else if( (prefix+"112").equals(codiceCooperazione)){
  481.             return CodiceErroreCooperazione.SCADENZA;
  482.         }

  483.         // ProfiloTrasmissione
  484.         else if( (prefix+"113").equals(codiceCooperazione)){
  485.             return CodiceErroreCooperazione.PROFILO_TRASMISSIONE;
  486.         }

  487.         // Sequenza
  488.         else if( (prefix+"114").equals(codiceCooperazione)){
  489.             return CodiceErroreCooperazione.CONSEGNA_IN_ORDINE_NON_VALIDA;
  490.         }

  491.         // ListaRiscontri
  492.         else if( (prefix+"115").equals(codiceCooperazione)){
  493.             return CodiceErroreCooperazione.LISTA_RISCONTRI;
  494.         }

  495.         // ListaTrasmissioni
  496.         else if( (prefix+"116").equals(codiceCooperazione)){
  497.             return CodiceErroreCooperazione.LISTA_TRASMISSIONI;
  498.         }

  499.         // FirmaNonValida
  500.         else if( (prefix+"117").equals(codiceCooperazione)){
  501.             return CodiceErroreCooperazione.SICUREZZA_FIRMA_INTESTAZIONE_NON_VALIDA;
  502.         }

  503.         // Allegato riferimento non valido
  504.         else if( (prefix+"118").equals(codiceCooperazione)){
  505.             return CodiceErroreCooperazione.ALLEGATI_RIFERIMENTO_NON_VALIDO;
  506.         }

  507.         // Allegato non presente
  508.         else if( (prefix+"119").equals(codiceCooperazione)){
  509.             return CodiceErroreCooperazione.ALLEGATO_NON_PRESENTE;
  510.         }

  511.         // Allegato non definito
  512.         else if( (prefix+"120").equals(codiceCooperazione)){
  513.             return CodiceErroreCooperazione.ALLEGATO_NON_DEFINITO_MANIFEST;
  514.         }

  515.         // Politiche di sicurezza
  516.         else if( (prefix+"200").equals(codiceCooperazione)){
  517.             return CodiceErroreCooperazione.SICUREZZA;
  518.         }

  519.         // Mittente non autorizzato
  520.         else if( (prefix+"201").equals(codiceCooperazione)){
  521.             return CodiceErroreCooperazione.SICUREZZA_AUTORIZZAZIONE_FALLITA;
  522.         }

  523.         // Firma non valida
  524.         else if( (prefix+"202").equals(codiceCooperazione)){
  525.             return CodiceErroreCooperazione.SICUREZZA_FIRMA_NON_VALIDA;
  526.         }  

  527.         // Firma non valida
  528.         else if( (prefix+"203").equals(codiceCooperazione)){
  529.             return CodiceErroreCooperazione.SICUREZZA_FIRMA_PKCS7_ALLEGATO_NON_VALIDA;
  530.         }      

  531.         // Eccezione processamento
  532.         else if( (prefix+"300").equals(codiceCooperazione)){
  533.             return CodiceErroreCooperazione.ERRORE_GENERICO_PROCESSAMENTO_MESSAGGIO;
  534.         }  

  535.         // MessaggioScaduto
  536.         else if( (prefix+"301").equals(codiceCooperazione)){
  537.             return CodiceErroreCooperazione.MESSAGGIO_SCADUTO;
  538.         }  

  539.         // ECCEZIONE_GESTIONE_TRASPARENZA_TEMPORALE
  540.         else if( (prefix+"400").equals(codiceCooperazione)){
  541.             return CodiceErroreCooperazione.CONSEGNA_IN_ORDINE;
  542.         }  

  543.         // ECCEZIONE_TRASPARENZA_TEMPORALE_NON_SUPPORTATA
  544.         else if( (prefix+"401").equals(codiceCooperazione)){
  545.             return CodiceErroreCooperazione.CONSEGNA_IN_ORDINE_NON_SUPPORTATA;
  546.         }  

  547.         // ECCEZIONE_TRASPARENZA_TEMPORALE_NON_GESTIBILE
  548.         else if( (prefix+"402").equals(codiceCooperazione)){
  549.             return CodiceErroreCooperazione.CONSEGNA_IN_ORDINE_NON_GESTIBILE;
  550.         }  

  551.         else{
  552.             return CodiceErroreCooperazione.UNKNOWN;
  553.         }

  554.     }

  555.     @Override
  556.     public String toString(MessaggiFaultErroreCooperazione msg){
  557.         switch (msg) {
  558.         case FAULT_STRING_PROCESSAMENTO:
  559.             return "EGOV_IT_300 - Errore nel processamento del messaggio SPCoop";
  560.         case FAULT_STRING_PROCESSAMENTO_SENZA_CODICE:
  561.             return "Errore nel processamento del messaggio SPCoop";
  562.         case FAULT_STRING_VALIDAZIONE:
  563.             return "EGOV_IT_001 - Formato Busta non corretto";
  564.         default:
  565.             return msg.toString();
  566.         }
  567.     }

  568.     @Override
  569.     public String toString(ErroreCooperazione msg){

  570.         try{

  571.             if(msg.getCodiceErrore()!=null){
  572.                 switch (msg.getCodiceErrore()) {

  573.                 case MITTENTE_SCONOSCIUTO:
  574.                 case MITTENTE_NON_VALIDO:
  575.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_MITTENTE_SCONOSCIUTO_POSIZIONE_IDENTIFICATIVO_PARTE.toString();
  576.                    
  577.                 case TIPO_MITTENTE_NON_VALIDO:
  578.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_MITTENTE_SCONOSCIUTO_POSIZIONE_IDENTIFICATIVO_PARTE_TIPO.toString();

  579.                 case DESTINATARIO_SCONOSCIUTO:
  580.                 case DESTINATARIO_NON_VALIDO:
  581.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_DESTINATARIO_SCONOSCIUTO_POSIZIONE_IDENTIFICATIVO_PARTE.toString();
  582.                    
  583.                 case TIPO_DESTINATARIO_NON_VALIDO:
  584.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_DESTINATARIO_SCONOSCIUTO_POSIZIONE_IDENTIFICATIVO_PARTE_TIPO.toString();

  585.                 case SERVIZIO_SCONOSCIUTO:
  586.                 case SERVIZIO_NON_VALIDO:
  587.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_SERVIZIO_SCONOSCIUTO_POSIZIONE.toString();
  588.                    
  589.                 case TIPO_SERVIZIO_NON_VALIDO:
  590.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_SERVIZIO_SCONOSCIUTO_POSIZIONE_TIPO.toString();

  591.                 case AZIONE_NON_VALIDA:
  592.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_AZIONE_SCONOSCIUTA_POSIZIONE.toString();
  593.                    
  594.                 case IDENTIFICATIVO_MESSAGGIO_GIA_PROCESSATO:
  595.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_ID_MESSAGGIO_NON_VALIDO_POSIZIONE.toString();

  596.                 case RIFERIMENTO_MESSAGGIO_NON_PRESENTE:
  597.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_RIFERIMENTO_MESSAGGIO_NON_DEFINITO_POSIZIONE.toString();
  598.                 case RIFERIMENTO_MESSAGGIO_NON_VALIDO:
  599.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_RIFERIMENTO_MESSAGGIO_NON_VALIDO_POSIZIONE.toString();

  600.                 case MESSAGGIO_SCADUTO:
  601.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_MESSAGGIO_SCADUTO_POSIZIONE.toString();

  602.                 case PROFILO_COLLABORAZIONE_SCONOSCIUTO:
  603.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_PROFILO_COLLABORAZIONE_SCONOSCIUTO_POSIZIONE.toString();
  604.                 case PROFILO_COLLABORAZIONE_NON_VALIDO:
  605.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_PROFILO_COLLABORAZIONE_SCONOSCIUTO_POSIZIONE.toString();

  606.                 case COLLABORAZIONE_NON_VALIDA:
  607.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_COLLABORAZIONE_SCONOSCIUTA_POSIZIONE.toString();
  608.                 case COLLABORAZIONE_SCONOSCIUTA:
  609.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_COLLABORAZIONE_SCONOSCIUTA_POSIZIONE.toString();

  610.                 case PROFILO_TRASMISSIONE_CONFERMA_RICEZIONE_NON_PRESENTE:
  611.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_PROFILO_TRASMISSIONE_NON_VALIDO_POSIZIONE_CONFERMA_RICEZIONE.toString();

  612.                 case CONSEGNA_IN_ORDINE_NON_GESTIBILE:
  613.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_SEQUENZA_NON_VALIDA_POSIZIONE.toString();
  614.                 case CONSEGNA_IN_ORDINE_FUORI_SEQUENZA:
  615.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_SEQUENZA_NON_VALIDA_POSIZIONE_NUMERO_PROGRESSIVO_BUSTA_CAPOSTIPITE.toString();
  616.                 case CONSEGNA_IN_ORDINE_TIPO_MITTENTE_NON_VALIDO:
  617.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_SEQUENZA_NON_VALIDA_POSIZIONE_TIPO_MITTENTE.toString();
  618.                 case CONSEGNA_IN_ORDINE_MITTENTE_NON_VALIDO:        
  619.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_SEQUENZA_NON_VALIDA_POSIZIONE_MITTENTE.toString();    
  620.                 case CONSEGNA_IN_ORDINE_TIPO_DESTINATARIO_NON_VALIDO:
  621.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_SEQUENZA_NON_VALIDA_POSIZIONE_TIPO_DESTINATARIO.toString();
  622.                 case CONSEGNA_IN_ORDINE_DESTINATARIO_NON_VALIDO:
  623.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_SEQUENZA_NON_VALIDA_POSIZIONE_DESTINATARIO.toString();
  624.                 case CONSEGNA_IN_ORDINE_TIPO_SERVIZIO_NON_VALIDO:
  625.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_SEQUENZA_NON_VALIDA_POSIZIONE_TIPO_SERVIZIO.toString();
  626.                 case CONSEGNA_IN_ORDINE_SERVIZIO_NON_VALIDO:
  627.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_SEQUENZA_NON_VALIDA_POSIZIONE_SERVIZIO.toString();
  628.                 case CONSEGNA_IN_ORDINE_AZIONE_NON_VALIDA:
  629.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_SEQUENZA_NON_VALIDA_POSIZIONE_AZIONE.toString();
  630.                 case CONSEGNA_IN_ORDINE_COLLABORAZIONE_IN_BUSTA_NON_CAPOSTIPITE_SCONOSCIUTA:
  631.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_SEQUENZA_NON_VALIDA_POSIZIONE_COLLABORAZIONE.toString();
  632.                 case CONSEGNA_IN_ORDINE_NON_SUPPORTATA:
  633.                     return SPCoopCostantiPosizioneEccezione.ECCEZIONE_TRASPARENZA_TEMPORALE_NON_SUPPORTATA_POSIZIONE.toString();

  634.                 case SICUREZZA:
  635.                 case SICUREZZA_CIFRATURA_ALLEGATO_NON_PRESENTE:
  636.                 case SICUREZZA_CIFRATURA_NON_PRESENTE:
  637.                 case SICUREZZA_CIFRATURA_ALLEGATO_NON_VALIDA:
  638.                 case SICUREZZA_CIFRATURA_NON_VALIDA:
  639.                 case SICUREZZA_FIRMA_ALLEGATO_NON_PRESENTE:
  640.                 case SICUREZZA_FIRMA_ALLEGATO_NON_VALIDA:
  641.                 case SICUREZZA_FIRMA_INTESTAZIONE_NON_PRESENTE:
  642.                 case SICUREZZA_FIRMA_INTESTAZIONE_NON_VALIDA:
  643.                 case SICUREZZA_FIRMA_NON_PRESENTE:
  644.                 case SICUREZZA_FIRMA_NON_VALIDA:
  645.                 case SICUREZZA_FIRMA_PKCS7_ALLEGATO_NON_PRESENTE:
  646.                 case SICUREZZA_FIRMA_PKCS7_ALLEGATO_NON_VALIDA:
  647.                 case SICUREZZA_NON_PRESENTE:
  648.                 case SICUREZZA_FALSIFICAZIONE_MITTENTE:
  649.                 case SICUREZZA_AUTORIZZAZIONE_FALLITA:
  650.                     return msg.getDescrizioneRawValue();

  651.                 case ERRORE_GENERICO_PROCESSAMENTO_MESSAGGIO:
  652.                     return msg.getDescrizioneRawValue();

  653.                 case FORMATO_NON_CORRETTO:
  654.                     return msg.getDescrizioneRawValue();
  655.                    
  656.                 default:
  657.                     return msg.getDescrizioneRawValue();
  658.                 }
  659.             }
  660.             else{
  661.                 return  msg.getDescrizioneRawValue();
  662.             }

  663.         }catch(Exception e){
  664.             this.log.error("Errore durante la trasformazione del messaggio di cooperazione: "+e.getMessage(),e);
  665.             return  msg.getDescrizioneRawValue();
  666.         }
  667.     }

  668.     @Override
  669.     public String getDate_protocolFormat() {
  670.         return getDate_protocolFormat(null);
  671.     }

  672.     @Override
  673.     public String getDate_protocolFormat(Date date) {
  674.         return SPCoopUtils.getDate_eGovFormat(date);
  675.     }

  676.     /**
  677.      * Restituisce il valore dell'identificativo porta di default per il soggetto.
  678.      * @param soggetto
  679.      * @return identificativoPortaDefault
  680.      */
  681.     @Override
  682.     public String getIdentificativoPortaDefault(IDSoggetto soggetto){
  683.         if(SPCoopCostanti.SERVIZIO_SPC.equalsIgnoreCase(soggetto.getTipo())) {
  684.             return soggetto.getNome()+"SPCoopIT";
  685.         }
  686.         else if(SPCoopCostanti.SERVIZIO_AOO.equalsIgnoreCase(soggetto.getTipo())) {
  687.             return "PDD"+soggetto.getNome();
  688.         }
  689.         else {
  690.             return soggetto.getNome()+"PdD"+soggetto.getTipo(); // aggiungo tipo per avere l'univocita'. Tipicamente i tipi diversi da SPC e AOO non esistono. TEST non e' quasi mai stato usato
  691.         }
  692.     }

  693.     @Override
  694.     public String toString(Inoltro inoltro) {
  695.         switch (inoltro) {
  696.         case CON_DUPLICATI: return SPCoopCostanti.PROFILO_TRASMISSIONE_CON_DUPLICATI;
  697.         case SENZA_DUPLICATI: return SPCoopCostanti.PROFILO_TRASMISSIONE_SENZA_DUPLICATI;
  698.         default: return SPCoopCostanti.PROFILO_TRASMISSIONE_SCONOSCIUTO;
  699.         }
  700.     }

  701.     @Override
  702.     public String toString(ProfiloDiCollaborazione profilo) {
  703.         switch (profilo) {
  704.         case ONEWAY: return SPCoopCostanti.PROFILO_COLLABORAZIONE_ONEWAY;
  705.         case SINCRONO: return SPCoopCostanti.PROFILO_COLLABORAZIONE_SINCRONO;
  706.         case ASINCRONO_SIMMETRICO: return SPCoopCostanti.PROFILO_COLLABORAZIONE_ASINCRONO_SIMMETRICO;
  707.         case ASINCRONO_ASIMMETRICO: return SPCoopCostanti.PROFILO_COLLABORAZIONE_ASINCRONO_ASIMMETRICO;
  708.         default: return SPCoopCostanti.PROFILO_COLLABORAZIONE_SCONOSCIUTO;
  709.         }
  710.     }

  711.     @Override
  712.     public String toString(TipoOraRegistrazione tipo) {
  713.         switch (tipo) {
  714.         case LOCALE: return SPCoopCostanti.TIPO_TEMPO_LOCALE;
  715.         case SINCRONIZZATO: return SPCoopCostanti.TIPO_TEMPO_SPC;
  716.         default: return SPCoopCostanti.TIPO_TEMPO_SCONOSCIUTO;
  717.         }
  718.     }

  719.     @Override
  720.     public String toString(LivelloRilevanza rilevanza) {
  721.         switch (rilevanza) {
  722.         case DEBUG: return SPCoopCostanti.ECCEZIONE_RILEVANZA_LIEVE;
  723.         case INFO: return SPCoopCostanti.ECCEZIONE_RILEVANZA_INFO;
  724.         case WARN: return SPCoopCostanti.ECCEZIONE_RILEVANZA_LIEVE;
  725.         case ERROR: return SPCoopCostanti.ECCEZIONE_RILEVANZA_GRAVE;
  726.         case FATAL: return SPCoopCostanti.ECCEZIONE_RILEVANZA_GRAVE;
  727.         default: return SPCoopCostanti.ECCEZIONE_RILEVANZA_SCONOSCIUTO;
  728.         }
  729.     }

  730.     @Override
  731.     public LivelloRilevanza toLivelloRilevanza(String livelloRilevanza) {
  732.         if(livelloRilevanza==null) return LivelloRilevanza.UNKNOWN;
  733.         if(livelloRilevanza.equals(SPCoopCostanti.ECCEZIONE_RILEVANZA_LIEVE)) return LivelloRilevanza.DEBUG;
  734.         if(livelloRilevanza.equals(SPCoopCostanti.ECCEZIONE_RILEVANZA_INFO)) return LivelloRilevanza.INFO;
  735.         if(livelloRilevanza.equals(SPCoopCostanti.ECCEZIONE_RILEVANZA_GRAVE)) return LivelloRilevanza.ERROR;
  736.         return LivelloRilevanza.UNKNOWN;
  737.     }

  738.     @Override
  739.     public Inoltro toInoltro(String inoltro) {
  740.         if(inoltro == null) return Inoltro.UNKNOWN;
  741.         if(inoltro.equals(SPCoopCostanti.PROFILO_TRASMISSIONE_SENZA_DUPLICATI)) return Inoltro.SENZA_DUPLICATI;
  742.         if(inoltro.equals(SPCoopCostanti.PROFILO_TRASMISSIONE_CON_DUPLICATI)) return Inoltro.CON_DUPLICATI;
  743.         return Inoltro.UNKNOWN;
  744.     }

  745.     @Override
  746.     public TipoOraRegistrazione toTipoOraRegistrazione(String tipoOraRegistrazione) {
  747.         if(tipoOraRegistrazione == null) return TipoOraRegistrazione.UNKNOWN;
  748.         if(tipoOraRegistrazione.equals(SPCoopCostanti.TIPO_TEMPO_LOCALE)) return TipoOraRegistrazione.LOCALE;
  749.         if(tipoOraRegistrazione.equals(SPCoopCostanti.TIPO_TEMPO_SPC)) return TipoOraRegistrazione.SINCRONIZZATO;
  750.         return TipoOraRegistrazione.UNKNOWN;
  751.     }

  752.     @Override
  753.     public ProfiloDiCollaborazione toProfiloDiCollaborazione(
  754.             String profiloDiCollaborazione) {
  755.         if(profiloDiCollaborazione == null) return ProfiloDiCollaborazione.UNKNOWN;
  756.         if(profiloDiCollaborazione.equals(SPCoopCostanti.PROFILO_COLLABORAZIONE_ONEWAY)) return ProfiloDiCollaborazione.ONEWAY;
  757.         if(profiloDiCollaborazione.equals(SPCoopCostanti.PROFILO_COLLABORAZIONE_SINCRONO)) return ProfiloDiCollaborazione.SINCRONO;
  758.         if(profiloDiCollaborazione.equals(SPCoopCostanti.PROFILO_COLLABORAZIONE_ASINCRONO_SIMMETRICO)) return ProfiloDiCollaborazione.ASINCRONO_SIMMETRICO;
  759.         if(profiloDiCollaborazione.equals(SPCoopCostanti.PROFILO_COLLABORAZIONE_ASINCRONO_ASIMMETRICO)) return ProfiloDiCollaborazione.ASINCRONO_ASIMMETRICO;
  760.         return ProfiloDiCollaborazione.UNKNOWN;
  761.     }

  762.     @Override
  763.     public String toString(ContestoCodificaEccezione contesto) {
  764.         switch (contesto) {
  765.         case INTESTAZIONE:
  766.             return SPCoopCostanti.CONTESTO_CODIFICA_ECCEZIONE_VALIDAZIONE;
  767.         case PROCESSAMENTO:
  768.             return SPCoopCostanti.CONTESTO_CODIFICA_ECCEZIONE_PROCESSAMENTO;
  769.         default:
  770.             return SPCoopCostanti.CONTESTO_CODIFICA_ECCEZIONE_VALIDAZIONE;  
  771.         }
  772.     }

  773.     @Override
  774.     public ContestoCodificaEccezione toContestoCodificaEccezione(
  775.             String contestoCodificaEccezione) {
  776.         if(SPCoopCostanti.CONTESTO_CODIFICA_ECCEZIONE_VALIDAZIONE.equals(contestoCodificaEccezione)){
  777.             return ContestoCodificaEccezione.INTESTAZIONE;
  778.         }
  779.         else{
  780.             return ContestoCodificaEccezione.PROCESSAMENTO;
  781.         }
  782.     }

  783.     @Override
  784.     protected String getIdentificativoCodiceIPA_Nome(IDSoggetto idSoggetto){
  785.         String soggetto = null;
  786.         if("spc".equals(idSoggetto.getTipo())){
  787.             // standard, utilizzo solo il nome
  788.             soggetto = idSoggetto.getNome();
  789.         }else{
  790.             // non standard, utilizzo tipo/nome per avere l'univocita'
  791.             soggetto = idSoggetto.toString();
  792.         }
  793.         return soggetto;
  794.     }
  795. }