Info.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.pdd.logger.filetrace;

  21. import java.net.InetAddress;
  22. import java.text.SimpleDateFormat;
  23. import java.util.ArrayList;
  24. import java.util.HashMap;
  25. import java.util.List;
  26. import java.util.Map;
  27. import java.util.Map.Entry;
  28. import java.util.Set;
  29. import java.util.TimeZone;

  30. import org.apache.commons.lang.StringUtils;
  31. import org.openspcoop2.core.commons.CoreException;
  32. import org.openspcoop2.core.id.IDAccordo;
  33. import org.openspcoop2.core.id.IDServizioApplicativo;
  34. import org.openspcoop2.core.registry.driver.IDAccordoFactory;
  35. import org.openspcoop2.core.transazioni.constants.TipoAPI;
  36. import org.openspcoop2.core.transazioni.utils.CredenzialiMittente;
  37. import org.openspcoop2.core.transazioni.utils.credenziali.CredenzialeTokenClient;
  38. import org.openspcoop2.monitor.sdk.transaction.FaseTracciamento;
  39. import org.openspcoop2.pdd.core.token.InformazioniNegoziazioneToken;
  40. import org.openspcoop2.pdd.core.token.InformazioniToken;
  41. import org.openspcoop2.pdd.core.token.TokenUtilities;
  42. import org.openspcoop2.pdd.core.token.attribute_authority.InformazioniAttributi;
  43. import org.openspcoop2.pdd.logger.LogLevels;
  44. import org.openspcoop2.pdd.logger.info.DatiEsitoTransazione;
  45. import org.openspcoop2.pdd.logger.info.DatiMittente;
  46. import org.openspcoop2.pdd.logger.info.InfoEsitoTransazioneFormatUtils;
  47. import org.openspcoop2.pdd.logger.info.InfoMittenteFormatUtils;
  48. import org.openspcoop2.protocol.engine.utils.NamingUtils;
  49. import org.openspcoop2.protocol.sdk.IProtocolFactory;
  50. import org.openspcoop2.protocol.sdk.PDNDTokenInfo;
  51. import org.openspcoop2.protocol.sdk.PDNDTokenInfoDetails;
  52. import org.openspcoop2.protocol.sdk.ProtocolException;
  53. import org.openspcoop2.protocol.sdk.SecurityToken;
  54. import org.openspcoop2.protocol.sdk.diagnostica.MsgDiagnostico;
  55. import org.openspcoop2.protocol.sdk.dump.Messaggio;
  56. import org.openspcoop2.protocol.sdk.tracciamento.Traccia;
  57. import org.openspcoop2.protocol.utils.EsitiProperties;
  58. import org.openspcoop2.utils.date.DateEngineType;
  59. import org.openspcoop2.utils.date.DateUtils;
  60. import org.openspcoop2.utils.io.Base64Utilities;
  61. import org.openspcoop2.utils.transport.TransportUtils;
  62. import org.openspcoop2.utils.transport.http.HttpConstants;
  63. import org.openspcoop2.utils.transport.http.HttpUtilities;
  64. import org.openspcoop2.utils.xml.XMLUtils;
  65. import org.slf4j.Logger;

  66. /**    
  67.  * Transaction
  68.  *
  69.  * @author Poli Andrea (poli@link.it)
  70.  * @author $Author$
  71.  * @version $Rev$, $Date$
  72.  */
  73. public class Info {
  74.    
  75.     private IProtocolFactory<?> protocolFactory;
  76.     private org.openspcoop2.core.transazioni.Transazione transazione;
  77.     private EsitiProperties esitiProperties;
  78.     private CredenzialiMittente credenzialiMittente;
  79.     private InformazioniToken informazioniToken;
  80.     private InformazioniAttributi informazioniAttributi;
  81.     private InformazioniNegoziazioneToken informazioniNegoziazioneToken;
  82.     private SecurityToken securityToken;
  83.    
  84.     private FaseTracciamento trackingPhase;
  85.    
  86.     private Traccia tracciaRichiesta;
  87.     private Traccia tracciaRisposta;
  88.    
  89.     private List<MsgDiagnostico> msgDiagnostici;
  90.    
  91.     private Messaggio richiestaIngresso;
  92.     private List<String> headerRichiestaIngressoConsumati = new ArrayList<>();
  93.    
  94.     private Messaggio richiestaUscita;
  95.     private Map<String, List<String>> headerRichiestaUscita;
  96.     private List<String> headerRichiestaUscitaConsumati = new ArrayList<>();
  97.    
  98.     private Messaggio rispostaIngresso;
  99.     private List<String> headerRispostaIngressoConsumati = new ArrayList<>();
  100.    
  101.     private Messaggio rispostaUscita;
  102.     private Map<String, List<String>> headerRispostaUscita;
  103.     private List<String> headerRispostaUscitaConsumati = new ArrayList<>();
  104.    
  105.     private InfoConfigurazione infoConfigurazione;
  106.    
  107.     private Map<String, String> escape;
  108.     private String headersSeparator;
  109.     private String headerSeparator;
  110.     private String headerPrefix;
  111.     private String headerSuffix;
  112.     private List<String> headerBlackList;
  113.     private List<String> headerWhiteList;
  114.    
  115.     private String headerMultiValueSeparator;

  116.     private String defaultValue="";
  117.     private int defaultIntegerValue=0;
  118.     private long defaultLongValue=0l;
  119.    
  120.     private Logger log;
  121.    
  122.     private boolean base64;
  123.    
  124.     private Map<String, String> properties = new HashMap<>();
  125.    
  126.     public Info(Logger log,
  127.             IProtocolFactory<?> protocolFactory,
  128.             org.openspcoop2.core.transazioni.Transazione transazione,
  129.             CredenzialiMittente credenzialiMittente,
  130.             InformazioniToken informazioniToken,
  131.             InformazioniAttributi informazioniAttributi,
  132.             InformazioniNegoziazioneToken informazioniNegoziazioneToken,
  133.             SecurityToken securityToken,
  134.             Traccia tracciaRichiesta, Traccia tracciaRisposta,
  135.             List<MsgDiagnostico> msgDiagnostici,
  136.             Messaggio richiestaIngresso,
  137.             Messaggio richiestaUscita, Map<String, List<String>> headerRichiestaUscita,
  138.             Messaggio rispostaIngresso,
  139.             Messaggio rispostaUscita, Map<String, List<String>> headerRispostaUscita,
  140.             InfoConfigurazione infoConfigurazione,
  141.             FileTraceConfig config,
  142.             FaseTracciamento trackingPhase,
  143.             boolean base64) throws ProtocolException {
  144.         this.log = log;
  145.         this.protocolFactory = protocolFactory;
  146.         this.transazione = transazione;
  147.         this.esitiProperties = EsitiProperties.getInstance(log, this.protocolFactory);
  148.         this.credenzialiMittente = credenzialiMittente;
  149.         this.informazioniToken = informazioniToken;
  150.         this.informazioniAttributi = informazioniAttributi;
  151.         this.informazioniNegoziazioneToken = informazioniNegoziazioneToken;
  152.         this.securityToken = securityToken;
  153.         this.tracciaRichiesta = tracciaRichiesta;
  154.         this.tracciaRisposta = tracciaRisposta;
  155.         this.msgDiagnostici = msgDiagnostici;
  156.         this.richiestaIngresso = richiestaIngresso;
  157.         this.richiestaUscita = richiestaUscita;
  158.         this.headerRichiestaUscita = headerRichiestaUscita;
  159.         this.rispostaIngresso = rispostaIngresso;
  160.         this.rispostaUscita = rispostaUscita;
  161.         this.headerRispostaUscita = headerRispostaUscita;
  162.         this.infoConfigurazione = infoConfigurazione;
  163.         this.escape = config.getEscape();
  164.         this.headersSeparator = config.getHeadersSeparator();
  165.         this.headerSeparator = config.getHeaderSeparator();
  166.         this.headerPrefix = config.getHeaderPrefix();
  167.         this.headerSuffix = config.getHeaderSuffix();
  168.         this.headerMultiValueSeparator = config.getHeaderMultiValueSeparator();
  169.         this.headerWhiteList = config.getHeaderWhiteList();
  170.         this.headerBlackList = config.getHeaderBlackList();
  171.         this.trackingPhase = trackingPhase;
  172.         this.base64 = base64;
  173.     }
  174.    
  175.     private String getErrorSuffix(Exception t) {
  176.         return " failed: "+t.getMessage();
  177.     }
  178.        
  179.    
  180.     // identificativi
  181.    
  182.     public java.lang.String getTransactionId() {
  183.         return getTransactionId(null);
  184.     }
  185.     public java.lang.String getTransactionId(String defaultValue) {
  186.         return correctValue(this.transazione.getIdTransazione(), defaultValue);
  187.     }
  188.    
  189.     public java.lang.String getRequestId() {
  190.         return getRequestId(null);
  191.     }
  192.     public java.lang.String getRequestId(String defaultValue) {
  193.         return correctValue(this.transazione.getIdMessaggioRichiesta(), defaultValue);
  194.     }
  195.    
  196.     public java.lang.String getResponseId() {
  197.         return getResponseId(null);
  198.     }
  199.     public java.lang.String getResponseId(String defaultValue) {
  200.         return correctValue(this.transazione.getIdMessaggioRisposta(), defaultValue);
  201.     }
  202.    
  203.     public java.lang.String getCorrelationId() {
  204.         return getCorrelationId(null);
  205.     }
  206.     public java.lang.String getCorrelationId(String defaultValue) {
  207.         return correctValue(this.transazione.getIdCollaborazione(), defaultValue);
  208.     }
  209.    
  210.     public java.lang.String getAsyncId() {
  211.         return getAsyncId(null);
  212.     }
  213.     public java.lang.String getAsyncId(String defaultValue) {
  214.         return correctValue(this.transazione.getIdAsincrono(), defaultValue);
  215.     }
  216.    
  217.     public java.lang.String getRequestApplicationId() {
  218.         return getRequestApplicationId(null);
  219.     }
  220.     public java.lang.String getRequestApplicationId(String defaultValue) {
  221.         return correctValue(this.transazione.getIdCorrelazioneApplicativa(), defaultValue);
  222.     }
  223.    
  224.     public java.lang.String getResponseApplicationId() {
  225.         return getResponseApplicationId(null);
  226.     }
  227.     public java.lang.String getResponseApplicationId(String defaultValue) {
  228.         return correctValue(this.transazione.getIdCorrelazioneApplicativaRisposta(), defaultValue);
  229.     }
  230.    
  231.     public java.lang.String getApplicationId() {
  232.         return getApplicationId(null);
  233.     }
  234.     public java.lang.String getApplicationId(String defaultValue) {
  235.         String s = null;
  236.         if(this.transazione.getIdCorrelazioneApplicativa()!=null) {
  237.             s = this.transazione.getIdCorrelazioneApplicativa();
  238.         }
  239.         if(this.transazione.getIdCorrelazioneApplicativaRisposta()!=null) {
  240.             if(s==null) {
  241.                 s = this.transazione.getIdCorrelazioneApplicativaRisposta();
  242.             }
  243.             else {
  244.                 s = s + this.transazione.getIdCorrelazioneApplicativaRisposta();
  245.             }
  246.         }
  247.         return correctValue(s, defaultValue);
  248.     }
  249.    
  250.     public java.lang.String getClusterId() {
  251.         return getClusterId(null);
  252.     }
  253.     public java.lang.String getClusterId(String defaultValue) {
  254.         return correctValue(this.transazione.getClusterId(), defaultValue);
  255.     }
  256.    
  257.    
  258.     // esito
  259.    
  260.     private static final String CONVERSIONE_ESITO_FALLITA = "Conversione esito fallita: ";
  261.    
  262.     public String getResultClass() {
  263.         return getResultClass(null);
  264.     }
  265.     public String getResultClass(String defaultValue) {
  266.         try {
  267.             if(InfoEsitoTransazioneFormatUtils.isEsitoOk(this.log, this.transazione.getEsito(), this.esitiProperties)) {
  268.                 return correctValue(ResultClass.OK.name(),defaultValue);    
  269.             }
  270.             else if(InfoEsitoTransazioneFormatUtils.isEsitoFaultApplicativo(this.log, this.transazione.getEsito(), this.esitiProperties)) {
  271.                 return correctValue(ResultClass.FAULT.name(),defaultValue);
  272.             }
  273.             else if(InfoEsitoTransazioneFormatUtils.isEsitoKo(this.log, this.transazione.getEsito(), this.esitiProperties)) {
  274.                 return correctValue(ResultClass.KO.name(),defaultValue);
  275.             }
  276.             else {
  277.                 return correctValue(ResultClass.KO.name(),defaultValue);
  278.             }
  279.         }catch(Exception e) {
  280.             this.log.error(CONVERSIONE_ESITO_FALLITA+e.getMessage(),e);
  281.             return correctValue(null, defaultValue);
  282.         }
  283.     }
  284.    
  285.     public boolean isResultClassOk() {
  286.         try {
  287.             return InfoEsitoTransazioneFormatUtils.isEsitoOk(this.log, this.transazione.getEsito(), this.esitiProperties);
  288.         }catch(Exception e) {
  289.             this.log.error(CONVERSIONE_ESITO_FALLITA+e.getMessage(),e);
  290.             return false;
  291.         }
  292.     }
  293.     public boolean isResultClassFault() {
  294.         try {
  295.             return InfoEsitoTransazioneFormatUtils.isEsitoFaultApplicativo(this.log, this.transazione.getEsito(), this.esitiProperties);
  296.         }catch(Exception e) {
  297.             this.log.error(CONVERSIONE_ESITO_FALLITA+e.getMessage(),e);
  298.             return false;
  299.         }
  300.     }
  301.     public boolean isResultClassKo() {
  302.         try {
  303.             return InfoEsitoTransazioneFormatUtils.isEsitoKo(this.log, this.transazione.getEsito(), this.esitiProperties);
  304.         }catch(Exception e) {
  305.             this.log.error(CONVERSIONE_ESITO_FALLITA+e.getMessage(),e);
  306.             return false;
  307.         }
  308.     }
  309.    
  310.     public int getResultAsInt() {
  311.         return this.transazione.getEsito();
  312.     }
  313.     public int getResultCode() {
  314.         return getResultAsInt();
  315.     }
  316.     public String getResult() {
  317.         return getResult(null);
  318.     }
  319.     public String getResult(String defaultValue) {
  320.         try {
  321.             return correctValue(this.esitiProperties.getEsitoName(this.transazione.getEsito()),defaultValue);
  322.         }catch(Exception e) {
  323.             this.log.error(CONVERSIONE_ESITO_FALLITA+e.getMessage(),e);
  324.             return correctValue(null, defaultValue);
  325.         }
  326.     }
  327.     public String getResultDescription() {
  328.         return getResultDescription(null);
  329.     }
  330.     public String getResultDescription(String defaultValue) {
  331.         try {
  332.             return correctValue(this.esitiProperties.getEsitoDescription(this.transazione.getEsito()),defaultValue);
  333.         }catch(Exception e) {
  334.             this.log.error(CONVERSIONE_ESITO_FALLITA+e.getMessage(),e);
  335.             return correctValue(null, defaultValue);
  336.         }
  337.     }
  338.     public String getResultLabel() {
  339.         return getResultLabel(null);
  340.     }
  341.     public String getResultLabel(String defaultValue) {
  342.         try {
  343.             return correctValue(this.esitiProperties.getEsitoLabel(this.transazione.getEsito()),defaultValue);
  344.         }catch(Exception e) {
  345.             this.log.error(CONVERSIONE_ESITO_FALLITA+e.getMessage(),e);
  346.             return correctValue(null, defaultValue);
  347.         }
  348.     }
  349.     public String getResultLabelSyntetic() {
  350.         return getResultLabelSyntetic(null);
  351.     }
  352.     public String getResultLabelSyntetic(String defaultValue) {
  353.         try {
  354.             return correctValue(this.esitiProperties.getEsitoLabelSyntetic(this.transazione.getEsito()),defaultValue);
  355.         }catch(Exception e) {
  356.             this.log.error(CONVERSIONE_ESITO_FALLITA+e.getMessage(),e);
  357.             return correctValue(null, defaultValue);
  358.         }
  359.     }
  360.    
  361.     public int getSyncResultAsInt() {
  362.         return this.transazione.getEsitoSincrono();
  363.     }
  364.     public String getSyncResult() {
  365.         return getSyncResult(null);
  366.     }
  367.     public String getSyncResult(String defaultValue) {
  368.         try {
  369.             return correctValue(this.esitiProperties.getEsitoName(this.transazione.getEsitoSincrono()),defaultValue);
  370.         }catch(Exception e) {
  371.             this.log.error(CONVERSIONE_ESITO_FALLITA+e.getMessage(),e);
  372.             return correctValue(null, defaultValue);
  373.         }
  374.     }
  375.     public String getSyncResultDescription() {
  376.         return getSyncResultDescription(null);
  377.     }
  378.     public String getSyncResultDescription(String defaultValue) {
  379.         try {
  380.             return correctValue(this.esitiProperties.getEsitoDescription(this.transazione.getEsitoSincrono()),defaultValue);
  381.         }catch(Exception e) {
  382.             this.log.error(CONVERSIONE_ESITO_FALLITA+e.getMessage(),e);
  383.             return correctValue(null, defaultValue);
  384.         }
  385.     }
  386.     public String getSyncResultLabel() {
  387.         return getSyncResultLabel(null);
  388.     }
  389.     public String getSyncResultLabel(String defaultValue) {
  390.         try {
  391.             return correctValue(this.esitiProperties.getEsitoLabel(this.transazione.getEsitoSincrono()),defaultValue);
  392.         }catch(Exception e) {
  393.             this.log.error(CONVERSIONE_ESITO_FALLITA+e.getMessage(),e);
  394.             return correctValue(null, defaultValue);
  395.         }
  396.     }
  397.     public String getSyncResultLabelSyntetic() {
  398.         return getSyncResultLabelSyntetic(null);
  399.     }
  400.     public String getSyncResultLabelSyntetic(String defaultValue) {
  401.         try {
  402.             return correctValue(this.esitiProperties.getEsitoLabelSyntetic(this.transazione.getEsitoSincrono()),defaultValue);
  403.         }catch(Exception e) {
  404.             this.log.error(CONVERSIONE_ESITO_FALLITA+e.getMessage(),e);
  405.             return correctValue(null, defaultValue);
  406.         }
  407.     }
  408.    
  409.     public java.lang.String getTransactionType() {
  410.         return getTransactionType(null);
  411.     }
  412.     public java.lang.String getTransactionType(String defaultValue) {
  413.         return correctValue(this.transazione.getEsitoContesto(), defaultValue);
  414.     }
  415.    
  416.     public java.lang.String getInHttpStatus() {
  417.         return getInHttpStatus(null);
  418.     }
  419.     public java.lang.String getInHttpStatus(String defaultValue) {
  420.         return correctValue(this.transazione.getCodiceRispostaIngresso(), defaultValue);
  421.     }
  422.    
  423.     public java.lang.String getInHttpReason() {
  424.         return getInHttpReason(null);
  425.     }
  426.     public java.lang.String getInHttpReason(String defaultValue) {
  427.         String reason = null;
  428.         try {
  429.             String codiceRisposta = this.transazione.getCodiceRispostaIngresso();
  430.             if(codiceRisposta!=null && !"".equals(codiceRisposta)) {
  431.                 int status = Integer.parseInt(codiceRisposta);
  432.                 reason = HttpUtilities.getHttpReason(status);
  433.             }
  434.         }catch(Exception e) {
  435.             this.log.error("Conversione http reason: "+e.getMessage(),e);
  436.             return correctValue(null, defaultValue);
  437.         }
  438.         return correctValue(reason, defaultValue);
  439.     }
  440.    
  441.     public java.lang.String getOutHttpStatus() {
  442.         return getOutHttpStatus(null);
  443.     }
  444.     public java.lang.String getOutHttpStatus(String defaultValue) {
  445.         return correctValue(this.transazione.getCodiceRispostaUscita(), defaultValue);
  446.     }
  447.    
  448.     public java.lang.String getOutHttpReason() {
  449.         return getOutHttpReason(null);
  450.     }
  451.     public java.lang.String getOutHttpReason(String defaultValue) {
  452.         String reason = null;
  453.         try {
  454.             String codiceRisposta = this.transazione.getCodiceRispostaUscita();
  455.             if(codiceRisposta!=null && !"".equals(codiceRisposta)) {
  456.                 int status = Integer.parseInt(codiceRisposta);
  457.                 reason = HttpUtilities.getHttpReason(status);
  458.             }
  459.         }catch(Exception e) {
  460.             this.log.error("Conversione http reason: "+e.getMessage(),e);
  461.             return correctValue(null, defaultValue);
  462.         }
  463.         return correctValue(reason, defaultValue);
  464.     }
  465.    
  466.     private DatiEsitoTransazione convertToDatiEsitoTransazioneEngine() {
  467.        
  468.         boolean oldValueBase64 = this.base64;
  469.         DatiEsitoTransazione datiEsitoTransazione = null;
  470.         try {
  471.             this.base64 = false; // senno i dati salvata nell'oggetto sono serializzati in base64
  472.            
  473.             datiEsitoTransazione = new DatiEsitoTransazione();
  474.            
  475.             datiEsitoTransazione.setEsito(this.getResultAsInt());
  476.             datiEsitoTransazione.setProtocollo(this.protocolFactory);
  477.            
  478.             datiEsitoTransazione.setFaultIntegrazione(this.getFaultIntegrazioneEngine(null));
  479.             datiEsitoTransazione.setFormatoFaultIntegrazione(this.getFormatoFaultIntegrazioneEngine(null));
  480.            
  481.             datiEsitoTransazione.setFaultCooperazione(this.getFaultCooperazioneEngine(null));
  482.             datiEsitoTransazione.setFormatoFaultCooperazione(this.getFormatoFaultCooperazioneEngine(null));
  483.                    
  484.             datiEsitoTransazione.setPddRuolo(this.transazione.getPddRuolo());
  485.         }finally {
  486.             this.base64 = oldValueBase64;
  487.         }
  488.        
  489.         return datiEsitoTransazione;
  490.        
  491.     }
  492.    
  493.     public java.lang.String getErrorDetail() {
  494.         return getErrorDetail(null);
  495.     }
  496.     public java.lang.String getErrorDetail(String defaultValue) {
  497.         DatiEsitoTransazione datiEsitoTransazione = convertToDatiEsitoTransazioneEngine();
  498.         String dettaglioErroreResult = InfoEsitoTransazioneFormatUtils.getDettaglioErrore(this.log, datiEsitoTransazione, this.msgDiagnostici);
  499.         return correctValue(dettaglioErroreResult, defaultValue);
  500.     }
  501.    
  502.     public java.lang.String getDiagnostics() {
  503.         return getDiagnosticsEngine(false, "\n", DateUtils.SIMPLE_DATE_FORMAT_MS_ISO_8601_TZ,null);
  504.     }
  505.     public java.lang.String getDiagnostics(String separator) {
  506.         return getDiagnosticsEngine(false, separator, DateUtils.SIMPLE_DATE_FORMAT_MS_ISO_8601_TZ,null);
  507.     }
  508.     public java.lang.String getDiagnostics(String separator, String format) {
  509.         return getDiagnosticsEngine(false, separator, format, null);
  510.     }
  511.     public java.lang.String getDiagnostics(String separator, String format, String timeZone) {
  512.         return getDiagnosticsEngine(false, separator, format, timeZone);
  513.     }
  514.     public java.lang.String getErrorDiagnostics() {
  515.         return getDiagnosticsEngine(true, "\n", DateUtils.SIMPLE_DATE_FORMAT_MS_ISO_8601_TZ,null);
  516.     }
  517.     public java.lang.String getErrorDiagnostics(String separator) {
  518.         return getDiagnosticsEngine(true, separator, DateUtils.SIMPLE_DATE_FORMAT_MS_ISO_8601_TZ,null);
  519.     }
  520.     public java.lang.String getErrorDiagnostics(String separator, String format) {
  521.         return getDiagnosticsEngine(true, separator, format, null);
  522.     }
  523.     public java.lang.String getErrorDiagnostics(String separator, String format, String timeZone) {
  524.         return getDiagnosticsEngine(true, separator, format, timeZone);
  525.     }
  526.     private java.lang.String getDiagnosticsEngine(boolean onlyErrors, String separator, String format, String timeZone) {
  527.         StringBuilder sb = new StringBuilder();
  528.         if(this.msgDiagnostici!=null && !this.msgDiagnostici.isEmpty()) {
  529.             for (MsgDiagnostico msgDiagnostico : this.msgDiagnostici) {
  530.                 if(onlyErrors &&
  531.                     msgDiagnostico.getSeverita()>LogLevels.SEVERITA_ERROR_INTEGRATION) {
  532.                     continue;
  533.                 }
  534.                
  535.                 if(sb.length()>0) {
  536.                     sb.append(separator);
  537.                 }
  538.                
  539.                 String severitaAsString = LogLevels.toOpenSPCoop2(msgDiagnostico.getSeverita());
  540.                 sb.append(severitaAsString);
  541.                 sb.append(" ");
  542.                 sb.append(correctDateWithoutCorrectValue(msgDiagnostico.getGdo(), format, timeZone, null, null));
  543.                 sb.append(" ");
  544.                 sb.append(msgDiagnostico.getCodice());
  545.                 sb.append(" ");
  546.                 sb.append(msgDiagnostico.getMessaggio());
  547.             }
  548.         }
  549.         return correctValue(sb.toString(), null);
  550.     }
  551.    

  552.     // date
  553.    
  554.     public java.lang.String getAcceptedRequestDate() {
  555.         return this.getAcceptedRequestDate(DateUtils.SIMPLE_DATE_FORMAT_MS_ISO_8601_TZ);
  556.     }
  557.     public java.lang.String getAcceptedRequestDate(String format) {
  558.         return getAcceptedRequestDate(format, null, null, null);
  559.     }
  560.     public java.lang.String getAcceptedRequestDate(String format, String defaultValue) {
  561.         return getAcceptedRequestDate(format, defaultValue, null, null);
  562.     }
  563.     public java.lang.String getAcceptedRequestDate(String format, String replace, String with) {
  564.         return getAcceptedRequestDate(format, null, replace, with);
  565.     }
  566.     public java.lang.String getAcceptedRequestDate(String format, String defaultValue, String replace, String with) {
  567.         return this.correctDate(this.transazione.getDataAccettazioneRichiesta(), format, null, defaultValue, replace, with);
  568.     }
  569.     public java.lang.String getAcceptedRequestDateZ(String format, String timeZone) {
  570.         return getAcceptedRequestDateZ(format, timeZone, null, null, null);
  571.     }
  572.     public java.lang.String getAcceptedRequestDateZ(String format, String timeZone, String defaultValue) {
  573.         return getAcceptedRequestDateZ(format, timeZone, defaultValue, null, null);
  574.     }
  575.     public java.lang.String getAcceptedRequestDateZ(String format, String timeZone, String replace, String with) {
  576.         return getAcceptedRequestDateZ(format, timeZone, null, replace, with);
  577.     }
  578.     public java.lang.String getAcceptedRequestDateZ(String format, String timeZone, String defaultValue, String replace, String with) {
  579.         return this.correctDate(this.transazione.getDataAccettazioneRichiesta(), format, timeZone, defaultValue, replace, with);
  580.     }
  581.    
  582.     public java.lang.String getInRequestDate() {
  583.         return this.getInRequestDate(DateUtils.SIMPLE_DATE_FORMAT_MS_ISO_8601_TZ);
  584.     }
  585.     public java.lang.String getInRequestDate(String format) {
  586.         return getInRequestDate(format, null, null, null);
  587.     }
  588.     public java.lang.String getInRequestDate(String format, String defaultValue) {
  589.         return getInRequestDate(format, defaultValue, null, null);
  590.     }
  591.     public java.lang.String getInRequestDate(String format, String replace, String with) {
  592.         return getInRequestDate(format, null, replace, with);
  593.     }
  594.     public java.lang.String getInRequestDate(String format, String defaultValue, String replace, String with) {
  595.         return this.correctDate(this.transazione.getDataIngressoRichiesta(), format, null, defaultValue, replace, with);
  596.     }
  597.     public java.lang.String getInRequestDateZ(String format, String timeZone) {
  598.         return getInRequestDateZ(format, timeZone, null, null, null);
  599.     }
  600.     public java.lang.String getInRequestDateZ(String format, String timeZone, String defaultValue) {
  601.         return getInRequestDateZ(format, timeZone, defaultValue, null, null);
  602.     }
  603.     public java.lang.String getInRequestDateZ(String format, String timeZone, String replace, String with) {
  604.         return getInRequestDateZ(format, timeZone, null, replace, with);
  605.     }
  606.     public java.lang.String getInRequestDateZ(String format, String timeZone, String defaultValue, String replace, String with) {
  607.         return this.correctDate(this.transazione.getDataIngressoRichiesta(), format, timeZone, defaultValue, replace, with);
  608.     }
  609.    
  610.     public java.lang.String getInRequestStartTime() {
  611.         return this.getInRequestStartTime(DateUtils.SIMPLE_DATE_FORMAT_MS_ISO_8601_TZ);
  612.     }
  613.     public java.lang.String getInRequestStartTime(String format) {
  614.         return getInRequestStartTime(format, null, null, null);
  615.     }
  616.     public java.lang.String getInRequestStartTime(String format, String defaultValue) {
  617.         return getInRequestStartTime(format, defaultValue, null, null);
  618.     }
  619.     public java.lang.String getInRequestStartTime(String format, String replace, String with) {
  620.         return getInRequestStartTime(format, null, replace, with);
  621.     }
  622.     public java.lang.String getInRequestStartTime(String format, String defaultValue, String replace, String with) {
  623.         return this.correctDate(this.transazione.getDataIngressoRichiesta(), format, null, defaultValue, replace, with);
  624.     }
  625.     public java.lang.String getInRequestStartTimeZ(String format, String timeZone) {
  626.         return getInRequestStartTimeZ(format, timeZone, null, null, null);
  627.     }
  628.     public java.lang.String getInRequestStartTimeZ(String format, String timeZone, String defaultValue) {
  629.         return getInRequestStartTimeZ(format, timeZone, defaultValue, null, null);
  630.     }
  631.     public java.lang.String getInRequestStartTimeZ(String format, String timeZone, String replace, String with) {
  632.         return getInRequestStartTimeZ(format, timeZone, null, replace, with);
  633.     }
  634.     public java.lang.String getInRequestStartTimeZ(String format, String timeZone, String defaultValue, String replace, String with) {
  635.         return this.correctDate(this.transazione.getDataIngressoRichiesta(), format, timeZone, defaultValue, replace, with);
  636.     }
  637.    
  638.     public java.lang.String getInRequestEndTime() {
  639.         return this.getInRequestEndTime(DateUtils.SIMPLE_DATE_FORMAT_MS_ISO_8601_TZ);
  640.     }
  641.     public java.lang.String getInRequestEndTime(String format) {
  642.         return getInRequestEndTime(format, null, null, null);
  643.     }
  644.     public java.lang.String getInRequestEndTime(String format, String defaultValue) {
  645.         return getInRequestEndTime(format, defaultValue, null, null);
  646.     }
  647.     public java.lang.String getInRequestEndTime(String format, String replace, String with) {
  648.         return getInRequestEndTime(format, null, replace, with);
  649.     }
  650.     public java.lang.String getInRequestEndTime(String format, String defaultValue, String replace, String with) {
  651.         return this.correctDate(this.transazione.getDataIngressoRichiestaStream(), format, null, defaultValue, replace, with);
  652.     }
  653.     public java.lang.String getInRequestEndTimeZ(String format, String timeZone) {
  654.         return getInRequestEndTimeZ(format, timeZone, null, null, null);
  655.     }
  656.     public java.lang.String getInRequestEndTimeZ(String format, String timeZone, String defaultValue) {
  657.         return getInRequestEndTimeZ(format, timeZone, defaultValue, null, null);
  658.     }
  659.     public java.lang.String getInRequestEndTimeZ(String format, String timeZone, String replace, String with) {
  660.         return getInRequestEndTimeZ(format, timeZone, null, replace, with);
  661.     }
  662.     public java.lang.String getInRequestEndTimeZ(String format, String timeZone, String defaultValue, String replace, String with) {
  663.         return this.correctDate(this.transazione.getDataIngressoRichiestaStream(), format, timeZone, defaultValue, replace, with);
  664.     }
  665.    
  666.     public java.lang.String getOutRequestDate() {
  667.         return this.getOutRequestDate(DateUtils.SIMPLE_DATE_FORMAT_MS_ISO_8601_TZ);
  668.     }
  669.     public java.lang.String getOutRequestDate(String format) {
  670.         return getOutRequestDate(format, null, null, null);
  671.     }
  672.     public java.lang.String getOutRequestDate(String format, String defaultValue) {
  673.         return getOutRequestDate(format, defaultValue, null, null);
  674.     }
  675.     public java.lang.String getOutRequestDate(String format, String replace, String with) {
  676.         return getOutRequestDate(format, null, replace, with);
  677.     }
  678.     public java.lang.String getOutRequestDate(String format, String defaultValue, String replace, String with) {
  679.         return this.correctDate(this.transazione.getDataUscitaRichiesta(), format, null, defaultValue, replace, with);
  680.     }
  681.     public java.lang.String getOutRequestDateZ(String format, String timeZone) {
  682.         return getOutRequestDateZ(format, timeZone, null, null, null);
  683.     }
  684.     public java.lang.String getOutRequestDateZ(String format, String timeZone, String defaultValue) {
  685.         return getOutRequestDateZ(format, timeZone, defaultValue, null, null);
  686.     }
  687.     public java.lang.String getOutRequestDateZ(String format, String timeZone, String replace, String with) {
  688.         return getOutRequestDateZ(format, timeZone, null, replace, with);
  689.     }
  690.     public java.lang.String getOutRequestDateZ(String format, String timeZone, String defaultValue, String replace, String with) {
  691.         return this.correctDate(this.transazione.getDataUscitaRichiesta(), format, timeZone, defaultValue, replace, with);
  692.     }
  693.    
  694.     public java.lang.String getOutRequestStartTime() {
  695.         return this.getOutRequestStartTime(DateUtils.SIMPLE_DATE_FORMAT_MS_ISO_8601_TZ);
  696.     }
  697.     public java.lang.String getOutRequestStartTime(String format) {
  698.         return getOutRequestStartTime(format, null, null, null);
  699.     }
  700.     public java.lang.String getOutRequestStartTime(String format, String defaultValue) {
  701.         return getOutRequestStartTime(format, defaultValue, null, null);
  702.     }
  703.     public java.lang.String getOutRequestStartTime(String format, String replace, String with) {
  704.         return getOutRequestStartTime(format, null, replace, with);
  705.     }
  706.     public java.lang.String getOutRequestStartTime(String format, String defaultValue, String replace, String with) {
  707.         return this.correctDate(this.transazione.getDataUscitaRichiesta(), format, null, defaultValue, replace, with);
  708.     }
  709.     public java.lang.String getOutRequestStartTimeZ(String format, String timeZone) {
  710.         return getOutRequestStartTimeZ(format, timeZone, null, null, null);
  711.     }
  712.     public java.lang.String getOutRequestStartTimeZ(String format, String timeZone, String defaultValue) {
  713.         return getOutRequestStartTimeZ(format, timeZone, defaultValue, null, null);
  714.     }
  715.     public java.lang.String getOutRequestStartTimeZ(String format, String timeZone, String replace, String with) {
  716.         return getOutRequestStartTimeZ(format, timeZone, null, replace, with);
  717.     }
  718.     public java.lang.String getOutRequestStartTimeZ(String format, String timeZone, String defaultValue, String replace, String with) {
  719.         return this.correctDate(this.transazione.getDataUscitaRichiesta(), format, timeZone, defaultValue, replace, with);
  720.     }
  721.    
  722.     public java.lang.String getOutRequestEndTime() {
  723.         return this.getOutRequestEndTime(DateUtils.SIMPLE_DATE_FORMAT_MS_ISO_8601_TZ);
  724.     }
  725.     public java.lang.String getOutRequestEndTime(String format) {
  726.         return getOutRequestEndTime(format, null, null, null);
  727.     }
  728.     public java.lang.String getOutRequestEndTime(String format, String defaultValue) {
  729.         return getOutRequestEndTime(format, defaultValue, null, null);
  730.     }
  731.     public java.lang.String getOutRequestEndTime(String format, String replace, String with) {
  732.         return getOutRequestEndTime(format, null, replace, with);
  733.     }
  734.     public java.lang.String getOutRequestEndTime(String format, String defaultValue, String replace, String with) {
  735.         return this.correctDate(this.transazione.getDataUscitaRichiestaStream(), format, null, defaultValue, replace, with);
  736.     }
  737.     public java.lang.String getOutRequestEndTimeZ(String format, String timeZone) {
  738.         return getOutRequestEndTimeZ(format, timeZone, null, null, null);
  739.     }
  740.     public java.lang.String getOutRequestEndTimeZ(String format, String timeZone, String defaultValue) {
  741.         return getOutRequestEndTimeZ(format, timeZone, defaultValue, null, null);
  742.     }
  743.     public java.lang.String getOutRequestEndTimeZ(String format, String timeZone, String replace, String with) {
  744.         return getOutRequestEndTimeZ(format, timeZone, null, replace, with);
  745.     }
  746.     public java.lang.String getOutRequestEndTimeZ(String format, String timeZone, String defaultValue, String replace, String with) {
  747.         return this.correctDate(this.transazione.getDataUscitaRichiestaStream(), format, timeZone, defaultValue, replace, with);
  748.     }
  749.    
  750.     public java.lang.String getAcceptedResponseDate() {
  751.         return this.getAcceptedResponseDate(DateUtils.SIMPLE_DATE_FORMAT_MS_ISO_8601_TZ);
  752.     }
  753.     public java.lang.String getAcceptedResponseDate(String format) {
  754.         return getAcceptedResponseDate(format, null, null, null);
  755.     }
  756.     public java.lang.String getAcceptedResponseDate(String format, String defaultValue) {
  757.         return getAcceptedResponseDate(format, defaultValue, null, null);
  758.     }
  759.     public java.lang.String getAcceptedResponseDate(String format, String replace, String with) {
  760.         return getAcceptedResponseDate(format, null, replace, with);
  761.     }
  762.     public java.lang.String getAcceptedResponseDate(String format, String defaultValue, String replace, String with) {
  763.         return this.correctDate(this.transazione.getDataAccettazioneRisposta(), format, null, defaultValue, replace, with);
  764.     }
  765.     public java.lang.String getAcceptedResponseDateZ(String format, String timeZone) {
  766.         return getAcceptedResponseDateZ(format, timeZone, null, null, null);
  767.     }
  768.     public java.lang.String getAcceptedResponseDateZ(String format, String timeZone, String defaultValue) {
  769.         return getAcceptedResponseDateZ(format, timeZone, defaultValue, null, null);
  770.     }
  771.     public java.lang.String getAcceptedResponseDateZ(String format, String timeZone, String replace, String with) {
  772.         return getAcceptedResponseDateZ(format, timeZone, null, replace, with);
  773.     }
  774.     public java.lang.String getAcceptedResponseDateZ(String format, String timeZone, String defaultValue, String replace, String with) {
  775.         return this.correctDate(this.transazione.getDataAccettazioneRisposta(), format, timeZone, defaultValue, replace, with);
  776.     }
  777.    
  778.     public java.lang.String getInResponseDate() {
  779.         return this.getInResponseDate(DateUtils.SIMPLE_DATE_FORMAT_MS_ISO_8601_TZ);
  780.     }
  781.     public java.lang.String getInResponseDate(String format) {
  782.         return getInResponseDate(format, null, null, null);
  783.     }
  784.     public java.lang.String getInResponseDate(String format, String defaultValue) {
  785.         return getInResponseDate(format, defaultValue, null, null);
  786.     }
  787.     public java.lang.String getInResponseDate(String format, String replace, String with) {
  788.         return getInResponseDate(format, null, replace, with);
  789.     }
  790.     public java.lang.String getInResponseDate(String format, String defaultValue, String replace, String with) {
  791.         return this.correctDate(this.transazione.getDataIngressoRisposta(), format, null, defaultValue, replace, with);
  792.     }
  793.     public java.lang.String getInResponseDateZ(String format, String timeZone) {
  794.         return getInResponseDateZ(format, timeZone, null, null, null);
  795.     }
  796.     public java.lang.String getInResponseDateZ(String format, String timeZone, String defaultValue) {
  797.         return getInResponseDateZ(format, timeZone, defaultValue, null, null);
  798.     }
  799.     public java.lang.String getInResponseDateZ(String format, String timeZone, String replace, String with) {
  800.         return getInResponseDateZ(format, timeZone, null, replace, with);
  801.     }
  802.     public java.lang.String getInResponseDateZ(String format, String timeZone, String defaultValue, String replace, String with) {
  803.         return this.correctDate(this.transazione.getDataIngressoRisposta(), format, timeZone, defaultValue, replace, with);
  804.     }
  805.    
  806.     public java.lang.String getInResponseStartTime() {
  807.         return this.getInResponseStartTime(DateUtils.SIMPLE_DATE_FORMAT_MS_ISO_8601_TZ);
  808.     }
  809.     public java.lang.String getInResponseStartTime(String format) {
  810.         return getInResponseStartTime(format, null, null, null);
  811.     }
  812.     public java.lang.String getInResponseStartTime(String format, String defaultValue) {
  813.         return getInResponseStartTime(format, defaultValue, null, null);
  814.     }
  815.     public java.lang.String getInResponseStartTime(String format, String replace, String with) {
  816.         return getInResponseStartTime(format, null, replace, with);
  817.     }
  818.     public java.lang.String getInResponseStartTime(String format, String defaultValue, String replace, String with) {
  819.         return this.correctDate(this.transazione.getDataIngressoRisposta(), format, null, defaultValue, replace, with);
  820.     }
  821.     public java.lang.String getInResponseStartTimeZ(String format, String timeZone) {
  822.         return getInResponseStartTimeZ(format, timeZone, null, null, null);
  823.     }
  824.     public java.lang.String getInResponseStartTimeZ(String format, String timeZone, String defaultValue) {
  825.         return getInResponseStartTimeZ(format, timeZone, defaultValue, null, null);
  826.     }
  827.     public java.lang.String getInResponseStartTimeZ(String format, String timeZone, String replace, String with) {
  828.         return getInResponseStartTimeZ(format, timeZone, null, replace, with);
  829.     }
  830.     public java.lang.String getInResponseStartTimeZ(String format, String timeZone, String defaultValue, String replace, String with) {
  831.         return this.correctDate(this.transazione.getDataIngressoRisposta(), format, timeZone, defaultValue, replace, with);
  832.     }
  833.    
  834.     public java.lang.String getInResponseEndTime() {
  835.         return this.getInResponseEndTime(DateUtils.SIMPLE_DATE_FORMAT_MS_ISO_8601_TZ);
  836.     }
  837.     public java.lang.String getInResponseEndTime(String format) {
  838.         return getInResponseEndTime(format, null, null, null);
  839.     }
  840.     public java.lang.String getInResponseEndTime(String format, String defaultValue) {
  841.         return getInResponseEndTime(format, defaultValue, null, null);
  842.     }
  843.     public java.lang.String getInResponseEndTime(String format, String replace, String with) {
  844.         return getInResponseEndTime(format, null, replace, with);
  845.     }
  846.     public java.lang.String getInResponseEndTime(String format, String defaultValue, String replace, String with) {
  847.         return this.correctDate(this.transazione.getDataIngressoRispostaStream(), format, null, defaultValue, replace, with);
  848.     }
  849.     public java.lang.String getInResponseEndTimeZ(String format, String timeZone) {
  850.         return getInResponseEndTimeZ(format, timeZone, null, null, null);
  851.     }
  852.     public java.lang.String getInResponseEndTimeZ(String format, String timeZone, String defaultValue) {
  853.         return getInResponseEndTimeZ(format, timeZone, defaultValue, null, null);
  854.     }
  855.     public java.lang.String getInResponseEndTimeZ(String format, String timeZone, String replace, String with) {
  856.         return getInResponseEndTimeZ(format, timeZone, null, replace, with);
  857.     }
  858.     public java.lang.String getInResponseEndTimeZ(String format, String timeZone, String defaultValue, String replace, String with) {
  859.         return this.correctDate(this.transazione.getDataIngressoRispostaStream(), format, timeZone, defaultValue, replace, with);
  860.     }
  861.    
  862.     public java.lang.String getOutResponseDate() {
  863.         return this.getOutResponseDate(DateUtils.SIMPLE_DATE_FORMAT_MS_ISO_8601_TZ);
  864.     }
  865.     public java.lang.String getOutResponseDate(String format) {
  866.         return getOutResponseDate(format, null, null, null);
  867.     }
  868.     public java.lang.String getOutResponseDate(String format, String defaultValue) {
  869.         return getOutResponseDate(format, defaultValue, null, null);
  870.     }
  871.     public java.lang.String getOutResponseDate(String format, String replace, String with) {
  872.         return getOutResponseDate(format, null, replace, with);
  873.     }
  874.     public java.lang.String getOutResponseDate(String format, String defaultValue, String replace, String with) {
  875.         return this.correctDate(this.transazione.getDataUscitaRisposta(), format, null, defaultValue, replace, with);
  876.     }
  877.     public java.lang.String getOutResponseDateZ(String format, String timeZone) {
  878.         return getOutResponseDateZ(format, timeZone, null, null, null);
  879.     }
  880.     public java.lang.String getOutResponseDateZ(String format, String timeZone, String defaultValue) {
  881.         return getOutResponseDateZ(format, timeZone, defaultValue, null, null);
  882.     }
  883.     public java.lang.String getOutResponseDateZ(String format, String timeZone, String replace, String with) {
  884.         return getOutResponseDateZ(format, timeZone, null, replace, with);
  885.     }
  886.     public java.lang.String getOutResponseDateZ(String format, String timeZone, String defaultValue, String replace, String with) {
  887.         return this.correctDate(this.transazione.getDataUscitaRisposta(), format, timeZone, defaultValue, replace, with);
  888.     }
  889.    
  890.     public java.lang.String getOutResponseStartTime() {
  891.         return this.getOutResponseStartTime(DateUtils.SIMPLE_DATE_FORMAT_MS_ISO_8601_TZ);
  892.     }
  893.     public java.lang.String getOutResponseStartTime(String format) {
  894.         return getOutResponseStartTime(format, null, null, null);
  895.     }
  896.     public java.lang.String getOutResponseStartTime(String format, String defaultValue) {
  897.         return getOutResponseStartTime(format, defaultValue, null, null);
  898.     }
  899.     public java.lang.String getOutResponseStartTime(String format, String replace, String with) {
  900.         return getOutResponseStartTime(format, null, replace, with);
  901.     }
  902.     public java.lang.String getOutResponseStartTime(String format, String defaultValue, String replace, String with) {
  903.         return this.correctDate(this.transazione.getDataUscitaRispostaStream(), format, null, defaultValue, replace, with);
  904.     }
  905.     public java.lang.String getOutResponseStartTimeZ(String format, String timeZone) {
  906.         return getOutResponseStartTimeZ(format, timeZone, null, null, null);
  907.     }
  908.     public java.lang.String getOutResponseStartTimeZ(String format, String timeZone, String defaultValue) {
  909.         return getOutResponseStartTimeZ(format, timeZone, defaultValue, null, null);
  910.     }
  911.     public java.lang.String getOutResponseStartTimeZ(String format, String timeZone, String replace, String with) {
  912.         return getOutResponseStartTimeZ(format, timeZone, null, replace, with);
  913.     }
  914.     public java.lang.String getOutResponseStartTimeZ(String format, String timeZone, String defaultValue, String replace, String with) {
  915.         return this.correctDate(this.transazione.getDataUscitaRispostaStream(), format, timeZone, defaultValue, replace, with);
  916.     }
  917.    
  918.     public java.lang.String getOutResponseEndTime() {
  919.         return this.getOutResponseEndTime(DateUtils.SIMPLE_DATE_FORMAT_MS_ISO_8601_TZ);
  920.     }
  921.     public java.lang.String getOutResponseEndTime(String format) {
  922.         return getOutResponseEndTime(format, null, null, null);
  923.     }
  924.     public java.lang.String getOutResponseEndTime(String format, String defaultValue) {
  925.         return getOutResponseEndTime(format, defaultValue, null, null);
  926.     }
  927.     public java.lang.String getOutResponseEndTime(String format, String replace, String with) {
  928.         return getOutResponseEndTime(format, null, replace, with);
  929.     }
  930.     public java.lang.String getOutResponseEndTime(String format, String defaultValue, String replace, String with) {
  931.         return this.correctDate(this.transazione.getDataUscitaRisposta(), format, null, defaultValue, replace, with);
  932.     }
  933.     public java.lang.String getOutResponseEndTimeZ(String format, String timeZone) {
  934.         return getOutResponseEndTimeZ(format, timeZone, null, null, null);
  935.     }
  936.     public java.lang.String getOutResponseEndTimeZ(String format, String timeZone, String defaultValue) {
  937.         return getOutResponseEndTimeZ(format, timeZone, defaultValue, null, null);
  938.     }
  939.     public java.lang.String getOutResponseEndTimeZ(String format, String timeZone, String replace, String with) {
  940.         return getOutResponseEndTimeZ(format, timeZone, null, replace, with);
  941.     }
  942.     public java.lang.String getOutResponseEndTimeZ(String format, String timeZone, String defaultValue, String replace, String with) {
  943.         return this.correctDate(this.transazione.getDataUscitaRisposta(), format, timeZone, defaultValue, replace, with);
  944.     }
  945.    
  946.    
  947.    
  948.     // latenza
  949.    
  950.     public long getElapsedTime() {
  951.         return getElapsedTime(null);
  952.     }
  953.     public long getElapsedTime(String defaultValue) {
  954.         return this.correctLong(getLatenzaTotaleEngine(), defaultValue);
  955.     }
  956.     public long getElapsedTimeS() {
  957.         return getElapsedTimeS(null);
  958.     }
  959.     public long getElapsedTimeS(String defaultValue) {
  960.         return getElapsedTime(defaultValue) / 1000;
  961.     }
  962.     public long getElapsedTimeMs() {
  963.         return getElapsedTimeMs(null);
  964.     }
  965.     public long getElapsedTimeMs(String defaultValue) {
  966.         return getElapsedTime(defaultValue);
  967.     }
  968.     public long getElapsedTimeUs() {
  969.         return getElapsedTimeUs(null);
  970.     }
  971.     public long getElapsedTimeUs(String defaultValue) {
  972.         return getElapsedTime(defaultValue) * 1000;
  973.     }
  974.     public long getElapsedTimeNs() {
  975.         return getElapsedTimeNs(null);
  976.     }
  977.     public long getElapsedTimeNs(String defaultValue) {
  978.         return getElapsedTime(defaultValue) * 1000 * 1000;
  979.     }
  980.     private Long getLatenzaTotaleEngine() {
  981.         Long l = null;
  982.         if(this.transazione.getDataUscitaRisposta() != null && this.transazione.getDataIngressoRichiesta() != null){
  983.             l = this.transazione.getDataUscitaRisposta().getTime() - this.transazione.getDataIngressoRichiesta().getTime();
  984.         }
  985.         return l;
  986.     }

  987.     public long getApiElapsedTime() {
  988.         return getApiElapsedTime(null);
  989.     }
  990.     public long getApiElapsedTime(String defaultValue) {
  991.         return this.correctLong(getLatenzaServizioEngine(), defaultValue);
  992.     }
  993.     public long getApiElapsedTimeS() {
  994.         return getApiElapsedTimeS(null);
  995.     }
  996.     public long getApiElapsedTimeS(String defaultValue) {
  997.         return getApiElapsedTime(defaultValue) / 1000;
  998.     }
  999.     public long getApiElapsedTimeMs() {
  1000.         return getApiElapsedTimeMs(null);
  1001.     }
  1002.     public long getApiElapsedTimeMs(String defaultValue) {
  1003.         return getApiElapsedTime(defaultValue);
  1004.     }
  1005.     public long getApiElapsedTimeUs() {
  1006.         return getApiElapsedTimeUs(null);
  1007.     }
  1008.     public long getApiElapsedTimeUs(String defaultValue) {
  1009.         return getApiElapsedTime(defaultValue) * 1000;
  1010.     }
  1011.     public long getApiElapsedTimeNs() {
  1012.         return getApiElapsedTimeNs(null);
  1013.     }
  1014.     public long getApiElapsedTimeNs(String defaultValue) {
  1015.         return getApiElapsedTime(defaultValue) * 1000 * 1000;
  1016.     }
  1017.     private Long getLatenzaServizioEngine() {
  1018.         Long l = null;
  1019.         if(this.transazione.getDataUscitaRichiesta() != null && this.transazione.getDataIngressoRisposta() != null){
  1020.             l = this.transazione.getDataIngressoRisposta().getTime() - this.transazione.getDataUscitaRichiesta().getTime();
  1021.         }
  1022.         return l;
  1023.     }

  1024.     public long getGatewayLatency() {
  1025.         return getGatewayLatency(null);
  1026.     }
  1027.     public long getGatewayLatency(String defaultValue) {
  1028.         return this.correctLong(getLatenzaPortaEngine(), defaultValue);
  1029.     }
  1030.     public long getGatewayLatencyS() {
  1031.         return getGatewayLatencyS(null);
  1032.     }
  1033.     public long getGatewayLatencyS(String defaultValue) {
  1034.         return getGatewayLatency(defaultValue) / 1000;
  1035.     }
  1036.     public long getGatewayLatencyMs() {
  1037.         return getGatewayLatencyMs(null);
  1038.     }
  1039.     public long getGatewayLatencyMs(String defaultValue) {
  1040.         return getGatewayLatency(defaultValue);
  1041.     }
  1042.     public long getGatewayLatencyUs() {
  1043.         return getGatewayLatencyUs(null);
  1044.     }
  1045.     public long getGatewayLatencyUs(String defaultValue) {
  1046.         return getGatewayLatency(defaultValue) * 1000;
  1047.     }
  1048.     public long getGatewayLatencyNs() {
  1049.         return getGatewayLatencyNs(null);
  1050.     }
  1051.     public long getGatewayLatencyNs(String defaultValue) {
  1052.         return getGatewayLatency(defaultValue) * 1000 * 1000;
  1053.     }
  1054.     private Long getLatenzaPortaEngine() {
  1055.         Long l = null;
  1056.         Long latTotale = this.getLatenzaTotaleEngine();
  1057.         if(latTotale != null && latTotale>=0) {
  1058.             Long latServizio = this.getLatenzaServizioEngine();
  1059.             if(latServizio != null && latServizio>=0) {
  1060.                 l = latTotale.longValue() - latServizio.longValue();
  1061.             }else {
  1062.                 l = latTotale;
  1063.             }
  1064.         }
  1065.         return l;
  1066.     }

  1067.    
  1068.    
  1069.     // dominio
  1070.    
  1071.     public java.lang.String getDomain() {
  1072.         return getDomain(null);
  1073.     }
  1074.     public java.lang.String getDomain(String defaultValue) {
  1075.         return correctValue(this.transazione.getPddCodice(), defaultValue);
  1076.     }
  1077.     public java.lang.String getOrganizationType() {
  1078.         return getOrganizationType(null);
  1079.     }
  1080.     public java.lang.String getOrganizationType(String defaultValue) {
  1081.         return correctValue(this.transazione.getPddTipoSoggetto(), defaultValue);
  1082.     }
  1083.     public java.lang.String getOrganization() {
  1084.         return getOrganization(null);
  1085.     }
  1086.     public java.lang.String getOrganization(String defaultValue) {
  1087.         return correctValue(this.transazione.getPddNomeSoggetto(), defaultValue);
  1088.     }
  1089.     public java.lang.String getOrganizationId() {
  1090.         return getOrganizationId(null);
  1091.     }
  1092.     public java.lang.String getOrganizationId(String defaultValue) {
  1093.         String nome = null;
  1094.         if(StringUtils.isNotEmpty(this.getOrganization())) {
  1095.             try {
  1096.                 nome = NamingUtils.getLabelSoggetto(this.getProfile(), this.getOrganizationType(), this.getOrganization());
  1097.             }catch(Exception e) {
  1098.                 // ignore
  1099.             }
  1100.         }
  1101.         return correctValue(nome, defaultValue);
  1102.     }
  1103.     public java.lang.String getRole() {
  1104.         return getRole(null);
  1105.     }
  1106.     public java.lang.String getRole(String defaultValue) {
  1107.         String s = null;
  1108.         if(this.transazione.getPddRuolo()!=null) {
  1109.             if(org.openspcoop2.core.transazioni.constants.PddRuolo.DELEGATA.equals(this.transazione.getPddRuolo())) {
  1110.                 s = "fruizione";
  1111.             }
  1112.             else {
  1113.                 s = "erogazione";
  1114.             }
  1115.         }
  1116.         return correctValue(s, defaultValue);
  1117.     }

  1118.    
  1119.     // soggetto mittente
  1120.    
  1121.     public java.lang.String getSenderType() {
  1122.         return getSenderType(null);
  1123.     }
  1124.     public java.lang.String getSenderType(String defaultValue) {
  1125.         return correctValue(this.transazione.getTipoSoggettoFruitore(), defaultValue);
  1126.     }
  1127.     public java.lang.String getSender() {
  1128.         return getSender(null);
  1129.     }
  1130.     public java.lang.String getSender(String defaultValue) {
  1131.         return correctValue(this.transazione.getNomeSoggettoFruitore(), defaultValue);
  1132.     }
  1133.     public java.lang.String getSenderId() {
  1134.         return getSenderId(null);
  1135.     }
  1136.     public java.lang.String getSenderId(String defaultValue) {
  1137.         String nome = null;
  1138.         if(StringUtils.isNotEmpty(this.getSender())) {
  1139.             try {
  1140.                 nome = NamingUtils.getLabelSoggetto(this.getProfile(), this.getSenderType(), this.getSender());
  1141.             }catch(Exception e) {
  1142.                 // ignore
  1143.             }
  1144.         }
  1145.         return correctValue(nome, defaultValue);
  1146.     }
  1147.     public java.lang.String getSenderDomain() {
  1148.         return getSenderDomain(null);
  1149.     }
  1150.     public java.lang.String getSenderDomain(String defaultValue) {
  1151.         return correctValue(this.transazione.getIdportaSoggettoFruitore(), defaultValue);
  1152.     }
  1153.     public java.lang.String getSenderURI() {
  1154.         return getSenderURI(null);
  1155.     }
  1156.     public java.lang.String getSenderURI(String defaultValue) {
  1157.         return correctValue(this.transazione.getIndirizzoSoggettoFruitore(), defaultValue);
  1158.     }
  1159.    
  1160.     public java.lang.String getSenderProperty(String name) {
  1161.         return getSenderProperty(name, null);
  1162.     }
  1163.     public java.lang.String getSenderProperty(String name, String defaultValue) {
  1164.         return correctValue(this.infoConfigurazione.getSenderProperty(name),defaultValue);
  1165.     }
  1166.     public java.lang.String getSenderPropertiesKeys(){
  1167.         return getSenderPropertiesKeys(null);
  1168.     }
  1169.     public java.lang.String getSenderPropertiesKeys(String defaultValue){
  1170.         return getSenderPropertiesKeys(InfoConfigurazione.KEYS_SEPARATOR,defaultValue);
  1171.     }
  1172.     public java.lang.String getSenderPropertiesKeys(String separator, String defaultValue){
  1173.         return correctValue(this.infoConfigurazione.getSenderPropertiesKeysAsString(separator),defaultValue);
  1174.     }
  1175.     public java.lang.String getSenderProperties(){
  1176.         return getSenderProperties(null);
  1177.     }
  1178.     public java.lang.String getSenderProperties(String defaultValue){
  1179.         return getSenderProperties(InfoConfigurazione.PROPERTY_SEPARATOR,InfoConfigurazione.VALUE_SEPARATOR,defaultValue);
  1180.     }
  1181.     public java.lang.String getSenderProperties(String propertySeparator, String valueSeparator){
  1182.         return getSenderProperties(propertySeparator, valueSeparator, null);
  1183.     }
  1184.     public java.lang.String getSenderProperties(String propertySeparator, String valueSeparator, String defaultValue){
  1185.         return correctValue(this.infoConfigurazione.getSenderPropertiesAsString(propertySeparator,valueSeparator),defaultValue);
  1186.     }
  1187.    
  1188.     // soggetto destinatario
  1189.    
  1190.     public java.lang.String getProviderType() {
  1191.         return getProviderType(null);
  1192.     }
  1193.     public java.lang.String getProviderType(String defaultValue) {
  1194.         return correctValue(this.transazione.getTipoSoggettoErogatore(), defaultValue);
  1195.     }
  1196.     public java.lang.String getProvider() {
  1197.         return getProvider(null);
  1198.     }
  1199.     public java.lang.String getProvider(String defaultValue) {
  1200.         return correctValue(this.transazione.getNomeSoggettoErogatore(), defaultValue);
  1201.     }
  1202.     public java.lang.String getProviderId() {
  1203.         return getProviderId(null);
  1204.     }
  1205.     public java.lang.String getProviderId(String defaultValue) {
  1206.         String nome = null;
  1207.         if(StringUtils.isNotEmpty(this.getProvider())) {
  1208.             try {
  1209.                 nome = NamingUtils.getLabelSoggetto(this.getProfile(), this.getProviderType(), this.getProvider());
  1210.             }catch(Exception e) {
  1211.                 // ignore
  1212.             }
  1213.         }
  1214.         return correctValue(nome, defaultValue);
  1215.     }
  1216.     public java.lang.String getProviderDomain() {
  1217.         return getProviderDomain(null);
  1218.     }
  1219.     public java.lang.String getProviderDomain(String defaultValue) {
  1220.         return correctValue(this.transazione.getIdportaSoggettoErogatore(), defaultValue);
  1221.     }
  1222.     public java.lang.String getProviderURI() {
  1223.         return getProviderURI(null);
  1224.     }
  1225.     public java.lang.String getProviderURI(String defaultValue) {
  1226.         return correctValue(this.transazione.getIndirizzoSoggettoErogatore(), defaultValue);
  1227.     }
  1228.    
  1229.     public java.lang.String getProviderProperty(String name) {
  1230.         return getProviderProperty(name, null);
  1231.     }
  1232.     public java.lang.String getProviderProperty(String name, String defaultValue) {
  1233.         return correctValue(this.infoConfigurazione.getProviderProperty(name),defaultValue);
  1234.     }
  1235.     public java.lang.String getProviderPropertiesKeys(){
  1236.         return getProviderPropertiesKeys(null);
  1237.     }
  1238.     public java.lang.String getProviderPropertiesKeys(String defaultValue){
  1239.         return getProviderPropertiesKeys(InfoConfigurazione.KEYS_SEPARATOR,defaultValue);
  1240.     }
  1241.     public java.lang.String getProviderPropertiesKeys(String separator, String defaultValue){
  1242.         return correctValue(this.infoConfigurazione.getProviderPropertiesKeysAsString(separator),defaultValue);
  1243.     }
  1244.     public java.lang.String getProviderProperties(){
  1245.         return getProviderProperties(null);
  1246.     }
  1247.     public java.lang.String getProviderProperties(String defaultValue){
  1248.         return getProviderProperties(InfoConfigurazione.PROPERTY_SEPARATOR,InfoConfigurazione.VALUE_SEPARATOR,defaultValue);
  1249.     }
  1250.     public java.lang.String getProviderProperties(String propertySeparator, String valueSeparator){
  1251.         return getProviderProperties(propertySeparator, valueSeparator, null);
  1252.     }
  1253.     public java.lang.String getProviderProperties(String propertySeparator, String valueSeparator, String defaultValue){
  1254.         return correctValue(this.infoConfigurazione.getProviderPropertiesAsString(propertySeparator,valueSeparator),defaultValue);
  1255.     }
  1256.    
  1257.    
  1258.     // profilo di collaborazione
  1259.    
  1260.     public java.lang.String getCollaborationProfileCode() {
  1261.         return getCollaborationProfileCode(null);
  1262.     }
  1263.     public java.lang.String getCollaborationProfileCode(String defaultValue) {
  1264.         return correctValue(this.transazione.getProfiloCollaborazioneOp2(), defaultValue);
  1265.     }
  1266.     public java.lang.String getCollaborationProfile() {
  1267.         return getCollaborationProfile(null);
  1268.     }
  1269.     public java.lang.String getCollaborationProfile(String defaultValue) {
  1270.         return correctValue(this.transazione.getProfiloCollaborazioneProt(), defaultValue);
  1271.     }
  1272.    
  1273.    
  1274.     // API
  1275.    
  1276.     public String getApiProtocol() {
  1277.         return getApiProtocol(null);
  1278.     }
  1279.     public String getApiProtocol(String defaultValue) {
  1280.         if(TipoAPI.REST.getValoreAsInt() == this.transazione.getTipoApi()) {
  1281.             return "rest";
  1282.         }
  1283.         else if(TipoAPI.SOAP.getValoreAsInt() == this.transazione.getTipoApi()) {
  1284.             return "soap";
  1285.         }
  1286.         else {
  1287.             return this.correctValue(null, defaultValue);
  1288.         }
  1289.     }
  1290.    
  1291.     public java.lang.String getApiInterface() {
  1292.         return getApiInterface(null);
  1293.     }
  1294.     public java.lang.String getApiInterface(String defaultValue) {
  1295.         return correctValue(this.transazione.getUriAccordoServizio(), defaultValue);
  1296.     }
  1297.    
  1298.     public java.lang.String getApiInterfaceId() {
  1299.         return getApiInterfaceId(null);
  1300.     }
  1301.     public java.lang.String getApiInterfaceId(String defaultValue) {
  1302.         String p = null;
  1303.         try {
  1304.             String parteComune = this.transazione.getUriAccordoServizio();
  1305.             if(parteComune!=null && !"".equals(parteComune)) {
  1306.                 p = getApiInterfaceIdEngine(parteComune);
  1307.             }
  1308.         }catch(Exception e) {
  1309.             // ignore
  1310.         }
  1311.         return correctValue(p, defaultValue);
  1312.     }
  1313.     private String getApiInterfaceIdEngine(String parteComune) {
  1314.         try {
  1315.             IDAccordo idAccordo = IDAccordoFactory.getInstance().getIDAccordoFromUri(parteComune);
  1316.             return NamingUtils.getLabelAccordoServizioParteComune(idAccordo);
  1317.         }catch(Exception t) {
  1318.             // ignore
  1319.         }
  1320.         return null;
  1321.     }
  1322.    
  1323.     public java.lang.String getApiType() {
  1324.         return getApiType(null);
  1325.     }
  1326.     public java.lang.String getApiType(String defaultValue) {
  1327.         return correctValue(this.transazione.getTipoServizio(), defaultValue);
  1328.     }
  1329.    
  1330.     public java.lang.String getApi() {
  1331.         return getApi(null);
  1332.     }
  1333.     public java.lang.String getApi(String defaultValue) {
  1334.         return correctValue(this.transazione.getNomeServizio(), defaultValue);
  1335.     }
  1336.    
  1337.     public int getApiVersion() {
  1338.         return getApiVersion(null);
  1339.     }
  1340.     public int getApiVersion(String defaultValue) {
  1341.         return correctInteger(this.transazione.getVersioneServizio(),defaultValue);
  1342.     }
  1343.    
  1344.     public java.lang.String getApiId() {
  1345.         return getApiId(null);
  1346.     }
  1347.     public java.lang.String getApiId(String defaultValue) {
  1348.         String nome = null;
  1349.         if(StringUtils.isNotEmpty(this.getApi())) {
  1350.             try {
  1351.                 nome = NamingUtils.getLabelAccordoServizioParteSpecificaSenzaErogatore(this.getProfile(), this.getApiType(), this.getApi(), this.getApiVersion());
  1352.             }catch(Exception e) {
  1353.                 // ignore
  1354.             }
  1355.         }
  1356.         return correctValue(nome, defaultValue);
  1357.     }
  1358.    
  1359.     public java.lang.String getApiProperty(String name) {
  1360.         return getApiProperty(name, null);
  1361.     }
  1362.     public java.lang.String getApiProperty(String name, String defaultValue) {
  1363.         return correctValue(this.infoConfigurazione.getApiImplProperty(name),defaultValue);
  1364.     }
  1365.     public java.lang.String getApiPropertiesKeys(){
  1366.         return getApiPropertiesKeys(null);
  1367.     }
  1368.     public java.lang.String getApiPropertiesKeys(String defaultValue){
  1369.         return getApiPropertiesKeys(InfoConfigurazione.KEYS_SEPARATOR,defaultValue);
  1370.     }
  1371.     public java.lang.String getApiPropertiesKeys(String separator, String defaultValue){
  1372.         return correctValue(this.infoConfigurazione.getApiImplPropertiesKeysAsString(separator),defaultValue);
  1373.     }
  1374.     public java.lang.String getApiProperties(){
  1375.         return getApiProperties(null);
  1376.     }
  1377.     public java.lang.String getApiProperties(String defaultValue){
  1378.         return getApiProperties(InfoConfigurazione.PROPERTY_SEPARATOR,InfoConfigurazione.VALUE_SEPARATOR,defaultValue);
  1379.     }
  1380.     public java.lang.String getApiProperties(String propertySeparator, String valueSeparator){
  1381.         return getApiProperties(propertySeparator, valueSeparator, null);
  1382.     }
  1383.     public java.lang.String getApiProperties(String propertySeparator, String valueSeparator, String defaultValue){
  1384.         return correctValue(this.infoConfigurazione.getApiImplPropertiesAsString(propertySeparator,valueSeparator),defaultValue);
  1385.     }
  1386.    
  1387.     public java.lang.String getInterface() {
  1388.         return getInterface(null);
  1389.     }
  1390.     public java.lang.String getInterface(String defaultValue) {
  1391.         return correctValue(this.transazione.getNomePorta(), defaultValue);
  1392.     }
  1393.    
  1394.    
  1395.     // Operazione
  1396.    
  1397.     public java.lang.String getAction() {
  1398.         return getAction(null);
  1399.     }
  1400.     public java.lang.String getAction(String defaultValue) {
  1401.         return correctValue(this.transazione.getAzione(), defaultValue);
  1402.     }
  1403.    
  1404.     public java.lang.String getHttpMethod() {
  1405.         return getHttpMethod(null);
  1406.     }
  1407.     public java.lang.String getHttpMethod(String defaultValue) {
  1408.         return correctValue(this.transazione.getTipoRichiesta(), defaultValue);
  1409.     }
  1410.    
  1411.     public java.lang.String getOutURL() {
  1412.         return getOutURL(null);
  1413.     }
  1414.     public java.lang.String getOutURL(String defaultValue) {
  1415.         String url = this.transazione.getLocationConnettore();
  1416.         if(url!=null && url.startsWith("[") && url.contains("] ")) {
  1417.             // [HttpType]  es.: [POST]
  1418.             url = url.substring(url.indexOf("] ")+2);
  1419.         }
  1420.         return correctValue(url, defaultValue);
  1421.     }
  1422.    
  1423.     public java.lang.String getOutConnectorName() {
  1424.         return getOutConnectorName(null);
  1425.     }
  1426.     public java.lang.String getOutConnectorName(String defaultValue) {
  1427.         return correctValue(this.infoConfigurazione.getOutConnectorName(), defaultValue);
  1428.     }
  1429.    
  1430.     public java.lang.String getInURL() {
  1431.         return getInURL(null);
  1432.     }
  1433.     public java.lang.String getInURL(String defaultValue) {
  1434.         String url = this.transazione.getUrlInvocazione();
  1435.         if(url!=null && url.startsWith("[") && url.contains("] ")) {
  1436.             // [function]  es.: [in]
  1437.             url = url.substring(url.indexOf("] ")+2);
  1438.         }
  1439.         return correctValue(url, defaultValue);
  1440.     }
  1441.    
  1442.     public java.lang.String getInFunction() {
  1443.         return getInFunction(null);
  1444.     }
  1445.     public java.lang.String getInFunction(String defaultValue) {
  1446.         String url = this.transazione.getUrlInvocazione();
  1447.         String function = null;
  1448.         if(url.startsWith("[") && url.contains("] ")) {
  1449.             // [function]  es.: [in]
  1450.             function = url.substring(1,url.indexOf("] "));
  1451.         }
  1452.         return correctValue(function, defaultValue);
  1453.     }
  1454.    
  1455.    
  1456.     // Mittente
  1457.    
  1458.     public java.lang.String getApplication() {
  1459.         return getApplication(null);
  1460.     }
  1461.     public java.lang.String getApplication(String defaultValue) {
  1462.         return correctValue(this.transazione.getServizioApplicativoFruitore(), defaultValue);
  1463.     }
  1464.    
  1465.     public java.lang.String getApplicationProperty(String name) {
  1466.         return getApplicationProperty(name, null);
  1467.     }
  1468.     public java.lang.String getApplicationProperty(String name, String defaultValue) {
  1469.         return correctValue(this.infoConfigurazione.getApplicationProperty(name),defaultValue);
  1470.     }
  1471.     public java.lang.String getApplicationPropertiesKeys(){
  1472.         return getApplicationPropertiesKeys(null);
  1473.     }
  1474.     public java.lang.String getApplicationPropertiesKeys(String defaultValue){
  1475.         return getApplicationPropertiesKeys(InfoConfigurazione.KEYS_SEPARATOR,defaultValue);
  1476.     }
  1477.     public java.lang.String getApplicationPropertiesKeys(String separator, String defaultValue){
  1478.         return correctValue(this.infoConfigurazione.getApplicationPropertiesKeysAsString(separator),defaultValue);
  1479.     }
  1480.     public java.lang.String getApplicationProperties(){
  1481.         return getApplicationProperties(null);
  1482.     }
  1483.     public java.lang.String getApplicationProperties(String defaultValue){
  1484.         return getApplicationProperties(InfoConfigurazione.PROPERTY_SEPARATOR,InfoConfigurazione.VALUE_SEPARATOR,defaultValue);
  1485.     }
  1486.     public java.lang.String getApplicationProperties(String propertySeparator, String valueSeparator){
  1487.         return getApplicationProperties(propertySeparator, valueSeparator, null);
  1488.     }
  1489.     public java.lang.String getApplicationProperties(String propertySeparator, String valueSeparator, String defaultValue){
  1490.         return correctValue(this.infoConfigurazione.getApplicationPropertiesAsString(propertySeparator,valueSeparator),defaultValue);
  1491.     }
  1492.    
  1493.     public java.lang.String getCredentials() {
  1494.         return getCredentials(null);
  1495.     }
  1496.     public java.lang.String getCredentials(String defaultValue) {
  1497.         return correctValue(this.transazione.getCredenziali(), defaultValue);
  1498.     }
  1499.    
  1500.     public java.lang.String getPrincipalAuthType() {
  1501.         return getPrincipalAuthType(null);
  1502.     }
  1503.     public java.lang.String getPrincipalAuthType(String defaultValue) {
  1504.         String tipo = this.credenzialiMittente!=null && this.credenzialiMittente.getTrasporto()!=null ? this.credenzialiMittente.getTrasporto().getTipo() : null;
  1505.         if(tipo!=null && tipo.contains("_")) {
  1506.             try {
  1507.                 String soloTipoAuth = tipo.substring(tipo.indexOf("_")+1, tipo.length());
  1508.                 if(soloTipoAuth!=null) {
  1509.                     tipo = soloTipoAuth;
  1510.                 }
  1511.             }catch(Exception e) {
  1512.                 // ignore
  1513.             }
  1514.         }
  1515.         return correctValue(tipo, defaultValue);
  1516.     }
  1517.    
  1518.     public java.lang.String getPrincipal() {
  1519.         return getPrincipal(null);
  1520.     }
  1521.     public java.lang.String getPrincipal(String defaultValue) {
  1522.         return correctValue(this.credenzialiMittente!=null && this.credenzialiMittente.getTrasporto()!=null ? this.credenzialiMittente.getTrasporto().getCredenziale() : null, defaultValue);
  1523.     }
  1524.    
  1525.     public java.lang.String getClientCertificateSubjectDN() {
  1526.         return getClientCertificateSubjectDN(null);
  1527.     }
  1528.     public java.lang.String getClientCertificateSubjectDN(String defaultValue) {
  1529.         String v = null;
  1530.         if(this.securityToken!=null && this.securityToken.getChannel()!=null && this.securityToken.getChannel().getCertificate()!=null &&
  1531.             this.securityToken.getChannel().getCertificate().getSubject()!=null) {
  1532.             v = this.securityToken.getChannel().getCertificate().getSubject().toString();
  1533.         }
  1534.         return correctValue(v, defaultValue);
  1535.     }
  1536.    
  1537.     public java.lang.String getClientCertificateSubjectCN() {
  1538.         return getClientCertificateSubjectCN(null);
  1539.     }
  1540.     public java.lang.String getClientCertificateSubjectCN(String defaultValue) {
  1541.         String v = null;
  1542.         if(this.securityToken!=null && this.securityToken.getChannel()!=null && this.securityToken.getChannel().getCertificate()!=null &&
  1543.             this.securityToken.getChannel().getCertificate().getSubject()!=null) {
  1544.             v = this.securityToken.getChannel().getCertificate().getSubject().getCN();
  1545.         }
  1546.         return correctValue(v, defaultValue);
  1547.     }
  1548.    
  1549.     public java.lang.String getClientCertificateSubjectDNInfo(String oid) {
  1550.         return getClientCertificateSubjectDNInfo(oid, null);
  1551.     }
  1552.     public java.lang.String getClientCertificateSubjectDNInfo(String oid, String defaultValue) {
  1553.         String v = null;
  1554.         if(this.securityToken!=null && this.securityToken.getChannel()!=null && this.securityToken.getChannel().getCertificate()!=null &&
  1555.             this.securityToken.getChannel().getCertificate().getSubject()!=null) {
  1556.             v = this.securityToken.getChannel().getCertificate().getSubject().getInfo(oid);
  1557.         }
  1558.         return correctValue(v, defaultValue);
  1559.     }
  1560.    
  1561.     public java.lang.String getClientCertificateIssuerDN() {
  1562.         return getClientCertificateIssuerDN(null);
  1563.     }
  1564.     public java.lang.String getClientCertificateIssuerDN(String defaultValue) {
  1565.         String v = null;
  1566.         if(this.securityToken!=null && this.securityToken.getChannel()!=null && this.securityToken.getChannel().getCertificate()!=null &&
  1567.             this.securityToken.getChannel().getCertificate().getIssuer()!=null) {
  1568.             v = this.securityToken.getChannel().getCertificate().getIssuer().toString();
  1569.         }
  1570.         return correctValue(v, defaultValue);
  1571.     }
  1572.    
  1573.     public java.lang.String getClientCertificateIssuerCN() {
  1574.         return getClientCertificateIssuerCN(null);
  1575.     }
  1576.     public java.lang.String getClientCertificateIssuerCN(String defaultValue) {
  1577.         String v = null;
  1578.         if(this.securityToken!=null && this.securityToken.getChannel()!=null && this.securityToken.getChannel().getCertificate()!=null &&
  1579.             this.securityToken.getChannel().getCertificate().getIssuer()!=null) {
  1580.             v = this.securityToken.getChannel().getCertificate().getIssuer().getCN();
  1581.         }
  1582.         return correctValue(v, defaultValue);
  1583.     }
  1584.    
  1585.     public java.lang.String getClientCertificateIssuerDNInfo(String oid) {
  1586.         return getClientCertificateIssuerDNInfo(oid, null);
  1587.     }
  1588.     public java.lang.String getClientCertificateIssuerDNInfo(String oid, String defaultValue) {
  1589.         String v = null;
  1590.         if(this.securityToken!=null && this.securityToken.getChannel()!=null && this.securityToken.getChannel().getCertificate()!=null &&
  1591.             this.securityToken.getChannel().getCertificate().getIssuer()!=null) {
  1592.             v = this.securityToken.getChannel().getCertificate().getIssuer().getInfo(oid);
  1593.         }
  1594.         return correctValue(v, defaultValue);
  1595.     }
  1596.    
  1597.     public java.lang.String getToken() {
  1598.         return getToken(null);
  1599.     }
  1600.     public java.lang.String getToken(String defaultValue) {
  1601.         return correctValue(this.transazione.getTokenInfo(), defaultValue);
  1602.     }
  1603.    
  1604.     public java.lang.String getTokenIssuer() {
  1605.         return getTokenIssuer(null);
  1606.     }
  1607.     public java.lang.String getTokenIssuer(String defaultValue) {
  1608.         return correctValue(this.credenzialiMittente!=null && this.credenzialiMittente.getTokenIssuer()!=null ? this.credenzialiMittente.getTokenIssuer().getCredenziale() : null, defaultValue);
  1609.     }
  1610.    
  1611.     public java.lang.String getTokenSubject() {
  1612.         return getTokenSubject(null);
  1613.     }
  1614.     public java.lang.String getTokenSubject(String defaultValue) {
  1615.         return correctValue(this.credenzialiMittente!=null && this.credenzialiMittente.getTokenSubject()!=null ? this.credenzialiMittente.getTokenSubject().getCredenziale() : null, defaultValue);
  1616.     }
  1617.    
  1618.     public java.lang.String getTokenClientId() {
  1619.         return getTokenClientId(null);
  1620.     }
  1621.     public java.lang.String getTokenClientId(String defaultValue) {
  1622.         return correctValue(this.credenzialiMittente!=null && this.credenzialiMittente.getTokenClientId()!=null ? CredenzialeTokenClient.convertClientIdDBValueToOriginal(this.credenzialiMittente.getTokenClientId().getCredenziale()) : null, defaultValue);
  1623.     }
  1624.    
  1625.     private IDServizioApplicativo tokenClientApplication;
  1626.     private Boolean tokenClientApplicationRead;
  1627.     private void initTokenClientApplicationEngine() {
  1628.         try {
  1629.             this.tokenClientApplication = this.credenzialiMittente!=null && this.credenzialiMittente.getTokenClientId()!=null ? CredenzialeTokenClient.convertApplicationDBValueToOriginal(this.credenzialiMittente.getTokenClientId().getCredenziale()) : null;
  1630.         }catch(Exception t) {
  1631.             this.log.error("_initTokenClientApplication()"+getErrorSuffix(t),t);
  1632.         }
  1633.         this.tokenClientApplicationRead=true;
  1634.     }
  1635.     private IDServizioApplicativo getTokenClientApplicationEngine() {
  1636.         if(this.tokenClientApplicationRead==null) {
  1637.             initTokenClientApplicationEngine();
  1638.         }
  1639.         return this.tokenClientApplication;
  1640.     }
  1641.    
  1642.     public java.lang.String getTokenClientApplication() {
  1643.         return getTokenClientApplication(null);
  1644.     }
  1645.     public java.lang.String getTokenClientApplication(String defaultValue) {
  1646.         IDServizioApplicativo idSA = getTokenClientApplicationEngine();
  1647.         return correctValue(idSA!=null ? idSA.getNome() : null, defaultValue);
  1648.     }
  1649.    
  1650.     public java.lang.String getTokenClientApplicationProperty(String name) {
  1651.         return getTokenClientApplicationProperty(name, null);
  1652.     }
  1653.     public java.lang.String getTokenClientApplicationProperty(String name, String defaultValue) {
  1654.         return correctValue(this.infoConfigurazione.getTokenClientApplicationProperty(name),defaultValue);
  1655.     }
  1656.     public java.lang.String getTokenClientApplicationPropertiesKeys(){
  1657.         return getTokenClientApplicationPropertiesKeys(null);
  1658.     }
  1659.     public java.lang.String getTokenClientApplicationPropertiesKeys(String defaultValue){
  1660.         return getTokenClientApplicationPropertiesKeys(InfoConfigurazione.KEYS_SEPARATOR,defaultValue);
  1661.     }
  1662.     public java.lang.String getTokenClientApplicationPropertiesKeys(String separator, String defaultValue){
  1663.         return correctValue(this.infoConfigurazione.getTokenClientApplicationPropertiesKeysAsString(separator),defaultValue);
  1664.     }
  1665.     public java.lang.String getTokenClientApplicationProperties(){
  1666.         return getTokenClientApplicationProperties(null);
  1667.     }
  1668.     public java.lang.String getTokenClientApplicationProperties(String defaultValue){
  1669.         return getTokenClientApplicationProperties(InfoConfigurazione.PROPERTY_SEPARATOR,InfoConfigurazione.VALUE_SEPARATOR,defaultValue);
  1670.     }
  1671.     public java.lang.String getTokenClientApplicationProperties(String propertySeparator, String valueSeparator){
  1672.         return getTokenClientApplicationProperties(propertySeparator, valueSeparator, null);
  1673.     }
  1674.     public java.lang.String getTokenClientApplicationProperties(String propertySeparator, String valueSeparator, String defaultValue){
  1675.         return correctValue(this.infoConfigurazione.getTokenClientApplicationPropertiesAsString(propertySeparator,valueSeparator),defaultValue);
  1676.     }
  1677.    
  1678.     public java.lang.String getTokenClientOrganizationType() {
  1679.         return getTokenClientOrganizationType(null);
  1680.     }
  1681.     public java.lang.String getTokenClientOrganizationType(String defaultValue) {
  1682.         IDServizioApplicativo idSA = getTokenClientApplicationEngine();
  1683.         return correctValue(idSA!=null ? idSA.getIdSoggettoProprietario().getTipo() : null, defaultValue);
  1684.     }
  1685.     public java.lang.String getTokenClientOrganization() {
  1686.         return getTokenClientOrganization(null);
  1687.     }
  1688.     public java.lang.String getTokenClientOrganization(String defaultValue) {
  1689.         IDServizioApplicativo idSA = getTokenClientApplicationEngine();
  1690.         return correctValue(idSA!=null ? idSA.getIdSoggettoProprietario().getNome() : null, defaultValue);
  1691.     }
  1692.     public java.lang.String getTokenClientOrganizationId() {
  1693.         return getTokenClientOrganizationId(null);
  1694.     }
  1695.     public java.lang.String getTokenClientOrganizationId(String defaultValue) {
  1696.         String nome = null;
  1697.         if(StringUtils.isNotEmpty(this.getTokenClientOrganization())) {
  1698.             try {
  1699.                 nome = NamingUtils.getLabelSoggetto(this.getProfile(), this.getTokenClientOrganizationType(), this.getTokenClientOrganization());
  1700.             }catch(Exception e) {
  1701.                 // ignore
  1702.             }
  1703.         }
  1704.         return correctValue(nome, defaultValue);
  1705.     }
  1706.    
  1707.     public java.lang.String getTokenClientOrganizationProperty(String name) {
  1708.         return getTokenClientOrganizationProperty(name, null);
  1709.     }
  1710.     public java.lang.String getTokenClientOrganizationProperty(String name, String defaultValue) {
  1711.         return correctValue(this.infoConfigurazione.getTokenClientOrganizationProperty(name),defaultValue);
  1712.     }
  1713.     public java.lang.String getTokenClientOrganizationPropertiesKeys(){
  1714.         return getTokenClientOrganizationPropertiesKeys(null);
  1715.     }
  1716.     public java.lang.String getTokenClientOrganizationPropertiesKeys(String defaultValue){
  1717.         return getTokenClientOrganizationPropertiesKeys(InfoConfigurazione.KEYS_SEPARATOR,defaultValue);
  1718.     }
  1719.     public java.lang.String getTokenClientOrganizationPropertiesKeys(String separator, String defaultValue){
  1720.         return correctValue(this.infoConfigurazione.getTokenClientOrganizationPropertiesKeysAsString(separator),defaultValue);
  1721.     }
  1722.     public java.lang.String getTokenClientOrganizationProperties(){
  1723.         return getTokenClientOrganizationProperties(null);
  1724.     }
  1725.     public java.lang.String getTokenClientOrganizationProperties(String defaultValue){
  1726.         return getTokenClientOrganizationProperties(InfoConfigurazione.PROPERTY_SEPARATOR,InfoConfigurazione.VALUE_SEPARATOR,defaultValue);
  1727.     }
  1728.     public java.lang.String getTokenClientOrganizationProperties(String propertySeparator, String valueSeparator){
  1729.         return getTokenClientOrganizationProperties(propertySeparator, valueSeparator, null);
  1730.     }
  1731.     public java.lang.String getTokenClientOrganizationProperties(String propertySeparator, String valueSeparator, String defaultValue){
  1732.         return correctValue(this.infoConfigurazione.getTokenClientOrganizationPropertiesAsString(propertySeparator,valueSeparator),defaultValue);
  1733.     }
  1734.    
  1735.     public java.lang.String getTokenUsername() {
  1736.         return getTokenUsername(null);
  1737.     }
  1738.     public java.lang.String getTokenUsername(String defaultValue) {
  1739.         return correctValue(this.credenzialiMittente!=null && this.credenzialiMittente.getTokenUsername()!=null ? this.credenzialiMittente.getTokenUsername().getCredenziale() : null, defaultValue);
  1740.     }
  1741.    
  1742.     public java.lang.String getTokenMail() {
  1743.         return getTokenMail(null);
  1744.     }
  1745.     public java.lang.String getTokenMail(String defaultValue) {
  1746.         return correctValue(this.credenzialiMittente!=null && this.credenzialiMittente.getTokenEMail()!=null ? this.credenzialiMittente.getTokenEMail().getCredenziale() : null, defaultValue);
  1747.     }
  1748.    
  1749.     public java.lang.String getTokenClaim(String tokenClaim) {
  1750.         return getTokenClaim(tokenClaim, null);
  1751.     }
  1752.     public java.lang.String getTokenClaim(String tokenClaim, String defaultValue) {
  1753.         String v = null;
  1754.         if(tokenClaim!=null &&
  1755.                 this.informazioniToken!=null &&
  1756.                 this.informazioniToken.getClaims()!=null &&
  1757.                 this.informazioniToken.getClaims().containsKey(tokenClaim)) {
  1758.             Object valueInfoTokenObject = this.informazioniToken.getClaims().get(tokenClaim);
  1759.             if(valueInfoTokenObject!=null) {
  1760.                 List<String> lClaimValues = TokenUtilities.getClaimValues(valueInfoTokenObject);
  1761.                 v = TokenUtilities.getClaimValuesAsString(lClaimValues);
  1762.             }
  1763.         }  
  1764.         return correctValue(v, defaultValue);
  1765.     }
  1766.    
  1767.     public java.lang.String getTokenRaw() {
  1768.         return getTokenRaw(null);
  1769.     }
  1770.     public java.lang.String getTokenRaw(String defaultValue) {
  1771.         String v = null;
  1772.         if(this.securityToken!=null && this.securityToken.getAccessToken()!=null) {
  1773.             v = this.securityToken.getAccessToken().getToken();
  1774.         }
  1775.         return correctValue(v, defaultValue);
  1776.     }
  1777.    
  1778.     public java.lang.String getTokenHeaderRaw() {
  1779.         return getTokenHeaderRaw(null);
  1780.     }
  1781.     public java.lang.String getTokenHeaderRaw(String defaultValue) {
  1782.         String v = null;
  1783.         if(this.securityToken!=null && this.securityToken.getAccessToken()!=null) {
  1784.             v = this.securityToken.getAccessToken().getHeader();
  1785.         }
  1786.         return correctValue(v, defaultValue);
  1787.     }
  1788.    
  1789.     public java.lang.String getTokenDecodedHeader() {
  1790.         return getTokenDecodedHeader(null);
  1791.     }
  1792.     public java.lang.String getTokenDecodedHeader(String defaultValue) {
  1793.         String v = null;
  1794.         if(this.securityToken!=null && this.securityToken.getAccessToken()!=null) {
  1795.             v = this.securityToken.getAccessToken().getDecodedHeader();
  1796.         }
  1797.         return correctValue(v, defaultValue);
  1798.     }
  1799.    
  1800.     public java.lang.String getTokenHeaderClaim(String tokenClaim) {
  1801.         return getTokenHeaderClaim(tokenClaim, null);
  1802.     }
  1803.     public java.lang.String getTokenHeaderClaim(String tokenClaim, String defaultValue) {
  1804.         String v = null;
  1805.         if(this.securityToken!=null && this.securityToken.getAccessToken()!=null) {
  1806.             try {
  1807.                 v = this.securityToken.getAccessToken().getHeaderClaim(tokenClaim);
  1808.             }catch(Exception t) {
  1809.                 this.log.error("getTokenHeaderClaim("+tokenClaim+")"+getErrorSuffix(t),t);
  1810.             }
  1811.         }
  1812.         return correctValue(v, defaultValue);
  1813.     }
  1814.    
  1815.     public java.lang.String getTokenHeaderClaims() {
  1816.         return getTokenHeaderClaims(",", "=", null);
  1817.     }
  1818.     public java.lang.String getTokenHeaderClaims(String claimSeparator, String nameValueSeparator, String defaultValue) {
  1819.         String v = null;
  1820.         if(this.securityToken!=null && this.securityToken.getAccessToken()!=null) {
  1821.             try {
  1822.                 Map<String, String> map = this.securityToken.getAccessToken().getHeaderClaims();
  1823.                 v = formatTokenClaims(map, claimSeparator, nameValueSeparator);
  1824.             }catch(Exception t) {
  1825.                 this.log.error("getTokenHeaderClaims("+claimSeparator+","+nameValueSeparator+")"+getErrorSuffix(t),t);
  1826.             }
  1827.         }
  1828.         return correctValue(v, defaultValue);
  1829.     }
  1830.    
  1831.     public java.lang.String getTokenPayloadRaw() {
  1832.         return getTokenPayloadRaw(null);
  1833.     }
  1834.     public java.lang.String getTokenPayloadRaw(String defaultValue) {
  1835.         String v = null;
  1836.         if(this.securityToken!=null && this.securityToken.getAccessToken()!=null) {
  1837.             v = this.securityToken.getAccessToken().getPayload();
  1838.         }
  1839.         return correctValue(v, defaultValue);
  1840.     }
  1841.    
  1842.     public java.lang.String getTokenDecodedPayload() {
  1843.         return getTokenDecodedPayload(null);
  1844.     }
  1845.     public java.lang.String getTokenDecodedPayload(String defaultValue) {
  1846.         String v = null;
  1847.         if(this.securityToken!=null && this.securityToken.getAccessToken()!=null) {
  1848.             v = this.securityToken.getAccessToken().getDecodedPayload();
  1849.         }
  1850.         return correctValue(v, defaultValue);
  1851.     }
  1852.    
  1853.     public java.lang.String getTokenPayloadClaim(String tokenClaim) {
  1854.         return getTokenPayloadClaim(tokenClaim, null);
  1855.     }
  1856.     public java.lang.String getTokenPayloadClaim(String tokenClaim, String defaultValue) {
  1857.         String v = null;
  1858.         if(this.securityToken!=null && this.securityToken.getAccessToken()!=null) {
  1859.             try {
  1860.                 v = this.securityToken.getAccessToken().getPayloadClaim(tokenClaim);
  1861.             }catch(Exception t) {
  1862.                 this.log.error("getTokenPayloadClaim("+tokenClaim+")"+getErrorSuffix(t),t);
  1863.             }
  1864.         }
  1865.         return correctValue(v, defaultValue);
  1866.     }
  1867.    
  1868.     public java.lang.String getTokenPayloadClaims() {
  1869.         return getTokenPayloadClaims(",", "=", null);
  1870.     }
  1871.     public java.lang.String getTokenPayloadClaims(String claimSeparator, String nameValueSeparator, String defaultValue) {
  1872.         String v = null;
  1873.         if(this.securityToken!=null && this.securityToken.getAccessToken()!=null) {
  1874.             try {
  1875.                 Map<String, String> map = this.securityToken.getAccessToken().getPayloadClaims();
  1876.                 v = formatTokenClaims(map, claimSeparator, nameValueSeparator);
  1877.             }catch(Exception t) {
  1878.                 this.log.error("getTokenPayloadClaims("+claimSeparator+","+nameValueSeparator+")"+getErrorSuffix(t),t);
  1879.             }
  1880.         }
  1881.         return correctValue(v, defaultValue);
  1882.     }
  1883.    
  1884.     public java.lang.String getTokenCertificateSubjectDN() {
  1885.         return getTokenCertificateSubjectDN(null);
  1886.     }
  1887.     public java.lang.String getTokenCertificateSubjectDN(String defaultValue) {
  1888.         String v = null;
  1889.         if(this.securityToken!=null && this.securityToken.getAccessToken()!=null && this.securityToken.getAccessToken().getCertificate()!=null &&
  1890.             this.securityToken.getAccessToken().getCertificate().getSubject()!=null) {
  1891.             v = this.securityToken.getAccessToken().getCertificate().getSubject().toString();
  1892.         }
  1893.         return correctValue(v, defaultValue);
  1894.     }
  1895.    
  1896.     public java.lang.String getTokenCertificateSubjectCN() {
  1897.         return getTokenCertificateSubjectCN(null);
  1898.     }
  1899.     public java.lang.String getTokenCertificateSubjectCN(String defaultValue) {
  1900.         String v = null;
  1901.         if(this.securityToken!=null && this.securityToken.getAccessToken()!=null && this.securityToken.getAccessToken().getCertificate()!=null &&
  1902.             this.securityToken.getAccessToken().getCertificate().getSubject()!=null) {
  1903.             v = this.securityToken.getAccessToken().getCertificate().getSubject().getCN();
  1904.         }
  1905.         return correctValue(v, defaultValue);
  1906.     }
  1907.    
  1908.     public java.lang.String getTokenCertificateSubjectDNInfo(String oid) {
  1909.         return getTokenCertificateSubjectDNInfo(oid, null);
  1910.     }
  1911.     public java.lang.String getTokenCertificateSubjectDNInfo(String oid, String defaultValue) {
  1912.         String v = null;
  1913.         if(this.securityToken!=null && this.securityToken.getAccessToken()!=null && this.securityToken.getAccessToken().getCertificate()!=null &&
  1914.             this.securityToken.getAccessToken().getCertificate().getSubject()!=null) {
  1915.             v = this.securityToken.getAccessToken().getCertificate().getSubject().getInfo(oid);
  1916.         }
  1917.         return correctValue(v, defaultValue);
  1918.     }
  1919.    
  1920.     public java.lang.String getTokenCertificateIssuerDN() {
  1921.         return getTokenCertificateIssuerDN(null);
  1922.     }
  1923.     public java.lang.String getTokenCertificateIssuerDN(String defaultValue) {
  1924.         String v = null;
  1925.         if(this.securityToken!=null && this.securityToken.getAccessToken()!=null && this.securityToken.getAccessToken().getCertificate()!=null &&
  1926.             this.securityToken.getAccessToken().getCertificate().getIssuer()!=null) {
  1927.             v = this.securityToken.getAccessToken().getCertificate().getIssuer().toString();
  1928.         }
  1929.         return correctValue(v, defaultValue);
  1930.     }
  1931.    
  1932.     public java.lang.String getTokenCertificateIssuerCN() {
  1933.         return getTokenCertificateIssuerCN(null);
  1934.     }
  1935.     public java.lang.String getTokenCertificateIssuerCN(String defaultValue) {
  1936.         String v = null;
  1937.         if(this.securityToken!=null && this.securityToken.getAccessToken()!=null && this.securityToken.getAccessToken().getCertificate()!=null &&
  1938.             this.securityToken.getAccessToken().getCertificate().getIssuer()!=null) {
  1939.             v = this.securityToken.getAccessToken().getCertificate().getIssuer().getCN();
  1940.         }
  1941.         return correctValue(v, defaultValue);
  1942.     }
  1943.    
  1944.     public java.lang.String getTokenCertificateIssuerDNInfo(String oid) {
  1945.         return getTokenCertificateIssuerDNInfo(oid, null);
  1946.     }
  1947.     public java.lang.String getTokenCertificateIssuerDNInfo(String oid, String defaultValue) {
  1948.         String v = null;
  1949.         if(this.securityToken!=null && this.securityToken.getAccessToken()!=null && this.securityToken.getAccessToken().getCertificate()!=null &&
  1950.             this.securityToken.getAccessToken().getCertificate().getIssuer()!=null) {
  1951.             v = this.securityToken.getAccessToken().getCertificate().getIssuer().getInfo(oid);
  1952.         }
  1953.         return correctValue(v, defaultValue);
  1954.     }
  1955.        
  1956.    
  1957.    
  1958.    
  1959.     public java.lang.String getPdndClientJson() {
  1960.         return getPdndClientJson(null);
  1961.     }
  1962.     public java.lang.String getPdndClientJson(String defaultValue) {
  1963.         return correctValue(getPdndClientJsonEngine(), defaultValue);
  1964.     }
  1965.     private String getPdndClientJsonEngine() {
  1966.         if(this.credenzialiMittente!=null && this.credenzialiMittente.getTokenPdndClientJson()!=null && this.credenzialiMittente.getTokenPdndClientJson().getCredenziale()!=null) {
  1967.             return this.credenzialiMittente.getTokenPdndClientJson().getCredenziale();
  1968.         }
  1969.         else if(this.securityToken!=null && this.securityToken.getPdnd()!=null && this.securityToken.getPdnd().getClientJson()!=null) {
  1970.             return this.securityToken.getPdnd().getClientJson();
  1971.         }
  1972.         return null;
  1973.     }
  1974.    
  1975.     public java.lang.String getPdndOrganizationJson() {
  1976.         return getPdndOrganizationJson(null);
  1977.     }
  1978.     public java.lang.String getPdndOrganizationJson(String defaultValue) {
  1979.         return correctValue(getPdndOrganizationJsonEngine(), defaultValue);
  1980.     }
  1981.     private String getPdndOrganizationJsonEngine() {
  1982.         if(this.credenzialiMittente!=null && this.credenzialiMittente.getTokenPdndOrganizationJson()!=null && this.credenzialiMittente.getTokenPdndOrganizationJson().getCredenziale()!=null) {
  1983.             return this.credenzialiMittente.getTokenPdndOrganizationJson().getCredenziale();
  1984.         }
  1985.         else if(this.securityToken!=null && this.securityToken.getPdnd()!=null && this.securityToken.getPdnd().getOrganizationJson()!=null) {
  1986.             return this.securityToken.getPdnd().getOrganizationJson();
  1987.         }
  1988.         return null;
  1989.     }
  1990.    
  1991.     public java.lang.String getPdndOrganizationName() {
  1992.         return getPdndOrganizationName(null);
  1993.     }
  1994.     public java.lang.String getPdndOrganizationName(String defaultValue) {
  1995.         String v = this.credenzialiMittente!=null && this.credenzialiMittente.getTokenPdndOrganizationName()!=null ? this.credenzialiMittente.getTokenPdndOrganizationName().getCredenziale() : null;
  1996.         if(v==null) {
  1997.             try {
  1998.                 v = this.securityToken!=null && this.securityToken.getPdnd()!=null ? this.securityToken.getPdnd().getOrganizationName() : null;
  1999.             }catch(Exception e) {
  2000.                 // ignore
  2001.             }
  2002.         }
  2003.         if(v==null) {
  2004.             PDNDTokenInfo info = this.getPDNDTokenOrganizationInfo();
  2005.             try {
  2006.                 if(info!=null) {
  2007.                     v = info.getOrganizationName(this.log);
  2008.                 }
  2009.             }catch(Exception e) {
  2010.                 // ignore
  2011.             }
  2012.         }
  2013.         return correctValue(v, defaultValue);
  2014.     }
  2015.    
  2016.     public java.lang.String getPdndOrganizationId() {
  2017.         return getPdndOrganizationId(null);
  2018.     }
  2019.     public java.lang.String getPdndOrganizationId(String defaultValue) {
  2020.         PDNDTokenInfo info = this.getPDNDTokenOrganizationInfo();
  2021.         String v = null;
  2022.         try {
  2023.             if(info!=null) {
  2024.                 v = info.getOrganizationId(this.log);
  2025.             }
  2026.         }catch(Exception e) {
  2027.             // ignore
  2028.         }
  2029.         return correctValue(v, defaultValue);
  2030.     }
  2031.    
  2032.     public java.lang.String getPdndOrganizationCategory() {
  2033.         return getPdndOrganizationCategory(null);
  2034.     }
  2035.     public java.lang.String getPdndOrganizationCategory(String defaultValue) {
  2036.         PDNDTokenInfo info = this.getPDNDTokenOrganizationInfo();
  2037.         String v = null;
  2038.         try {
  2039.             if(info!=null) {
  2040.                 v = info.getOrganizationCategory(this.log);
  2041.             }
  2042.         }catch(Exception e) {
  2043.             // ignore
  2044.         }
  2045.         return correctValue(v, defaultValue);
  2046.     }
  2047.    
  2048.     public java.lang.String getPdndOrganizationExternalOrigin() {
  2049.         return getPdndOrganizationExternalOrigin(null);
  2050.     }
  2051.     public java.lang.String getPdndOrganizationExternalOrigin(String defaultValue) {
  2052.         PDNDTokenInfo info = this.getPDNDTokenOrganizationInfo();
  2053.         String v = null;
  2054.         try {
  2055.             if(info!=null) {
  2056.                 v = info.getOrganizationExternalOrigin(this.log);
  2057.             }
  2058.         }catch(Exception e) {
  2059.             // ignore
  2060.         }
  2061.         return correctValue(v, defaultValue);
  2062.     }
  2063.    
  2064.     public java.lang.String getPdndOrganizationExternalId() {
  2065.         return getPdndOrganizationExternalId(null);
  2066.     }
  2067.     public java.lang.String getPdndOrganizationExternalId(String defaultValue) {
  2068.         PDNDTokenInfo info = this.getPDNDTokenOrganizationInfo();
  2069.         String v = null;
  2070.         try {
  2071.             if(info!=null) {
  2072.                 v = info.getOrganizationExternalId(this.log);
  2073.             }
  2074.         }catch(Exception e) {
  2075.             // ignore
  2076.         }
  2077.         return correctValue(v, defaultValue);
  2078.     }
  2079.        
  2080.     private PDNDTokenInfo pdndTokenOrganizationInfo = null;
  2081.     private PDNDTokenInfo getPDNDTokenOrganizationInfo() {
  2082.         if(this.pdndTokenOrganizationInfo==null) {
  2083.             initPDNDTokenOrganizationInfo();
  2084.         }
  2085.         return this.pdndTokenOrganizationInfo;
  2086.     }
  2087.     private synchronized void initPDNDTokenOrganizationInfo() {
  2088.         if(this.pdndTokenOrganizationInfo==null) {
  2089.             this.pdndTokenOrganizationInfo=new PDNDTokenInfo();
  2090.             String organizationJson = getPdndOrganizationJsonEngine();
  2091.             if(organizationJson!=null) {
  2092.                 PDNDTokenInfoDetails id = new PDNDTokenInfoDetails();
  2093.                 id.setDetails(organizationJson);
  2094.                 this.pdndTokenOrganizationInfo.setOrganization(id);
  2095.             }
  2096.         }
  2097.     }
  2098.    
  2099.    
  2100.     public java.lang.String getPdndClientId() {
  2101.         return getPdndClientId(null);
  2102.     }
  2103.     public java.lang.String getPdndClientId(String defaultValue) {
  2104.         PDNDTokenInfo info = this.getPDNDTokenClientInfo();
  2105.         String v = null;
  2106.         try {
  2107.             if(info!=null) {
  2108.                 v = info.getClientId(this.log);
  2109.             }
  2110.         }catch(Exception e) {
  2111.             // ignore
  2112.         }
  2113.         return correctValue(v, defaultValue);
  2114.     }
  2115.    
  2116.     public java.lang.String getPdndClientConsumerId() {
  2117.         return getPdndClientConsumerId(null);
  2118.     }
  2119.     public java.lang.String getPdndClientConsumerId(String defaultValue) {
  2120.         PDNDTokenInfo info = this.getPDNDTokenClientInfo();
  2121.         String v = null;
  2122.         try {
  2123.             if(info!=null) {
  2124.                 v = info.getClientConsumerId(this.log);
  2125.             }
  2126.         }catch(Exception e) {
  2127.             // ignore
  2128.         }
  2129.         return correctValue(v, defaultValue);
  2130.     }
  2131.    
  2132.     private PDNDTokenInfo pdndTokenClientInfo = null;
  2133.     private PDNDTokenInfo getPDNDTokenClientInfo() {
  2134.         if(this.pdndTokenClientInfo==null) {
  2135.             initPDNDTokenClientInfo();
  2136.         }
  2137.         return this.pdndTokenClientInfo;
  2138.     }
  2139.     private synchronized void initPDNDTokenClientInfo() {
  2140.         if(this.pdndTokenClientInfo==null) {
  2141.             this.pdndTokenClientInfo=new PDNDTokenInfo();
  2142.             String clientJson = getPdndClientJsonEngine();
  2143.             if(clientJson!=null) {
  2144.                 PDNDTokenInfoDetails id = new PDNDTokenInfoDetails();
  2145.                 id.setDetails(clientJson);
  2146.                 this.pdndTokenClientInfo.setClient(id);
  2147.             }
  2148.         }
  2149.     }
  2150.    
  2151.     public java.lang.String getAttribute(String attributeName) {
  2152.         return getAttribute(attributeName, null);
  2153.     }
  2154.     public java.lang.String getAttribute(String attributeName, String defaultValue) {
  2155.         String v = null;
  2156.         if(attributeName!=null &&
  2157.                 this.informazioniAttributi!=null &&
  2158.                 (
  2159.                         this.informazioniAttributi.isMultipleAttributeAuthorities()==null ||
  2160.                         this.informazioniAttributi.isMultipleAttributeAuthorities().getValue()==null ||
  2161.                         !this.informazioniAttributi.isMultipleAttributeAuthorities().getValue()
  2162.                 ) &&
  2163.                 this.informazioniAttributi.getAttributes()!=null &&
  2164.                 this.informazioniAttributi.getAttributes().containsKey(attributeName)) {
  2165.             Object valueAttributeObject = this.informazioniAttributi.getAttributes().get(attributeName);
  2166.             if(valueAttributeObject!=null) {
  2167.                 List<String> lClaimValues = TokenUtilities.getClaimValues(valueAttributeObject);
  2168.                 v = TokenUtilities.getClaimValuesAsString(lClaimValues);
  2169.             }
  2170.         }  
  2171.         return correctValue(v, defaultValue);
  2172.     }
  2173.    
  2174.     public java.lang.String getAttributeByAA(String attributeAuthorityName, String attributeName) {
  2175.         return getAttributeByAA(attributeAuthorityName, attributeName, null);
  2176.     }
  2177.     public java.lang.String getAttributeByAA(String attributeAuthorityName, String attributeName, String defaultValue) {
  2178.         String v = null;
  2179.         if(attributeAuthorityName!=null && attributeName!=null) {
  2180.             v = getAttributeByAAEngine(attributeAuthorityName, attributeName);
  2181.         }  
  2182.         return correctValue(v, defaultValue);
  2183.     }
  2184.     private java.lang.String getAttributeByAAEngine(String attributeAuthorityName, String attributeName) {
  2185.         if(this.informazioniAttributi!=null &&
  2186.                 this.informazioniAttributi.isMultipleAttributeAuthorities()!=null &&
  2187.                 this.informazioniAttributi.isMultipleAttributeAuthorities().getValue()!=null &&
  2188.                 this.informazioniAttributi.isMultipleAttributeAuthorities().getValue().booleanValue() &&
  2189.                 this.informazioniAttributi.getAttributes()!=null &&
  2190.                 this.informazioniAttributi.getAttributes().containsKey(attributeAuthorityName)) {
  2191.             Object o = this.informazioniAttributi.getAttributes().get(attributeAuthorityName);
  2192.             if(o instanceof Map) {
  2193.                 @SuppressWarnings("unchecked")
  2194.                 Map<String, Object> map = (Map<String, Object>) o;
  2195.                 if(map.containsKey(attributeName)) {
  2196.                     Object valueAttributeObject = map.get(attributeName);
  2197.                     if(valueAttributeObject!=null) {
  2198.                         List<String> lClaimValues = TokenUtilities.getClaimValues(valueAttributeObject);
  2199.                         return TokenUtilities.getClaimValuesAsString(lClaimValues);
  2200.                     }
  2201.                 }
  2202.             }
  2203.         }
  2204.         return null;
  2205.     }
  2206.    
  2207.     public java.lang.String getRetrievedAccessToken() {
  2208.         return getRetrievedAccessToken(null);
  2209.     }
  2210.     public java.lang.String getRetrievedAccessToken(String defaultValue) {
  2211.         String v = null;
  2212.         if(this.informazioniNegoziazioneToken!=null) {
  2213.             v = this.informazioniNegoziazioneToken.getAccessToken();
  2214.         }  
  2215.         return correctValue(v, defaultValue);
  2216.     }
  2217.    
  2218.     public java.lang.String getRetrievedTokenClaim(String tokenClaim) {
  2219.         return getRetrievedTokenClaim(tokenClaim, null);
  2220.     }
  2221.     public java.lang.String getRetrievedTokenClaim(String tokenClaim, String defaultValue) {
  2222.         String v = null;
  2223.         if(tokenClaim!=null &&
  2224.                 this.informazioniNegoziazioneToken!=null &&
  2225.                 this.informazioniNegoziazioneToken.getClaims()!=null &&
  2226.                 this.informazioniNegoziazioneToken.getClaims().containsKey(tokenClaim)) {
  2227.             Object valueInfoTokenObject = this.informazioniNegoziazioneToken.getClaims().get(tokenClaim);
  2228.             if(valueInfoTokenObject!=null) {
  2229.                 List<String> lClaimValues = TokenUtilities.getClaimValues(valueInfoTokenObject);
  2230.                 v = TokenUtilities.getClaimValuesAsString(lClaimValues);
  2231.             }
  2232.         }  
  2233.         return correctValue(v, defaultValue);
  2234.     }
  2235.    
  2236.     public java.lang.String getRetrievedTokenRequestTransactionId() {
  2237.         return getRetrievedTokenRequestTransactionId(null);
  2238.     }
  2239.     public java.lang.String getRetrievedTokenRequestTransactionId(String defaultValue) {
  2240.         String v = null;
  2241.         if(this.informazioniNegoziazioneToken!=null && this.informazioniNegoziazioneToken.getRequest()!=null) {
  2242.             v = this.informazioniNegoziazioneToken.getRequest().getTransactionId();
  2243.         }  
  2244.         return correctValue(v, defaultValue);
  2245.     }
  2246.    
  2247.     public java.lang.String getRetrievedTokenRequestGrantType() {
  2248.         return getRetrievedTokenRequestGrantType(null);
  2249.     }
  2250.     public java.lang.String getRetrievedTokenRequestGrantType(String defaultValue) {
  2251.         String v = null;
  2252.         if(this.informazioniNegoziazioneToken!=null && this.informazioniNegoziazioneToken.getRequest()!=null) {
  2253.             v = this.informazioniNegoziazioneToken.getRequest().getGrantType();
  2254.         }  
  2255.         return correctValue(v, defaultValue);
  2256.     }
  2257.    
  2258.     public java.lang.String getRetrievedTokenRequestJwtClientAssertion() {
  2259.         return getRetrievedTokenRequestJwtClientAssertion(null);
  2260.     }
  2261.     public java.lang.String getRetrievedTokenRequestJwtClientAssertion(String defaultValue) {
  2262.         String v = null;
  2263.         if(this.informazioniNegoziazioneToken!=null && this.informazioniNegoziazioneToken.getRequest()!=null
  2264.                 && this.informazioniNegoziazioneToken.getRequest().getJwtClientAssertion()!=null) {
  2265.             v = this.informazioniNegoziazioneToken.getRequest().getJwtClientAssertion().getToken();
  2266.         }  
  2267.         return correctValue(v, defaultValue);
  2268.     }
  2269.    
  2270.     public java.lang.String getRetrievedTokenRequestClientId() {
  2271.         return getRetrievedTokenRequestClientId(null);
  2272.     }
  2273.     public java.lang.String getRetrievedTokenRequestClientId(String defaultValue) {
  2274.         String v = null;
  2275.         if(this.informazioniNegoziazioneToken!=null && this.informazioniNegoziazioneToken.getRequest()!=null) {
  2276.             v = this.informazioniNegoziazioneToken.getRequest().getClientId();
  2277.         }  
  2278.         return correctValue(v, defaultValue);
  2279.     }
  2280.    
  2281.     public java.lang.String getRetrievedTokenRequestClientToken() {
  2282.         return getRetrievedTokenRequestClientToken(null);
  2283.     }
  2284.     public java.lang.String getRetrievedTokenRequestClientToken(String defaultValue) {
  2285.         String v = null;
  2286.         if(this.informazioniNegoziazioneToken!=null && this.informazioniNegoziazioneToken.getRequest()!=null) {
  2287.             v = this.informazioniNegoziazioneToken.getRequest().getClientToken();
  2288.         }  
  2289.         return correctValue(v, defaultValue);
  2290.     }
  2291.    
  2292.     public java.lang.String getRetrievedTokenRequestUsername() {
  2293.         return getRetrievedTokenRequestUsername(null);
  2294.     }
  2295.     public java.lang.String getRetrievedTokenRequestUsername(String defaultValue) {
  2296.         String v = null;
  2297.         if(this.informazioniNegoziazioneToken!=null && this.informazioniNegoziazioneToken.getRequest()!=null) {
  2298.             v = this.informazioniNegoziazioneToken.getRequest().getUsername();
  2299.         }  
  2300.         return correctValue(v, defaultValue);
  2301.     }
  2302.    
  2303.     public java.lang.String getRetrievedTokenRequestUrl() {
  2304.         return getRetrievedTokenRequestUrl(null);
  2305.     }
  2306.     public java.lang.String getRetrievedTokenRequestUrl(String defaultValue) {
  2307.         String v = null;
  2308.         if(this.informazioniNegoziazioneToken!=null && this.informazioniNegoziazioneToken.getRequest()!=null) {
  2309.             v = this.informazioniNegoziazioneToken.getRequest().getEndpoint();
  2310.         }  
  2311.         return correctValue(v, defaultValue);
  2312.     }
  2313.    
  2314.     public java.lang.String getClientIP() {
  2315.         return getClientIP(null);
  2316.     }
  2317.     public java.lang.String getClientIP(String defaultValue) {
  2318.         return correctValue(this.transazione.getSocketClientAddress(), defaultValue);
  2319.     }
  2320.    
  2321.     public java.lang.String getForwardedIP() {
  2322.         return getForwardedIP(null);
  2323.     }
  2324.     public java.lang.String getForwardedIP(String defaultValue) {
  2325.         return correctValue(this.transazione.getTransportClientAddress(), defaultValue);
  2326.     }
  2327.    
  2328.     public java.lang.String getRequesterIP() {
  2329.         return getRequesterIP(null);
  2330.     }
  2331.     public java.lang.String getRequesterIP(String defaultValue) {
  2332.         String forwardedIP = getForwardedIP();
  2333.         if(forwardedIP!=null && StringUtils.isNotEmpty(forwardedIP)) {
  2334.             return forwardedIP;
  2335.         }
  2336.         return getClientIP(defaultValue);
  2337.     }

  2338.     private DatiMittente convertToDatiMittenteEngine() {
  2339.        
  2340.         DatiMittente datiMittente = new DatiMittente();
  2341.        
  2342.         datiMittente.setTokenUsername(getTokenUsername());
  2343.         datiMittente.setTokenSubject(getTokenSubject());
  2344.         datiMittente.setTokenIssuer(getTokenIssuer());
  2345.        
  2346.         datiMittente.setTokenClientId(getTokenClientId());
  2347.         datiMittente.setTokenClient(getTokenClientApplication());
  2348.         datiMittente.setTokenClientTipoSoggettoFruitore(getTokenClientOrganizationType());
  2349.         datiMittente.setTokenClientNomeSoggettoFruitore(getTokenClientOrganization());
  2350.         datiMittente.setTokenClientSoggettoFruitore(getTokenClientOrganizationId());
  2351.        
  2352.         datiMittente.setPdndOrganizationName(getPdndOrganizationName());
  2353.        
  2354.         datiMittente.setTipoTrasportoMittente(getPrincipalAuthType());
  2355.         datiMittente.setTrasportoMittente(getPrincipal());
  2356.        
  2357.         datiMittente.setServizioApplicativoFruitore(getApplication());
  2358.        
  2359.         datiMittente.setSoggettoFruitore(getSenderId());
  2360.         datiMittente.setTipoSoggettoFruitore(getSenderType());
  2361.         datiMittente.setNomeSoggettoFruitore(getSender());

  2362.         datiMittente.setPddRuolo(this.transazione.getPddRuolo());
  2363.         datiMittente.setSoggettoOperativo(null);
  2364.    
  2365.         datiMittente.setTransportClientAddress(this.getForwardedIP());
  2366.         datiMittente.setSocketClientAddress(getClientIP());
  2367.        
  2368.         return datiMittente;
  2369.     }
  2370.    
  2371.     public java.lang.String getRequester() {
  2372.         return getRequester(null);
  2373.     }
  2374.     public java.lang.String getRequester(String defaultValue) {
  2375.         DatiMittente datiMittente = this.convertToDatiMittenteEngine();
  2376.         boolean notUseBase64option = false; // perchè i valori ritornati da convertToDatiMittenteEngine sono gia' codificati in base64
  2377.         return correctValue(InfoMittenteFormatUtils.getRichiedente(datiMittente), defaultValue, true, notUseBase64option);
  2378.     }
  2379.    
  2380.     public java.lang.String getIpRequester() {
  2381.         return getIpRequester(null);
  2382.     }
  2383.     public java.lang.String getIpRequester(String defaultValue) {
  2384.         DatiMittente datiMittente = this.convertToDatiMittenteEngine();
  2385.         return correctValue(InfoMittenteFormatUtils.getIpRichiedente(datiMittente), defaultValue);
  2386.     }
  2387.    
  2388.    
  2389.     // altre informazioni
  2390.    
  2391.     public java.lang.String getState() {
  2392.         return getState(null);
  2393.     }
  2394.     public java.lang.String getState(String defaultValue) {
  2395.         return correctValue(this.transazione.getStato(), defaultValue);
  2396.     }

  2397.     public java.lang.String getProfile() {
  2398.         return getProfile(null);
  2399.     }
  2400.     public java.lang.String getProfile(String defaultValue) {
  2401.         return correctValue(this.transazione.getProtocollo(), defaultValue);
  2402.     }
  2403.    
  2404.     public java.lang.String getProfileLabel() {
  2405.         return getProfileLabel(null);
  2406.     }
  2407.     public java.lang.String getProfileLabel(String defaultValue) {
  2408.         String p = null;
  2409.         try {
  2410.             p = NamingUtils.getLabelProtocollo(this.getProfile());
  2411.         }catch(Exception e) {
  2412.             // possible null value
  2413.         }
  2414.         return correctValue(p, defaultValue);
  2415.     }
  2416.    
  2417.     public java.lang.String getCorrelationType() {
  2418.         return getCorrelationType(null);
  2419.     }
  2420.     public java.lang.String getCorrelationType(String defaultValue) {
  2421.         return correctValue(this.transazione.getTipoServizioCorrelato(), defaultValue);
  2422.     }
  2423.     public java.lang.String getCorrelationApi() {
  2424.         return getCorrelationApi(null);
  2425.     }
  2426.     public java.lang.String getCorrelationApi(String defaultValue) {
  2427.         return correctValue(this.transazione.getNomeServizioCorrelato(), defaultValue);
  2428.     }
  2429.    
  2430.     public int getDuplicateRequest() {
  2431.         return getDuplicateRequest(null);
  2432.     }
  2433.     public int getDuplicateRequest(String defaultValue) {
  2434.         return correctInteger(this.transazione.getDuplicatiRichiesta(), defaultValue);
  2435.     }
  2436.     public int getDuplicateResponse() {
  2437.         return getDuplicateResponse(null);
  2438.     }
  2439.     public int getDuplicateResponse(String defaultValue) {
  2440.         return correctInteger(this.transazione.getDuplicatiRisposta(), defaultValue);
  2441.     }
  2442.    
  2443.    
  2444.    
  2445.     // fault messaggi
  2446.    
  2447.     public java.lang.String getInFault() {
  2448.         return getInFault(null);
  2449.     }
  2450.     public java.lang.String getInFault(String defaultValue) {
  2451.         if(this.transazione.getPddRuolo()!=null) {
  2452.             switch (this.transazione.getPddRuolo()) {
  2453.             case DELEGATA:
  2454.                 return getFaultCooperazioneEngine(defaultValue);
  2455.             case APPLICATIVA:
  2456.                 return getFaultIntegrazioneEngine(defaultValue);
  2457.             default:
  2458.                 break;
  2459.             }
  2460.         }
  2461.         return correctValue(null, defaultValue);
  2462.     }
  2463.    
  2464.     public java.lang.String getOutFault() {
  2465.         return getOutFault(null);
  2466.     }
  2467.     public java.lang.String getOutFault(String defaultValue) {
  2468.         if(this.transazione.getPddRuolo()!=null) {
  2469.             switch (this.transazione.getPddRuolo()) {
  2470.             case DELEGATA:
  2471.                 return getFaultIntegrazioneEngine(defaultValue);
  2472.             case APPLICATIVA:
  2473.                 return getFaultCooperazioneEngine(defaultValue);
  2474.             default:
  2475.                 break;
  2476.             }
  2477.         }
  2478.         return correctValue(null, defaultValue);
  2479.     }
  2480.    
  2481.     private java.lang.String getFaultIntegrazioneEngine(String defaultValue) {
  2482.         return correctValue(this.transazione.getFaultIntegrazione(), defaultValue);
  2483.     }
  2484.     private java.lang.String getFormatoFaultIntegrazioneEngine(String defaultValue) {
  2485.         return correctValue(this.transazione.getFormatoFaultIntegrazione(), defaultValue);
  2486.     }
  2487.     private java.lang.String getFaultCooperazioneEngine(String defaultValue) {
  2488.         return correctValue(this.transazione.getFaultCooperazione(), defaultValue);
  2489.     }
  2490.     private java.lang.String getFormatoFaultCooperazioneEngine(String defaultValue) {
  2491.         return correctValue(this.transazione.getFormatoFaultCooperazione(), defaultValue);
  2492.     }
  2493.    
  2494.    
  2495.     // richiesta ingresso
  2496.    
  2497.     public java.lang.String getInRequestContentType() {
  2498.         return getInRequestContentType(null);
  2499.     }
  2500.     public java.lang.String getInRequestContentType(String defaultValue) {
  2501.         String s = null;
  2502.         if(this.richiestaIngresso!=null) {
  2503.             s = this.richiestaIngresso.getContentType();
  2504.         }
  2505.         return correctValue(s, defaultValue);
  2506.     }
  2507.    
  2508.     public java.lang.String getInRequestContent() {
  2509.         return getInRequestContent(null);
  2510.     }
  2511.     public java.lang.String getInRequestContent(String defaultValue) {
  2512.         byte[] c = null;
  2513.         if(this.richiestaIngresso!=null &&
  2514.             this.richiestaIngresso.getBody()!=null && this.richiestaIngresso.getBody().size()>0) {
  2515.             c = this.richiestaIngresso.getBody().toByteArray();
  2516.         }
  2517.         return correctByteArray(c, defaultValue);
  2518.     }
  2519.    
  2520.     public int getInRequestSize() {
  2521.         return getInRequestSize(null);
  2522.     }
  2523.     public int getInRequestSize(String defaultValue) {
  2524.         byte[] c = null;
  2525.         if(this.richiestaIngresso!=null &&
  2526.             this.richiestaIngresso.getBody()!=null && this.richiestaIngresso.getBody().size()>0) {
  2527.             c = this.richiestaIngresso.getBody().toByteArray();
  2528.         }
  2529.         int size = 0;
  2530.         if(c!=null) {
  2531.             size = c.length;
  2532.         }
  2533.         else if(this.transazione.getRichiestaIngressoBytes()!=null) {
  2534.             size = this.transazione.getRichiestaIngressoBytes().intValue();
  2535.         }
  2536.         return this.correctInteger(size, defaultValue);
  2537.     }
  2538.    
  2539.     public java.lang.String getInRequestHeader(String name) {
  2540.         return getInRequestHeader(name, this.headerMultiValueSeparator, false);
  2541.     }
  2542.     public java.lang.String getInRequestHeader(String name, String multiValueSeparator) {
  2543.         return getInRequestHeader(name, multiValueSeparator, false);
  2544.     }
  2545.     public java.lang.String removeInRequestHeader(String name) {
  2546.         return getInRequestHeader(name, this.headerMultiValueSeparator, true);
  2547.     }
  2548.     public java.lang.String removeInRequestHeader(String name, String multiValueSeparator) {
  2549.         return getInRequestHeader(name, multiValueSeparator, true);
  2550.     }
  2551.     private java.lang.String getInRequestHeader(String name, String multiValueSeparator, boolean consume) {
  2552.         String s = null;
  2553.         if(this.richiestaIngresso!=null && this.richiestaIngresso.getHeaders()!=null) {
  2554.             List<String> values = TransportUtils.getRawObject(this.richiestaIngresso.getHeaders(), name);
  2555.             s = this.format(values, multiValueSeparator);
  2556.         }
  2557.         if(consume) {
  2558.             this.headerRichiestaIngressoConsumati.add(name);
  2559.         }
  2560.         return correctValue(s, null);
  2561.     }
  2562.    
  2563.     public java.lang.String getInRequestHeaders() {
  2564.         return getInRequestHeaders(null, null, null, null, null);
  2565.     }
  2566.     public java.lang.String getInRequestHeaders(String defaultValue) {
  2567.         return getInRequestHeaders(defaultValue, null, null, null, null);
  2568.     }
  2569.     public java.lang.String getInRequestHeaders(String hdrsSeparator, String hdrSeparator, String hdrPrefix, String hdrSuffix) {
  2570.         return getInRequestHeaders(null, hdrsSeparator, hdrSeparator, hdrPrefix, hdrSuffix);
  2571.     }
  2572.     public java.lang.String getInRequestHeaders(String defaultValue, String hdrsSeparator, String hdrSeparator, String hdrPrefix, String hdrSuffix) {
  2573.         if(this.richiestaIngresso!=null) {
  2574.             return formatHeaders(filterHeaders(this.richiestaIngresso.getHeaders(), this.headerRichiestaIngressoConsumati), defaultValue,
  2575.                     new HeaderFormat(hdrsSeparator, hdrSeparator, hdrPrefix, hdrSuffix));
  2576.         }
  2577.         else {
  2578.             String s = null;
  2579.             return correctValue(s, defaultValue);
  2580.         }
  2581.     }
  2582.    
  2583.    
  2584.    
  2585.    
  2586.     // richiesta uscita
  2587.    
  2588.     public java.lang.String getOutRequestContentType() {
  2589.         return getOutRequestContentType(null);
  2590.     }
  2591.     public java.lang.String getOutRequestContentType(String defaultValue) {
  2592.         String s = null;
  2593.         if(this.richiestaUscita!=null) {
  2594.             s = this.richiestaUscita.getContentType();
  2595.         }
  2596.         else if(this.headerRichiestaUscita!=null && !this.headerRichiestaUscita.isEmpty()) {
  2597.             s = TransportUtils.getFirstValue(this.headerRichiestaUscita, HttpConstants.CONTENT_TYPE);
  2598.         }
  2599.         return correctValue(s, defaultValue);
  2600.     }
  2601.    
  2602.     public java.lang.String getOutRequestContent() {
  2603.         return getOutRequestContent(null);
  2604.     }
  2605.     public java.lang.String getOutRequestContent(String defaultValue) {
  2606.         byte[] c = null;
  2607.         if(this.richiestaUscita!=null &&
  2608.             this.richiestaUscita.getBody()!=null && this.richiestaUscita.getBody().size()>0) {
  2609.             c = this.richiestaUscita.getBody().toByteArray();
  2610.         }
  2611.         return correctByteArray(c, defaultValue);
  2612.     }
  2613.    
  2614.     public int getOutRequestSize() {
  2615.         return getOutRequestSize(null);
  2616.     }
  2617.     public int getOutRequestSize(String defaultValue) {
  2618.         byte[] c = null;
  2619.         if(this.richiestaUscita!=null &&
  2620.             this.richiestaUscita.getBody()!=null && this.richiestaUscita.getBody().size()>0) {
  2621.             c = this.richiestaUscita.getBody().toByteArray();
  2622.         }
  2623.         int size = 0;
  2624.         if(c!=null) {
  2625.             size = c.length;
  2626.         }
  2627.         else if(this.transazione.getRichiestaUscitaBytes()!=null) {
  2628.             size = this.transazione.getRichiestaUscitaBytes().intValue();
  2629.         }
  2630.         return this.correctInteger(size, defaultValue);
  2631.     }

  2632.     public java.lang.String getOutRequestHeader(String name) {
  2633.         return getOutRequestHeader(name, this.headerMultiValueSeparator, false);
  2634.     }
  2635.     public java.lang.String getOutRequestHeader(String name, String multiValueSeparator) {
  2636.         return getOutRequestHeader(name, multiValueSeparator, false);
  2637.     }
  2638.     public java.lang.String removeOutRequestHeader(String name) {
  2639.         return getOutRequestHeader(name, this.headerMultiValueSeparator, true);
  2640.     }
  2641.     public java.lang.String removeOutRequestHeader(String name, String multiValueSeparator) {
  2642.         return getOutRequestHeader(name, multiValueSeparator, true);
  2643.     }
  2644.     private java.lang.String getOutRequestHeader(String name, String multiValueSeparator, boolean consume) {
  2645.         String s = null;
  2646.         if(this.richiestaUscita!=null && this.richiestaUscita.getHeaders()!=null) {
  2647.             List<String> values = TransportUtils.getRawObject(this.richiestaUscita.getHeaders(), name);
  2648.             s = this.format(values, multiValueSeparator);
  2649.         }
  2650.         else if(this.headerRichiestaUscita!=null && !this.headerRichiestaUscita.isEmpty()) {
  2651.             List<String> values = TransportUtils.getRawObject(this.headerRichiestaUscita, name);
  2652.             s = this.format(values, multiValueSeparator);
  2653.         }
  2654.         if(consume) {
  2655.             this.headerRichiestaUscitaConsumati.add(name);
  2656.         }
  2657.         return correctValue(s, null);
  2658.     }
  2659.    
  2660.     public java.lang.String getOutRequestHeaders() {
  2661.         return getOutRequestHeaders(null, null, null, null, null);
  2662.     }
  2663.     public java.lang.String getOutRequestHeaders(String defaultValue) {
  2664.         return getOutRequestHeaders(defaultValue, null, null, null, null);
  2665.     }
  2666.     public java.lang.String getOutRequestHeaders(String hdrsSeparator, String hdrSeparator, String hdrPrefix, String hdrSuffix) {
  2667.         return getOutRequestHeaders(null, hdrsSeparator, hdrSeparator, hdrPrefix, hdrSuffix);
  2668.     }
  2669.     public java.lang.String getOutRequestHeaders(String defaultValue, String hdrsSeparator, String hdrSeparator, String hdrPrefix, String hdrSuffix) {
  2670.         if(this.richiestaUscita!=null) {
  2671.             return formatHeaders(filterHeaders(this.richiestaUscita.getHeaders(),this.headerRichiestaUscitaConsumati), defaultValue,
  2672.                     new HeaderFormat(hdrsSeparator, hdrSeparator, hdrPrefix, hdrSuffix));
  2673.         }
  2674.         else if(this.headerRichiestaUscita!=null && !this.headerRichiestaUscita.isEmpty()) {
  2675.             return formatHeaders(filterHeaders(this.headerRichiestaUscita,this.headerRichiestaUscitaConsumati), defaultValue,
  2676.                     new HeaderFormat(hdrsSeparator, hdrSeparator, hdrPrefix, hdrSuffix));
  2677.         }
  2678.         else {
  2679.             String s = null;
  2680.             return correctValue(s, defaultValue);
  2681.         }
  2682.     }
  2683.    
  2684.    
  2685.     // risposta ingresso
  2686.    
  2687.     public java.lang.String getInResponseContentType() {
  2688.         return getInResponseContentType(null);
  2689.     }
  2690.     public java.lang.String getInResponseContentType(String defaultValue) {
  2691.         String s = null;
  2692.         if(this.rispostaIngresso!=null) {
  2693.             s = this.rispostaIngresso.getContentType();
  2694.         }
  2695.         return correctValue(s, defaultValue);
  2696.     }
  2697.    
  2698.     public java.lang.String getInResponseContent() {
  2699.         return getInResponseContent(null);
  2700.     }
  2701.     public java.lang.String getInResponseContent(String defaultValue) {
  2702.         byte[] c = null;
  2703.         if(this.rispostaIngresso!=null &&
  2704.             this.rispostaIngresso.getBody()!=null && this.rispostaIngresso.getBody().size()>0) {
  2705.             c = this.rispostaIngresso.getBody().toByteArray();
  2706.         }
  2707.         return correctByteArray(c, defaultValue);
  2708.     }
  2709.    
  2710.     public int getInResponseSize() {
  2711.         return getInResponseSize(null);
  2712.     }
  2713.     public int getInResponseSize(String defaultValue) {
  2714.         byte[] c = null;
  2715.         if(this.rispostaIngresso!=null &&
  2716.             this.rispostaIngresso.getBody()!=null && this.rispostaIngresso.getBody().size()>0) {
  2717.             c = this.rispostaIngresso.getBody().toByteArray();
  2718.         }
  2719.         int size = 0;
  2720.         if(c!=null) {
  2721.             size = c.length;
  2722.         }
  2723.         else if(this.transazione.getRispostaIngressoBytes()!=null) {
  2724.             size = this.transazione.getRispostaIngressoBytes().intValue();
  2725.         }
  2726.         return this.correctInteger(size, defaultValue);
  2727.     }
  2728.    
  2729.     public java.lang.String getInResponseHeader(String name) {
  2730.         return getInResponseHeader(name, this.headerMultiValueSeparator, false);
  2731.     }
  2732.     public java.lang.String getInResponseHeader(String name, String multiValueSeparator) {
  2733.         return getInResponseHeader(name, multiValueSeparator, false);
  2734.     }
  2735.     public java.lang.String removeInResponseHeader(String name) {
  2736.         return getInResponseHeader(name, this.headerMultiValueSeparator, true);
  2737.     }
  2738.     public java.lang.String removeInResponseHeader(String name, String multiValueSeparator) {
  2739.         return getInResponseHeader(name, multiValueSeparator, true);
  2740.     }
  2741.     private java.lang.String getInResponseHeader(String name, String multiValueSeparator, boolean consume) {
  2742.         String s = null;
  2743.         if(this.rispostaIngresso!=null && this.rispostaIngresso.getHeaders()!=null) {
  2744.             List<String> values = TransportUtils.getRawObject(this.rispostaIngresso.getHeaders(), name);
  2745.             s = this.format(values, multiValueSeparator);
  2746.         }
  2747.         if(consume) {
  2748.             this.headerRispostaIngressoConsumati.add(name);
  2749.         }
  2750.         return correctValue(s, null);
  2751.     }
  2752.    
  2753.     public java.lang.String getInResponseHeaders() {
  2754.         return getInResponseHeaders(null, null, null, null, null);
  2755.     }
  2756.     public java.lang.String getInResponseHeaders(String defaultValue) {
  2757.         return getInResponseHeaders(defaultValue, null, null, null, null);
  2758.     }
  2759.     public java.lang.String getInResponseHeaders(String hdrsSeparator, String hdrSeparator, String hdrPrefix, String hdrSuffix) {
  2760.         return getInResponseHeaders(null, hdrsSeparator, hdrSeparator, hdrPrefix, hdrSuffix);
  2761.     }
  2762.     public java.lang.String getInResponseHeaders(String defaultValue, String hdrsSeparator, String hdrSeparator, String hdrPrefix, String hdrSuffix) {
  2763.         if(this.rispostaIngresso!=null) {
  2764.             return formatHeaders(filterHeaders(this.rispostaIngresso.getHeaders(),this.headerRispostaIngressoConsumati), defaultValue,
  2765.                     new HeaderFormat(hdrsSeparator, hdrSeparator, hdrPrefix, hdrSuffix));
  2766.         }
  2767.         else {
  2768.             String s = null;
  2769.             return correctValue(s, defaultValue);
  2770.         }
  2771.     }
  2772.    
  2773.    
  2774.     // risposta uscita
  2775.    
  2776.     public java.lang.String getOutResponseContentType() {
  2777.         return getOutResponseContentType(null);
  2778.     }
  2779.     public java.lang.String getOutResponseContentType(String defaultValue) {
  2780.         String s = null;
  2781.         if(this.rispostaUscita!=null) {
  2782.             s = this.rispostaUscita.getContentType();
  2783.         }
  2784.         else if(this.headerRispostaUscita!=null && !this.headerRispostaUscita.isEmpty()) {
  2785.             s = TransportUtils.getFirstValue(this.headerRispostaUscita, HttpConstants.CONTENT_TYPE);
  2786.         }
  2787.         return correctValue(s, defaultValue);
  2788.     }
  2789.    
  2790.     public java.lang.String getOutResponseContent() {
  2791.         return getOutResponseContent(null);
  2792.     }
  2793.     public java.lang.String getOutResponseContent(String defaultValue) {
  2794.         byte[] c = null;
  2795.         if(this.rispostaUscita!=null &&
  2796.             this.rispostaUscita.getBody()!=null && this.rispostaUscita.getBody().size()>0) {
  2797.             c = this.rispostaUscita.getBody().toByteArray();
  2798.         }
  2799.         return correctByteArray(c, defaultValue);
  2800.     }
  2801.    
  2802.     public int getOutResponseSize() {
  2803.         return getOutResponseSize(null);
  2804.     }
  2805.     public int getOutResponseSize(String defaultValue) {
  2806.         byte[] c = null;
  2807.         if(this.rispostaUscita!=null &&
  2808.             this.rispostaUscita.getBody()!=null && this.rispostaUscita.getBody().size()>0) {
  2809.             c = this.rispostaUscita.getBody().toByteArray();
  2810.         }
  2811.         int size = 0;
  2812.         if(c!=null) {
  2813.             size = c.length;
  2814.         }
  2815.         else if(this.transazione.getRispostaUscitaBytes()!=null) {
  2816.             size = this.transazione.getRispostaUscitaBytes().intValue();
  2817.         }
  2818.         return this.correctInteger(size, defaultValue);
  2819.     }
  2820.    
  2821.     public java.lang.String getOutResponseHeader(String name) {
  2822.         return getOutResponseHeader(name, this.headerMultiValueSeparator, false);
  2823.     }
  2824.     public java.lang.String getOutResponseHeader(String name, String multiValueSeparator) {
  2825.         return getOutResponseHeader(name, multiValueSeparator, false);
  2826.     }
  2827.     public java.lang.String removeOutResponseHeader(String name) {
  2828.         return getOutResponseHeader(name, this.headerMultiValueSeparator, true);
  2829.     }
  2830.     public java.lang.String removeOutResponseHeader(String name, String multiValueSeparator) {
  2831.         return getOutResponseHeader(name, multiValueSeparator, true);
  2832.     }
  2833.     private java.lang.String getOutResponseHeader(String name, String multiValueSeparator, boolean consume) {
  2834.         String s = null;
  2835.         if(this.rispostaUscita!=null && this.rispostaUscita.getHeaders()!=null) {
  2836.             List<String> values = TransportUtils.getRawObject(this.rispostaUscita.getHeaders(), name);
  2837.             s = this.format(values, multiValueSeparator);
  2838.         }
  2839.         else if(this.headerRispostaUscita!=null && !this.headerRispostaUscita.isEmpty()) {
  2840.             List<String> values = TransportUtils.getRawObject(this.headerRispostaUscita, name);
  2841.             s = this.format(values, multiValueSeparator);
  2842.         }
  2843.         if(consume) {
  2844.             this.headerRispostaUscitaConsumati.add(name);
  2845.         }
  2846.         return correctValue(s, null);
  2847.     }
  2848.    
  2849.     public java.lang.String getOutResponseHeaders() {
  2850.         return getOutResponseHeaders(null, null, null, null, null);
  2851.     }
  2852.     public java.lang.String getOutResponseHeaders(String defaultValue) {
  2853.         return getOutResponseHeaders(defaultValue, null, null, null, null);
  2854.     }
  2855.     public java.lang.String getOutResponseHeaders(String hdrsSeparator, String hdrSeparator, String hdrPrefix, String hdrSuffix) {
  2856.         return getOutResponseHeaders(null, hdrsSeparator, hdrSeparator, hdrPrefix, hdrSuffix);
  2857.     }
  2858.     public java.lang.String getOutResponseHeaders(String defaultValue, String hdrsSeparator, String hdrSeparator, String hdrPrefix, String hdrSuffix) {
  2859.         if(this.rispostaUscita!=null) {
  2860.             return formatHeaders(filterHeaders(this.rispostaUscita.getHeaders(),this.headerRispostaUscitaConsumati), defaultValue,
  2861.                     new HeaderFormat(hdrsSeparator, hdrSeparator, hdrPrefix, hdrSuffix));
  2862.         }
  2863.         else if(this.headerRispostaUscita!=null && !this.headerRispostaUscita.isEmpty()) {
  2864.             return formatHeaders(filterHeaders(this.headerRispostaUscita,this.headerRispostaUscitaConsumati), defaultValue,
  2865.                     new HeaderFormat(hdrsSeparator, hdrSeparator, hdrPrefix, hdrSuffix));
  2866.         }
  2867.         else {
  2868.             String s = null;
  2869.             return correctValue(s, defaultValue);
  2870.         }
  2871.     }
  2872.    
  2873.    
  2874.     // traccia
  2875.    
  2876.     private java.lang.String getPropertiesKeysEngine(String [] p, String separator, String defaultValue){
  2877.         String v = null;
  2878.         if(p!=null && p.length>0) {
  2879.             StringBuilder sb = new StringBuilder();
  2880.             for (String key : p) {
  2881.                 if(sb.length()>0) {
  2882.                     sb.append(separator);
  2883.                 }
  2884.                 sb.append(key);
  2885.             }
  2886.             v = sb.toString();
  2887.         }
  2888.         return correctValue(v,defaultValue);
  2889.     }
  2890.     private java.lang.String getPropertiesEngine(String [] pNames, String [] pValues, String propertySeparator, String valueSeparator, String defaultValue){
  2891.         String v = null;
  2892.         if(pNames!=null && pNames.length>0) {
  2893.             StringBuilder sb = new StringBuilder();
  2894.             for (int i = 0; i < pNames.length; i++) {
  2895.                 String key = pNames[i];
  2896.                 if(sb.length()>0) {
  2897.                     sb.append(propertySeparator);
  2898.                 }
  2899.                 sb.append(key);
  2900.                 sb.append(valueSeparator);
  2901.                 sb.append(pValues[i]);
  2902.             }
  2903.             return sb.toString();
  2904.         }
  2905.         return correctValue(v,defaultValue);
  2906.     }
  2907.    
  2908.     public java.lang.String getRequestProperty(String name) {
  2909.         return getRequestProperty(name, null);
  2910.     }
  2911.     public java.lang.String getRequestProperty(String name, String defaultValue) {
  2912.         String s = null;
  2913.         if(this.tracciaRichiesta!=null && this.tracciaRichiesta.getBusta()!=null) {
  2914.             s = this.tracciaRichiesta.getBusta().getProperty(name);
  2915.         }
  2916.         return correctValue(s, defaultValue);
  2917.     }
  2918.     public java.lang.String getRequestPropertiesKeys(){
  2919.         return getRequestPropertiesKeys(null);
  2920.     }
  2921.     public java.lang.String getRequestPropertiesKeys(String defaultValue){
  2922.         return getRequestPropertiesKeys(InfoConfigurazione.KEYS_SEPARATOR,defaultValue);
  2923.     }
  2924.     public java.lang.String getRequestPropertiesKeys(String separator, String defaultValue){
  2925.         String [] p = this.tracciaRichiesta.getPropertiesNames();
  2926.         return getPropertiesKeysEngine(p, separator, defaultValue);
  2927.     }
  2928.     public java.lang.String getRequestProperties(){
  2929.         return getRequestProperties(null);
  2930.     }
  2931.     public java.lang.String getRequestProperties(String defaultValue){
  2932.         return getRequestProperties(InfoConfigurazione.PROPERTY_SEPARATOR,InfoConfigurazione.VALUE_SEPARATOR,defaultValue);
  2933.     }
  2934.     public java.lang.String getRequestProperties(String propertySeparator, String valueSeparator){
  2935.         return getRequestProperties(propertySeparator, valueSeparator, null);
  2936.     }
  2937.     public java.lang.String getRequestProperties(String propertySeparator, String valueSeparator, String defaultValue){
  2938.         String [] pNames = this.tracciaRichiesta.getPropertiesNames();
  2939.         String [] pValues = this.tracciaRichiesta.getPropertiesValues();
  2940.         return getPropertiesEngine(pNames, pValues, propertySeparator, valueSeparator, defaultValue);
  2941.     }
  2942.    
  2943.     public java.lang.String getResponseProperty(String name) {
  2944.         return getResponseProperty(name, null);
  2945.     }
  2946.     public java.lang.String getResponseProperty(String name, String defaultValue) {
  2947.         String s = null;
  2948.         if(this.tracciaRisposta!=null && this.tracciaRisposta.getBusta()!=null) {
  2949.             s = this.tracciaRisposta.getBusta().getProperty(name);
  2950.         }
  2951.         return correctValue(s, defaultValue);
  2952.     }
  2953.     public java.lang.String getResponsePropertiesKeys(){
  2954.         return getResponsePropertiesKeys(null);
  2955.     }
  2956.     public java.lang.String getResponsePropertiesKeys(String defaultValue){
  2957.         return getResponsePropertiesKeys(InfoConfigurazione.KEYS_SEPARATOR,defaultValue);
  2958.     }
  2959.     public java.lang.String getResponsePropertiesKeys(String separator, String defaultValue){
  2960.         String [] p = this.tracciaRisposta.getPropertiesNames();
  2961.         return getPropertiesKeysEngine(p, separator, defaultValue);
  2962.     }
  2963.     public java.lang.String getResponseProperties(){
  2964.         return getResponseProperties(null);
  2965.     }
  2966.     public java.lang.String getResponseProperties(String defaultValue){
  2967.         return getResponseProperties(InfoConfigurazione.PROPERTY_SEPARATOR,InfoConfigurazione.VALUE_SEPARATOR,defaultValue);
  2968.     }
  2969.     public java.lang.String getResponseProperties(String propertySeparator, String valueSeparator){
  2970.         return getResponseProperties(propertySeparator, valueSeparator, null);
  2971.     }
  2972.     public java.lang.String getResponseProperties(String propertySeparator, String valueSeparator, String defaultValue){
  2973.         String [] pNames = this.tracciaRisposta.getPropertiesNames();
  2974.         String [] pValues = this.tracciaRisposta.getPropertiesValues();
  2975.         return getPropertiesEngine(pNames, pValues, propertySeparator, valueSeparator, defaultValue);
  2976.     }
  2977.    
  2978.    
  2979.     // modi (Authorization)
  2980.    
  2981.     public java.lang.String getTokenModIAuthorizationRaw() {
  2982.         return getTokenModIAuthorizationRaw(null);
  2983.     }
  2984.     public java.lang.String getTokenModIAuthorizationRaw(String defaultValue) {
  2985.         String v = null;
  2986.         if(this.securityToken!=null && this.securityToken.getAuthorization()!=null) {
  2987.             v = this.securityToken.getAuthorization().getToken();
  2988.         }
  2989.         return correctValue(v, defaultValue);
  2990.     }
  2991.    
  2992.     public java.lang.String getTokenModIAuthorizationHeaderRaw() {
  2993.         return getTokenModIAuthorizationHeaderRaw(null);
  2994.     }
  2995.     public java.lang.String getTokenModIAuthorizationHeaderRaw(String defaultValue) {
  2996.         String v = null;
  2997.         if(this.securityToken!=null && this.securityToken.getAuthorization()!=null) {
  2998.             v = this.securityToken.getAuthorization().getHeader();
  2999.         }
  3000.         return correctValue(v, defaultValue);
  3001.     }
  3002.    
  3003.     public java.lang.String getTokenModIAuthorizationDecodedHeader() {
  3004.         return getTokenModIAuthorizationDecodedHeader(null);
  3005.     }
  3006.     public java.lang.String getTokenModIAuthorizationDecodedHeader(String defaultValue) {
  3007.         String v = null;
  3008.         if(this.securityToken!=null && this.securityToken.getAuthorization()!=null) {
  3009.             v = this.securityToken.getAuthorization().getDecodedHeader();
  3010.         }
  3011.         return correctValue(v, defaultValue);
  3012.     }
  3013.    
  3014.     public java.lang.String getTokenModIAuthorizationHeaderClaim(String tokenClaim) {
  3015.         return getTokenModIAuthorizationHeaderClaim(tokenClaim, null);
  3016.     }
  3017.     public java.lang.String getTokenModIAuthorizationHeaderClaim(String tokenClaim, String defaultValue) {
  3018.         String v = null;
  3019.         if(this.securityToken!=null && this.securityToken.getAuthorization()!=null) {
  3020.             try {
  3021.                 v = this.securityToken.getAuthorization().getHeaderClaim(tokenClaim);
  3022.             }catch(Exception t) {
  3023.                 this.log.error("getTokenModIAuthorizationHeaderClaim("+tokenClaim+")"+getErrorSuffix(t),t);
  3024.             }
  3025.         }
  3026.         return correctValue(v, defaultValue);
  3027.     }
  3028.    
  3029.     public java.lang.String getTokenModIAuthorizationHeaderClaims() {
  3030.         return getTokenModIAuthorizationHeaderClaims(",", "=", null);
  3031.     }
  3032.     public java.lang.String getTokenModIAuthorizationHeaderClaims(String claimSeparator, String nameValueSeparator, String defaultValue) {
  3033.         String v = null;
  3034.         if(this.securityToken!=null && this.securityToken.getAuthorization()!=null) {
  3035.             try {
  3036.                 Map<String, String> map = this.securityToken.getAuthorization().getHeaderClaims();
  3037.                 v = formatTokenClaims(map, claimSeparator, nameValueSeparator);
  3038.             }catch(Exception t) {
  3039.                 this.log.error("getTokenModIAuthorizationHeaderClaims("+claimSeparator+","+nameValueSeparator+")"+getErrorSuffix(t),t);
  3040.             }
  3041.         }
  3042.         return correctValue(v, defaultValue);
  3043.     }
  3044.    
  3045.     public java.lang.String getTokenModIAuthorizationPayloadRaw() {
  3046.         return getTokenModIAuthorizationPayloadRaw(null);
  3047.     }
  3048.     public java.lang.String getTokenModIAuthorizationPayloadRaw(String defaultValue) {
  3049.         String v = null;
  3050.         if(this.securityToken!=null && this.securityToken.getAuthorization()!=null) {
  3051.             v = this.securityToken.getAuthorization().getPayload();
  3052.         }
  3053.         return correctValue(v, defaultValue);
  3054.     }
  3055.    
  3056.     public java.lang.String getTokenModIAuthorizationDecodedPayload() {
  3057.         return getTokenModIAuthorizationDecodedPayload(null);
  3058.     }
  3059.     public java.lang.String getTokenModIAuthorizationDecodedPayload(String defaultValue) {
  3060.         String v = null;
  3061.         if(this.securityToken!=null && this.securityToken.getAuthorization()!=null) {
  3062.             v = this.securityToken.getAuthorization().getDecodedPayload();
  3063.         }
  3064.         return correctValue(v, defaultValue);
  3065.     }
  3066.    
  3067.     public java.lang.String getTokenModIAuthorizationPayloadClaim(String tokenClaim) {
  3068.         return getTokenModIAuthorizationPayloadClaim(tokenClaim, null);
  3069.     }
  3070.     public java.lang.String getTokenModIAuthorizationPayloadClaim(String tokenClaim, String defaultValue) {
  3071.         String v = null;
  3072.         if(this.securityToken!=null && this.securityToken.getAuthorization()!=null) {
  3073.             try {
  3074.                 v = this.securityToken.getAuthorization().getPayloadClaim(tokenClaim);
  3075.             }catch(Exception t) {
  3076.                 this.log.error("getTokenModIAuthorizationPayloadClaim("+tokenClaim+")"+getErrorSuffix(t),t);
  3077.             }
  3078.         }
  3079.         return correctValue(v, defaultValue);
  3080.     }
  3081.    
  3082.     public java.lang.String getTokenModIAuthorizationPayloadClaims() {
  3083.         return getTokenModIAuthorizationPayloadClaims(",", "=", null);
  3084.     }
  3085.     public java.lang.String getTokenModIAuthorizationPayloadClaims(String claimSeparator, String nameValueSeparator, String defaultValue) {
  3086.         String v = null;
  3087.         if(this.securityToken!=null && this.securityToken.getAuthorization()!=null) {
  3088.             try {
  3089.                 Map<String, String> map = this.securityToken.getAuthorization().getPayloadClaims();
  3090.                 v = formatTokenClaims(map, claimSeparator, nameValueSeparator);
  3091.             }catch(Exception t) {
  3092.                 this.log.error("getTokenModIAuthorizationPayloadClaims("+claimSeparator+","+nameValueSeparator+")"+getErrorSuffix(t),t);
  3093.             }
  3094.         }
  3095.         return correctValue(v, defaultValue);
  3096.     }
  3097.    
  3098.     public java.lang.String getTokenModIAuthorizationCertificateSubjectDN() {
  3099.         return getTokenModIAuthorizationCertificateSubjectDN(null);
  3100.     }
  3101.     public java.lang.String getTokenModIAuthorizationCertificateSubjectDN(String defaultValue) {
  3102.         String v = null;
  3103.         if(this.securityToken!=null && this.securityToken.getAuthorization()!=null && this.securityToken.getAuthorization().getCertificate()!=null &&
  3104.             this.securityToken.getAuthorization().getCertificate().getSubject()!=null) {
  3105.             v = this.securityToken.getAuthorization().getCertificate().getSubject().toString();
  3106.         }
  3107.         return correctValue(v, defaultValue);
  3108.     }
  3109.    
  3110.     public java.lang.String getTokenModIAuthorizationCertificateSubjectCN() {
  3111.         return getTokenModIAuthorizationCertificateSubjectCN(null);
  3112.     }
  3113.     public java.lang.String getTokenModIAuthorizationCertificateSubjectCN(String defaultValue) {
  3114.         String v = null;
  3115.         if(this.securityToken!=null && this.securityToken.getAuthorization()!=null && this.securityToken.getAuthorization().getCertificate()!=null &&
  3116.             this.securityToken.getAuthorization().getCertificate().getSubject()!=null) {
  3117.             v = this.securityToken.getAuthorization().getCertificate().getSubject().getCN();
  3118.         }
  3119.         return correctValue(v, defaultValue);
  3120.     }
  3121.    
  3122.     public java.lang.String getTokenModIAuthorizationCertificateSubjectDNInfo(String oid) {
  3123.         return getTokenModIAuthorizationCertificateSubjectDNInfo(oid, null);
  3124.     }
  3125.     public java.lang.String getTokenModIAuthorizationCertificateSubjectDNInfo(String oid, String defaultValue) {
  3126.         String v = null;
  3127.         if(this.securityToken!=null && this.securityToken.getAuthorization()!=null && this.securityToken.getAuthorization().getCertificate()!=null &&
  3128.             this.securityToken.getAuthorization().getCertificate().getSubject()!=null) {
  3129.             v = this.securityToken.getAuthorization().getCertificate().getSubject().getInfo(oid);
  3130.         }
  3131.         return correctValue(v, defaultValue);
  3132.     }
  3133.    
  3134.     public java.lang.String getTokenModIAuthorizationCertificateIssuerDN() {
  3135.         return getTokenModIAuthorizationCertificateIssuerDN(null);
  3136.     }
  3137.     public java.lang.String getTokenModIAuthorizationCertificateIssuerDN(String defaultValue) {
  3138.         String v = null;
  3139.         if(this.securityToken!=null && this.securityToken.getAuthorization()!=null && this.securityToken.getAuthorization().getCertificate()!=null &&
  3140.             this.securityToken.getAuthorization().getCertificate().getIssuer()!=null) {
  3141.             v = this.securityToken.getAuthorization().getCertificate().getIssuer().toString();
  3142.         }
  3143.         return correctValue(v, defaultValue);
  3144.     }
  3145.    
  3146.     public java.lang.String getTokenModIAuthorizationCertificateIssuerCN() {
  3147.         return getTokenModIAuthorizationCertificateIssuerCN(null);
  3148.     }
  3149.     public java.lang.String getTokenModIAuthorizationCertificateIssuerCN(String defaultValue) {
  3150.         String v = null;
  3151.         if(this.securityToken!=null && this.securityToken.getAuthorization()!=null && this.securityToken.getAuthorization().getCertificate()!=null &&
  3152.             this.securityToken.getAuthorization().getCertificate().getIssuer()!=null) {
  3153.             v = this.securityToken.getAuthorization().getCertificate().getIssuer().getCN();
  3154.         }
  3155.         return correctValue(v, defaultValue);
  3156.     }
  3157.    
  3158.     public java.lang.String getTokenModIAuthorizationCertificateIssuerDNInfo(String oid) {
  3159.         return getTokenModIAuthorizationCertificateIssuerDNInfo(oid, null);
  3160.     }
  3161.     public java.lang.String getTokenModIAuthorizationCertificateIssuerDNInfo(String oid, String defaultValue) {
  3162.         String v = null;
  3163.         if(this.securityToken!=null && this.securityToken.getAuthorization()!=null && this.securityToken.getAuthorization().getCertificate()!=null &&
  3164.             this.securityToken.getAuthorization().getCertificate().getIssuer()!=null) {
  3165.             v = this.securityToken.getAuthorization().getCertificate().getIssuer().getInfo(oid);
  3166.         }
  3167.         return correctValue(v, defaultValue);
  3168.     }
  3169.    
  3170.    
  3171.    
  3172.     // modi (Integrity)
  3173.    
  3174.     public java.lang.String getTokenModIIntegrityRaw() {
  3175.         return getTokenModIIntegrityRaw(null);
  3176.     }
  3177.     public java.lang.String getTokenModIIntegrityRaw(String defaultValue) {
  3178.         String v = null;
  3179.         if(this.securityToken!=null && this.securityToken.getIntegrity()!=null) {
  3180.             v = this.securityToken.getIntegrity().getToken();
  3181.         }
  3182.         return correctValue(v, defaultValue);
  3183.     }
  3184.    
  3185.     public java.lang.String getTokenModIIntegrityHeaderRaw() {
  3186.         return getTokenModIIntegrityHeaderRaw(null);
  3187.     }
  3188.     public java.lang.String getTokenModIIntegrityHeaderRaw(String defaultValue) {
  3189.         String v = null;
  3190.         if(this.securityToken!=null && this.securityToken.getIntegrity()!=null) {
  3191.             v = this.securityToken.getIntegrity().getHeader();
  3192.         }
  3193.         return correctValue(v, defaultValue);
  3194.     }
  3195.    
  3196.     public java.lang.String getTokenModIIntegrityDecodedHeader() {
  3197.         return getTokenModIIntegrityDecodedHeader(null);
  3198.     }
  3199.     public java.lang.String getTokenModIIntegrityDecodedHeader(String defaultValue) {
  3200.         String v = null;
  3201.         if(this.securityToken!=null && this.securityToken.getIntegrity()!=null) {
  3202.             v = this.securityToken.getIntegrity().getDecodedHeader();
  3203.         }
  3204.         return correctValue(v, defaultValue);
  3205.     }
  3206.    
  3207.     public java.lang.String getTokenModIIntegrityHeaderClaim(String tokenClaim) {
  3208.         return getTokenModIIntegrityHeaderClaim(tokenClaim, null);
  3209.     }
  3210.     public java.lang.String getTokenModIIntegrityHeaderClaim(String tokenClaim, String defaultValue) {
  3211.         String v = null;
  3212.         if(this.securityToken!=null && this.securityToken.getIntegrity()!=null) {
  3213.             try {
  3214.                 v = this.securityToken.getIntegrity().getHeaderClaim(tokenClaim);
  3215.             }catch(Exception t) {
  3216.                 this.log.error("getTokenModIIntegrityHeaderClaim("+tokenClaim+")"+getErrorSuffix(t),t);
  3217.             }
  3218.         }
  3219.         return correctValue(v, defaultValue);
  3220.     }
  3221.    
  3222.     public java.lang.String getTokenModIIntegrityHeaderClaims() {
  3223.         return getTokenModIIntegrityHeaderClaims(",", "=", null);
  3224.     }
  3225.     public java.lang.String getTokenModIIntegrityHeaderClaims(String claimSeparator, String nameValueSeparator, String defaultValue) {
  3226.         String v = null;
  3227.         if(this.securityToken!=null && this.securityToken.getIntegrity()!=null) {
  3228.             try {
  3229.                 Map<String, String> map = this.securityToken.getIntegrity().getHeaderClaims();
  3230.                 v = formatTokenClaims(map, claimSeparator, nameValueSeparator);
  3231.             }catch(Exception t) {
  3232.                 this.log.error("getTokenModIIntegrityHeaderClaims("+claimSeparator+","+nameValueSeparator+")"+getErrorSuffix(t),t);
  3233.             }
  3234.         }
  3235.         return correctValue(v, defaultValue);
  3236.     }
  3237.    
  3238.     public java.lang.String getTokenModIIntegrityPayloadRaw() {
  3239.         return getTokenModIIntegrityPayloadRaw(null);
  3240.     }
  3241.     public java.lang.String getTokenModIIntegrityPayloadRaw(String defaultValue) {
  3242.         String v = null;
  3243.         if(this.securityToken!=null && this.securityToken.getIntegrity()!=null) {
  3244.             v = this.securityToken.getIntegrity().getPayload();
  3245.         }
  3246.         return correctValue(v, defaultValue);
  3247.     }
  3248.    
  3249.     public java.lang.String getTokenModIIntegrityDecodedPayload() {
  3250.         return getTokenModIIntegrityDecodedPayload(null);
  3251.     }
  3252.     public java.lang.String getTokenModIIntegrityDecodedPayload(String defaultValue) {
  3253.         String v = null;
  3254.         if(this.securityToken!=null && this.securityToken.getIntegrity()!=null) {
  3255.             v = this.securityToken.getIntegrity().getDecodedPayload();
  3256.         }
  3257.         return correctValue(v, defaultValue);
  3258.     }
  3259.    
  3260.     public java.lang.String getTokenModIIntegrityPayloadClaim(String tokenClaim) {
  3261.         return getTokenModIIntegrityPayloadClaim(tokenClaim, null);
  3262.     }
  3263.     public java.lang.String getTokenModIIntegrityPayloadClaim(String tokenClaim, String defaultValue) {
  3264.         String v = null;
  3265.         if(this.securityToken!=null && this.securityToken.getIntegrity()!=null) {
  3266.             try {
  3267.                 v = this.securityToken.getIntegrity().getPayloadClaim(tokenClaim);
  3268.             }catch(Exception t) {
  3269.                 this.log.error("getTokenModIIntegrityPayloadClaim("+tokenClaim+")"+getErrorSuffix(t),t);
  3270.             }
  3271.         }
  3272.         return correctValue(v, defaultValue);
  3273.     }
  3274.    
  3275.     public java.lang.String getTokenModIIntegrityPayloadClaims() {
  3276.         return getTokenModIIntegrityPayloadClaims(",", "=", null);
  3277.     }
  3278.     public java.lang.String getTokenModIIntegrityPayloadClaims(String claimSeparator, String nameValueSeparator, String defaultValue) {
  3279.         String v = null;
  3280.         if(this.securityToken!=null && this.securityToken.getIntegrity()!=null) {
  3281.             try {
  3282.                 Map<String, String> map = this.securityToken.getIntegrity().getPayloadClaims();
  3283.                 v = formatTokenClaims(map, claimSeparator, nameValueSeparator);
  3284.             }catch(Exception t) {
  3285.                 this.log.error("getTokenModIIntegrityPayloadClaims("+claimSeparator+","+nameValueSeparator+")"+getErrorSuffix(t),t);
  3286.             }
  3287.         }
  3288.         return correctValue(v, defaultValue);
  3289.     }
  3290.    
  3291.     public java.lang.String getTokenModIIntegrityCertificateSubjectDN() {
  3292.         return getTokenModIIntegrityCertificateSubjectDN(null);
  3293.     }
  3294.     public java.lang.String getTokenModIIntegrityCertificateSubjectDN(String defaultValue) {
  3295.         String v = null;
  3296.         if(this.securityToken!=null && this.securityToken.getIntegrity()!=null && this.securityToken.getIntegrity().getCertificate()!=null &&
  3297.             this.securityToken.getIntegrity().getCertificate().getSubject()!=null) {
  3298.             v = this.securityToken.getIntegrity().getCertificate().getSubject().toString();
  3299.         }
  3300.         return correctValue(v, defaultValue);
  3301.     }
  3302.    
  3303.     public java.lang.String getTokenModIIntegrityCertificateSubjectCN() {
  3304.         return getTokenModIIntegrityCertificateSubjectCN(null);
  3305.     }
  3306.     public java.lang.String getTokenModIIntegrityCertificateSubjectCN(String defaultValue) {
  3307.         String v = null;
  3308.         if(this.securityToken!=null && this.securityToken.getIntegrity()!=null && this.securityToken.getIntegrity().getCertificate()!=null &&
  3309.             this.securityToken.getIntegrity().getCertificate().getSubject()!=null) {
  3310.             v = this.securityToken.getIntegrity().getCertificate().getSubject().getCN();
  3311.         }
  3312.         return correctValue(v, defaultValue);
  3313.     }
  3314.    
  3315.     public java.lang.String getTokenModIIntegrityCertificateSubjectDNInfo(String oid) {
  3316.         return getTokenModIIntegrityCertificateSubjectDNInfo(oid, null);
  3317.     }
  3318.     public java.lang.String getTokenModIIntegrityCertificateSubjectDNInfo(String oid, String defaultValue) {
  3319.         String v = null;
  3320.         if(this.securityToken!=null && this.securityToken.getIntegrity()!=null && this.securityToken.getIntegrity().getCertificate()!=null &&
  3321.             this.securityToken.getIntegrity().getCertificate().getSubject()!=null) {
  3322.             v = this.securityToken.getIntegrity().getCertificate().getSubject().getInfo(oid);
  3323.         }
  3324.         return correctValue(v, defaultValue);
  3325.     }
  3326.    
  3327.     public java.lang.String getTokenModIIntegrityCertificateIssuerDN() {
  3328.         return getTokenModIIntegrityCertificateIssuerDN(null);
  3329.     }
  3330.     public java.lang.String getTokenModIIntegrityCertificateIssuerDN(String defaultValue) {
  3331.         String v = null;
  3332.         if(this.securityToken!=null && this.securityToken.getIntegrity()!=null && this.securityToken.getIntegrity().getCertificate()!=null &&
  3333.             this.securityToken.getIntegrity().getCertificate().getIssuer()!=null) {
  3334.             v = this.securityToken.getIntegrity().getCertificate().getIssuer().toString();
  3335.         }
  3336.         return correctValue(v, defaultValue);
  3337.     }
  3338.    
  3339.     public java.lang.String getTokenModIIntegrityCertificateIssuerCN() {
  3340.         return getTokenModIIntegrityCertificateIssuerCN(null);
  3341.     }
  3342.     public java.lang.String getTokenModIIntegrityCertificateIssuerCN(String defaultValue) {
  3343.         String v = null;
  3344.         if(this.securityToken!=null && this.securityToken.getIntegrity()!=null && this.securityToken.getIntegrity().getCertificate()!=null &&
  3345.             this.securityToken.getIntegrity().getCertificate().getIssuer()!=null) {
  3346.             v = this.securityToken.getIntegrity().getCertificate().getIssuer().getCN();
  3347.         }
  3348.         return correctValue(v, defaultValue);
  3349.     }
  3350.    
  3351.     public java.lang.String getTokenModIIntegrityCertificateIssuerDNInfo(String oid) {
  3352.         return getTokenModIIntegrityCertificateIssuerDNInfo(oid, null);
  3353.     }
  3354.     public java.lang.String getTokenModIIntegrityCertificateIssuerDNInfo(String oid, String defaultValue) {
  3355.         String v = null;
  3356.         if(this.securityToken!=null && this.securityToken.getIntegrity()!=null && this.securityToken.getIntegrity().getCertificate()!=null &&
  3357.             this.securityToken.getIntegrity().getCertificate().getIssuer()!=null) {
  3358.             v = this.securityToken.getIntegrity().getCertificate().getIssuer().getInfo(oid);
  3359.         }
  3360.         return correctValue(v, defaultValue);
  3361.     }
  3362.    
  3363.    
  3364.    
  3365.     // modi (Audit)
  3366.    
  3367.     public java.lang.String getTokenModIAuditRaw() {
  3368.         return getTokenModIAuditRaw(null);
  3369.     }
  3370.     public java.lang.String getTokenModIAuditRaw(String defaultValue) {
  3371.         String v = null;
  3372.         if(this.securityToken!=null && this.securityToken.getAudit()!=null) {
  3373.             v = this.securityToken.getAudit().getToken();
  3374.         }
  3375.         return correctValue(v, defaultValue);
  3376.     }
  3377.    
  3378.     public java.lang.String getTokenModIAuditHeaderRaw() {
  3379.         return getTokenModIAuditHeaderRaw(null);
  3380.     }
  3381.     public java.lang.String getTokenModIAuditHeaderRaw(String defaultValue) {
  3382.         String v = null;
  3383.         if(this.securityToken!=null && this.securityToken.getAudit()!=null) {
  3384.             v = this.securityToken.getAudit().getHeader();
  3385.         }
  3386.         return correctValue(v, defaultValue);
  3387.     }
  3388.    
  3389.     public java.lang.String getTokenModIAuditDecodedHeader() {
  3390.         return getTokenModIAuditDecodedHeader(null);
  3391.     }
  3392.     public java.lang.String getTokenModIAuditDecodedHeader(String defaultValue) {
  3393.         String v = null;
  3394.         if(this.securityToken!=null && this.securityToken.getAudit()!=null) {
  3395.             v = this.securityToken.getAudit().getDecodedHeader();
  3396.         }
  3397.         return correctValue(v, defaultValue);
  3398.     }
  3399.    
  3400.     public java.lang.String getTokenModIAuditHeaderClaim(String tokenClaim) {
  3401.         return getTokenModIAuditHeaderClaim(tokenClaim, null);
  3402.     }
  3403.     public java.lang.String getTokenModIAuditHeaderClaim(String tokenClaim, String defaultValue) {
  3404.         String v = null;
  3405.         if(this.securityToken!=null && this.securityToken.getAudit()!=null) {
  3406.             try {
  3407.                 v = this.securityToken.getAudit().getHeaderClaim(tokenClaim);
  3408.             }catch(Exception t) {
  3409.                 this.log.error("getTokenModIAuditHeaderClaim("+tokenClaim+")"+getErrorSuffix(t),t);
  3410.             }
  3411.         }
  3412.         return correctValue(v, defaultValue);
  3413.     }
  3414.    
  3415.     public java.lang.String getTokenModIAuditHeaderClaims() {
  3416.         return getTokenModIAuditHeaderClaims(",", "=", null);
  3417.     }
  3418.     public java.lang.String getTokenModIAuditHeaderClaims(String claimSeparator, String nameValueSeparator, String defaultValue) {
  3419.         String v = null;
  3420.         if(this.securityToken!=null && this.securityToken.getAudit()!=null) {
  3421.             try {
  3422.                 Map<String, String> map = this.securityToken.getAudit().getHeaderClaims();
  3423.                 v = formatTokenClaims(map, claimSeparator, nameValueSeparator);
  3424.             }catch(Exception t) {
  3425.                 this.log.error("getTokenModIAuditHeaderClaims("+claimSeparator+","+nameValueSeparator+")"+getErrorSuffix(t),t);
  3426.             }
  3427.         }
  3428.         return correctValue(v, defaultValue);
  3429.     }
  3430.    
  3431.     public java.lang.String getTokenModIAuditPayloadRaw() {
  3432.         return getTokenModIAuditPayloadRaw(null);
  3433.     }
  3434.     public java.lang.String getTokenModIAuditPayloadRaw(String defaultValue) {
  3435.         String v = null;
  3436.         if(this.securityToken!=null && this.securityToken.getAudit()!=null) {
  3437.             v = this.securityToken.getAudit().getPayload();
  3438.         }
  3439.         return correctValue(v, defaultValue);
  3440.     }
  3441.    
  3442.     public java.lang.String getTokenModIAuditDecodedPayload() {
  3443.         return getTokenModIAuditDecodedPayload(null);
  3444.     }
  3445.     public java.lang.String getTokenModIAuditDecodedPayload(String defaultValue) {
  3446.         String v = null;
  3447.         if(this.securityToken!=null && this.securityToken.getAudit()!=null) {
  3448.             v = this.securityToken.getAudit().getDecodedPayload();
  3449.         }
  3450.         return correctValue(v, defaultValue);
  3451.     }
  3452.    
  3453.     public java.lang.String getTokenModIAuditPayloadClaim(String tokenClaim) {
  3454.         return getTokenModIAuditPayloadClaim(tokenClaim, null);
  3455.     }
  3456.     public java.lang.String getTokenModIAuditPayloadClaim(String tokenClaim, String defaultValue) {
  3457.         String v = null;
  3458.         if(this.securityToken!=null && this.securityToken.getAudit()!=null) {
  3459.             try {
  3460.                 v = this.securityToken.getAudit().getPayloadClaim(tokenClaim);
  3461.             }catch(Exception t) {
  3462.                 this.log.error("getTokenModIAuditPayloadClaim("+tokenClaim+")"+getErrorSuffix(t),t);
  3463.             }
  3464.         }
  3465.         return correctValue(v, defaultValue);
  3466.     }
  3467.    
  3468.     public java.lang.String getTokenModIAuditPayloadClaims() {
  3469.         return getTokenModIAuditPayloadClaims(",", "=", null);
  3470.     }
  3471.     public java.lang.String getTokenModIAuditPayloadClaims(String claimSeparator, String nameValueSeparator, String defaultValue) {
  3472.         String v = null;
  3473.         if(this.securityToken!=null && this.securityToken.getAudit()!=null) {
  3474.             try {
  3475.                 Map<String, String> map = this.securityToken.getAudit().getPayloadClaims();
  3476.                 v = formatTokenClaims(map, claimSeparator, nameValueSeparator);
  3477.             }catch(Exception t) {
  3478.                 this.log.error("getTokenModIAuditPayloadClaims("+claimSeparator+","+nameValueSeparator+")"+getErrorSuffix(t),t);
  3479.             }
  3480.         }
  3481.         return correctValue(v, defaultValue);
  3482.     }
  3483.    
  3484.     public java.lang.String getTokenModIAuditCertificateSubjectDN() {
  3485.         return getTokenModIAuditCertificateSubjectDN(null);
  3486.     }
  3487.     public java.lang.String getTokenModIAuditCertificateSubjectDN(String defaultValue) {
  3488.         String v = null;
  3489.         if(this.securityToken!=null && this.securityToken.getAudit()!=null && this.securityToken.getAudit().getCertificate()!=null &&
  3490.             this.securityToken.getAudit().getCertificate().getSubject()!=null) {
  3491.             v = this.securityToken.getAudit().getCertificate().getSubject().toString();
  3492.         }
  3493.         return correctValue(v, defaultValue);
  3494.     }
  3495.    
  3496.     public java.lang.String getTokenModIAuditCertificateSubjectCN() {
  3497.         return getTokenModIAuditCertificateSubjectCN(null);
  3498.     }
  3499.     public java.lang.String getTokenModIAuditCertificateSubjectCN(String defaultValue) {
  3500.         String v = null;
  3501.         if(this.securityToken!=null && this.securityToken.getAudit()!=null && this.securityToken.getAudit().getCertificate()!=null &&
  3502.             this.securityToken.getAudit().getCertificate().getSubject()!=null) {
  3503.             v = this.securityToken.getAudit().getCertificate().getSubject().getCN();
  3504.         }
  3505.         return correctValue(v, defaultValue);
  3506.     }
  3507.    
  3508.     public java.lang.String getTokenModIAuditCertificateSubjectDNInfo(String oid) {
  3509.         return getTokenModIAuditCertificateSubjectDNInfo(oid, null);
  3510.     }
  3511.     public java.lang.String getTokenModIAuditCertificateSubjectDNInfo(String oid, String defaultValue) {
  3512.         String v = null;
  3513.         if(this.securityToken!=null && this.securityToken.getAudit()!=null && this.securityToken.getAudit().getCertificate()!=null &&
  3514.             this.securityToken.getAudit().getCertificate().getSubject()!=null) {
  3515.             v = this.securityToken.getAudit().getCertificate().getSubject().getInfo(oid);
  3516.         }
  3517.         return correctValue(v, defaultValue);
  3518.     }
  3519.    
  3520.     public java.lang.String getTokenModIAuditCertificateIssuerDN() {
  3521.         return getTokenModIAuditCertificateIssuerDN(null);
  3522.     }
  3523.     public java.lang.String getTokenModIAuditCertificateIssuerDN(String defaultValue) {
  3524.         String v = null;
  3525.         if(this.securityToken!=null && this.securityToken.getAudit()!=null && this.securityToken.getAudit().getCertificate()!=null &&
  3526.             this.securityToken.getAudit().getCertificate().getIssuer()!=null) {
  3527.             v = this.securityToken.getAudit().getCertificate().getIssuer().toString();
  3528.         }
  3529.         return correctValue(v, defaultValue);
  3530.     }
  3531.    
  3532.     public java.lang.String getTokenModIAuditCertificateIssuerCN() {
  3533.         return getTokenModIAuditCertificateIssuerCN(null);
  3534.     }
  3535.     public java.lang.String getTokenModIAuditCertificateIssuerCN(String defaultValue) {
  3536.         String v = null;
  3537.         if(this.securityToken!=null && this.securityToken.getAudit()!=null && this.securityToken.getAudit().getCertificate()!=null &&
  3538.             this.securityToken.getAudit().getCertificate().getIssuer()!=null) {
  3539.             v = this.securityToken.getAudit().getCertificate().getIssuer().getCN();
  3540.         }
  3541.         return correctValue(v, defaultValue);
  3542.     }
  3543.    
  3544.     public java.lang.String getTokenModIAuditCertificateIssuerDNInfo(String oid) {
  3545.         return getTokenModIAuditCertificateIssuerDNInfo(oid, null);
  3546.     }
  3547.     public java.lang.String getTokenModIAuditCertificateIssuerDNInfo(String oid, String defaultValue) {
  3548.         String v = null;
  3549.         if(this.securityToken!=null && this.securityToken.getAudit()!=null && this.securityToken.getAudit().getCertificate()!=null &&
  3550.             this.securityToken.getAudit().getCertificate().getIssuer()!=null) {
  3551.             v = this.securityToken.getAudit().getCertificate().getIssuer().getInfo(oid);
  3552.         }
  3553.         return correctValue(v, defaultValue);
  3554.     }
  3555.    
  3556.    
  3557.    
  3558.     // modi (Soap)
  3559.    
  3560.     public java.lang.String getTokenModISoapRaw() {
  3561.         return getTokenModISoapRaw(null);
  3562.     }
  3563.     public java.lang.String getTokenModISoapRaw(String defaultValue) {
  3564.         String v = null;
  3565.         if(this.securityToken!=null && this.securityToken.getEnvelope()!=null) {
  3566.             try {
  3567.                 XMLUtils xmlUtils = XMLUtils.getInstance();
  3568.                 v = xmlUtils.toString(this.securityToken.getEnvelope().getToken(),true);
  3569.             }catch(Exception t) {
  3570.                 this.log.error("getTokenModISoapRaw"+getErrorSuffix(t),t);
  3571.             }
  3572.         }
  3573.         return correctValue(v, defaultValue);
  3574.     }
  3575.    
  3576.     public java.lang.String getTokenModISoapCertificateSubjectDN() {
  3577.         return getTokenModISoapCertificateSubjectDN(null);
  3578.     }
  3579.     public java.lang.String getTokenModISoapCertificateSubjectDN(String defaultValue) {
  3580.         String v = null;
  3581.         if(this.securityToken!=null && this.securityToken.getEnvelope()!=null && this.securityToken.getEnvelope().getCertificate()!=null &&
  3582.             this.securityToken.getEnvelope().getCertificate().getSubject()!=null) {
  3583.             v = this.securityToken.getEnvelope().getCertificate().getSubject().toString();
  3584.         }
  3585.         return correctValue(v, defaultValue);
  3586.     }
  3587.    
  3588.     public java.lang.String getTokenModISoapCertificateSubjectCN() {
  3589.         return getTokenModISoapCertificateSubjectCN(null);
  3590.     }
  3591.     public java.lang.String getTokenModISoapCertificateSubjectCN(String defaultValue) {
  3592.         String v = null;
  3593.         if(this.securityToken!=null && this.securityToken.getEnvelope()!=null && this.securityToken.getEnvelope().getCertificate()!=null &&
  3594.             this.securityToken.getEnvelope().getCertificate().getSubject()!=null) {
  3595.             v = this.securityToken.getEnvelope().getCertificate().getSubject().getCN();
  3596.         }
  3597.         return correctValue(v, defaultValue);
  3598.     }
  3599.    
  3600.     public java.lang.String getTokenModISoapCertificateSubjectDNInfo(String oid) {
  3601.         return getTokenModISoapCertificateSubjectDNInfo(oid, null);
  3602.     }
  3603.     public java.lang.String getTokenModISoapCertificateSubjectDNInfo(String oid, String defaultValue) {
  3604.         String v = null;
  3605.         if(this.securityToken!=null && this.securityToken.getEnvelope()!=null && this.securityToken.getEnvelope().getCertificate()!=null &&
  3606.             this.securityToken.getEnvelope().getCertificate().getSubject()!=null) {
  3607.             v = this.securityToken.getEnvelope().getCertificate().getSubject().getInfo(oid);
  3608.         }
  3609.         return correctValue(v, defaultValue);
  3610.     }
  3611.    
  3612.     public java.lang.String getTokenModISoapCertificateIssuerDN() {
  3613.         return getTokenModISoapCertificateIssuerDN(null);
  3614.     }
  3615.     public java.lang.String getTokenModISoapCertificateIssuerDN(String defaultValue) {
  3616.         String v = null;
  3617.         if(this.securityToken!=null && this.securityToken.getEnvelope()!=null && this.securityToken.getEnvelope().getCertificate()!=null &&
  3618.             this.securityToken.getEnvelope().getCertificate().getIssuer()!=null) {
  3619.             v = this.securityToken.getEnvelope().getCertificate().getIssuer().toString();
  3620.         }
  3621.         return correctValue(v, defaultValue);
  3622.     }
  3623.    
  3624.     public java.lang.String getTokenModISoapCertificateIssuerCN() {
  3625.         return getTokenModISoapCertificateIssuerCN(null);
  3626.     }
  3627.     public java.lang.String getTokenModISoapCertificateIssuerCN(String defaultValue) {
  3628.         String v = null;
  3629.         if(this.securityToken!=null && this.securityToken.getEnvelope()!=null && this.securityToken.getEnvelope().getCertificate()!=null &&
  3630.             this.securityToken.getEnvelope().getCertificate().getIssuer()!=null) {
  3631.             v = this.securityToken.getEnvelope().getCertificate().getIssuer().getCN();
  3632.         }
  3633.         return correctValue(v, defaultValue);
  3634.     }
  3635.    
  3636.     public java.lang.String getTokenModISoapCertificateIssuerDNInfo(String oid) {
  3637.         return getTokenModISoapCertificateIssuerDNInfo(oid, null);
  3638.     }
  3639.     public java.lang.String getTokenModISoapCertificateIssuerDNInfo(String oid, String defaultValue) {
  3640.         String v = null;
  3641.         if(this.securityToken!=null && this.securityToken.getEnvelope()!=null && this.securityToken.getEnvelope().getCertificate()!=null &&
  3642.             this.securityToken.getEnvelope().getCertificate().getIssuer()!=null) {
  3643.             v = this.securityToken.getEnvelope().getCertificate().getIssuer().getInfo(oid);
  3644.         }
  3645.         return correctValue(v, defaultValue);
  3646.     }
  3647.    
  3648.    
  3649.    
  3650.     // address
  3651.    
  3652.     public java.lang.String getHostAddress() {
  3653.         return getHostAddress(null);
  3654.     }
  3655.     public java.lang.String getHostAddress(String defaultValue) {
  3656.         try {
  3657.             return InetAddress.getLocalHost().getHostAddress();
  3658.         }catch(Exception e) {
  3659.             this.log.error("local ip: "+e.getMessage(),e);
  3660.             return correctValue(null, defaultValue);
  3661.         }
  3662.     }
  3663.    
  3664.     public java.lang.String getHostName() {
  3665.         return getHostName(null);
  3666.     }
  3667.     public java.lang.String getHostName(String defaultValue) {
  3668.         try {
  3669.             return InetAddress.getLocalHost().getHostName();
  3670.         }catch(Exception e) {
  3671.             this.log.error("local hostname: "+e.getMessage(),e);
  3672.             return correctValue(null, defaultValue);
  3673.         }
  3674.     }
  3675.    
  3676.    
  3677.     // env
  3678.    
  3679.     public java.lang.String getSystemProperty(String name) {
  3680.         return getSystemProperty(name, null);
  3681.     }
  3682.     public java.lang.String getSystemProperty(String name, String defaultValue) {
  3683.         String s = System.getenv(name);
  3684.         return correctValue(s, defaultValue);
  3685.     }
  3686.    
  3687.    
  3688.     // java
  3689.    
  3690.     public java.lang.String getJavaProperty(String name) {
  3691.         return getJavaProperty(name, null);
  3692.     }
  3693.     public java.lang.String getJavaProperty(String name, String defaultValue) {
  3694.         String s = System.getProperty(name);
  3695.         return correctValue(s, defaultValue);
  3696.     }
  3697.    
  3698.    
  3699.     // properties
  3700.    
  3701.     public java.lang.String getProperty(String name) throws CoreException {
  3702.         return getPropertyEngine(name, null, true);
  3703.     }
  3704.     public java.lang.String getProperty(String name, String defaultValue) throws CoreException {
  3705.         return getPropertyEngine(name, defaultValue, false);
  3706.     }
  3707.     private java.lang.String getPropertyEngine(String name, String defaultValue, boolean required) throws CoreException {
  3708.         String s = this.properties!=null ? this.properties.get(name) : null;
  3709.         if(s==null && required) {
  3710.             throw new CoreException("Property '"+name+"' not found");
  3711.         }
  3712.         boolean escapeV = true;
  3713.         return correctValue(s, defaultValue, !escapeV);
  3714.     }
  3715.     protected void addProperty(String name, String value) {
  3716.         this.properties.put(name, value);
  3717.     }
  3718.    
  3719.     public java.lang.String getPropertyUnion(String left, String right, String separator) throws CoreException {
  3720.         return getPropertyUnion(left, right, separator, null);
  3721.     }
  3722.     public java.lang.String getPropertyUnion(String left, String right, String separator, String defaultValue) throws CoreException {
  3723.         StringBuilder sb = new StringBuilder();
  3724.        
  3725.         String pLeft = this.getProperty(left, left); // metto come default se stessa in modo che se non la trovo uso lei.
  3726.         if(pLeft!=null && pLeft.length()>0) {
  3727.             sb.append(pLeft);
  3728.         }
  3729.        
  3730.         String pRight = this.getProperty(right, right); // metto come default se stessa in modo che se non la trovo uso lei.
  3731.         if(pRight!=null && pRight.length()>0) {
  3732.            
  3733.             if(sb.length()>0) {
  3734.                 sb.append(separator);
  3735.             }
  3736.            
  3737.             sb.append(pRight);
  3738.         }
  3739.        
  3740.         if(sb.length()>0) {
  3741.             return sb.toString();
  3742.         }
  3743.         else {
  3744.             return correctValue(null, defaultValue);
  3745.         }
  3746.     }
  3747.    
  3748.     public java.lang.String getContextProperty(String name) {
  3749.         return getContextProperty(name, null);
  3750.     }
  3751.     public java.lang.String getContextProperty(String name, String defaultValue) {
  3752.         return correctValue(this.infoConfigurazione.getContextProperty(name),defaultValue);
  3753.     }
  3754.     public java.lang.String getContextPropertiesKeys(){
  3755.         return getContextPropertiesKeys(null);
  3756.     }
  3757.     public java.lang.String getContextPropertiesKeys(String defaultValue){
  3758.         return getContextPropertiesKeys(InfoConfigurazione.KEYS_SEPARATOR,defaultValue);
  3759.     }
  3760.     public java.lang.String getContextPropertiesKeys(String separator, String defaultValue){
  3761.         return correctValue(this.infoConfigurazione.getContextPropertiesKeysAsString(separator),defaultValue);
  3762.     }
  3763.     public java.lang.String getContextProperties(){
  3764.         return getContextProperties(null);
  3765.     }
  3766.     public java.lang.String getContextProperties(String defaultValue){
  3767.         return getContextProperties(InfoConfigurazione.PROPERTY_SEPARATOR,InfoConfigurazione.VALUE_SEPARATOR,defaultValue);
  3768.     }
  3769.     public java.lang.String getContextProperties(String propertySeparator, String valueSeparator){
  3770.         return getContextProperties(propertySeparator, valueSeparator, null);
  3771.     }
  3772.     public java.lang.String getContextProperties(String propertySeparator, String valueSeparator, String defaultValue){
  3773.         return correctValue(this.infoConfigurazione.getContextPropertiesAsString(propertySeparator,valueSeparator),defaultValue);
  3774.     }
  3775.    
  3776.    
  3777.     // Tracking Phase
  3778.    
  3779.     public String getTrackingPhase() {
  3780.         return this.trackingPhase!=null ? this.trackingPhase.name() : "-";
  3781.     }
  3782.    

  3783.     // UTILITY
  3784.    
  3785.     private String escape(String v) {
  3786.         if(this.escape!=null && !this.escape.isEmpty()) {
  3787.             Set<String> specialCharacters = this.escape.keySet();
  3788.             boolean found = false;
  3789.             for (String specialChar : specialCharacters) {
  3790.                 if(v.contains(specialChar)) {
  3791.                     found = true;
  3792.                     break;
  3793.                 }
  3794.             }
  3795.             if(!found) {
  3796.                 return v;
  3797.             }
  3798.             return escapeEngine(v, specialCharacters);
  3799.         }
  3800.         else {
  3801.             return v;
  3802.         }
  3803.     }
  3804.     private String escapeEngine(String v, Set<String> specialCharacters) {
  3805.         StringBuilder sb = new StringBuilder();
  3806.         for (int i = 0; i < v.length(); i++) {
  3807.             String charAtI = v.charAt(i)+"";
  3808.             boolean foundSpecialChar = false;
  3809.             for (String specialChar : specialCharacters) {
  3810.                 if(charAtI.equals(specialChar)) {
  3811.                     String escapeChar = this.escape.get(specialChar);
  3812.                     sb.append(escapeChar);
  3813.                     foundSpecialChar = true;
  3814.                     break;
  3815.                 }
  3816.             }
  3817.             if(!foundSpecialChar) {
  3818.                 sb.append(charAtI);
  3819.             }
  3820.         }
  3821.         return sb.toString();
  3822.     }
  3823.    
  3824.     private String correctValue(String v, String defaultValueParam) {
  3825.         return correctValue(v, defaultValueParam, true);
  3826.     }
  3827.     private String correctValue(String v, String defaultValueParam, boolean escape) {
  3828.         return correctValue(v, defaultValueParam, escape, true);
  3829.     }
  3830.     private String correctValue(String v, String defaultValueParam, boolean escape, boolean useBase64option) {
  3831.         String defaultValueTmp = this.defaultValue;
  3832.         if(defaultValueParam!=null) {
  3833.             defaultValueTmp = defaultValueParam;
  3834.         }
  3835.         String res = null;
  3836.         if(escape && !this.base64) { // se codifico in base64 l'escape non serve
  3837.             res = v!=null ? this.escape(v) : defaultValueTmp;
  3838.         }
  3839.         else {
  3840.             res = v!=null ? v : defaultValueTmp;
  3841.         }
  3842.         if(useBase64option && this.base64 && res!=null && res.length()>0) {
  3843.             return Base64Utilities.encodeAsString(res.getBytes());
  3844.         }
  3845.         else {
  3846.             return res;
  3847.         }
  3848.     }
  3849.    
  3850.     private String correctDate(java.util.Date d, String format, String timeZone, String defaultValueParam, String replace, String with) {
  3851.         if(d==null) {
  3852.             return correctValue(null, defaultValueParam);
  3853.         }
  3854.         String v = correctDateWithoutCorrectValue(d, format, timeZone, replace, with);
  3855.         return correctValue(v, defaultValueParam);
  3856.     }
  3857.     private String correctDateWithoutCorrectValue(java.util.Date d, String format, String timeZone, String replace, String with) {
  3858.         SimpleDateFormat formatter = null;
  3859.         // Uso JAVA_UTIL perche' mi funziona meglio per avere l'UTC
  3860.         if(timeZone==null) {
  3861.             formatter = DateUtils.getDateFormatter_ISO_8601_TZ(DateEngineType.JAVA_UTIL, format);
  3862.         }
  3863.         else {
  3864.             formatter = DateUtils.getDateFormatter(DateEngineType.JAVA_UTIL, format);
  3865.             formatter.setTimeZone( TimeZone.getTimeZone( timeZone ) );
  3866.         }
  3867.         String v = formatter.format(d);
  3868.         if(replace!=null && with!=null) {
  3869.             v = v.replaceAll(replace, with);
  3870.         }
  3871.         return v;
  3872.     }
  3873.    
  3874.     private long correctLong(Long v, String defaultValueParam) {
  3875.         long defaultValueTmp = this.defaultLongValue;
  3876.         if(defaultValueParam!=null) {
  3877.             defaultValueTmp = Long.valueOf(defaultValueParam);
  3878.         }
  3879.         return v!=null && v>=0 ? v : defaultValueTmp;
  3880.     }
  3881.    
  3882.     private int correctInteger(Integer v, String defaultValueParam) {
  3883.         int defaultValueTmp = this.defaultIntegerValue;
  3884.         if(defaultValueParam!=null) {
  3885.             defaultValueTmp = Integer.valueOf(defaultValueParam);
  3886.         }
  3887.         return v!=null && v>=0 ? v : defaultValueTmp;
  3888.     }
  3889.    
  3890.     private String correctByteArray(byte[] v, String defaultValueParam) {
  3891.         String s = null;
  3892.         if(v!=null && v.length>0) {
  3893.             if(this.base64) {
  3894.                 s = Base64Utilities.encodeAsString(v);
  3895.             }
  3896.             else {
  3897.                 s = new String(v);
  3898.             }
  3899.         }
  3900.         String defaultValueTmp = this.defaultValue;
  3901.         if(defaultValueParam!=null) {
  3902.             defaultValueTmp = defaultValueParam;
  3903.         }
  3904.         return s!=null ? this.escape(s) : defaultValueTmp;
  3905.     }
  3906.    
  3907.     private String formatHeaders( Map<String, List<String>>  mapParam, String defaultValueParam, HeaderFormat headerFormat) {
  3908.        
  3909.         Map<String, List<String>>  map = null;
  3910.         if(mapParam!=null && !mapParam.isEmpty()) {
  3911.             if(this.headerWhiteList!=null && !this.headerWhiteList.isEmpty()) {
  3912.                 map = filterHeaders(true, this.headerWhiteList, mapParam);
  3913.             }
  3914.             else if(this.headerBlackList!=null && !this.headerBlackList.isEmpty()) {
  3915.                 map = filterHeaders(false, this.headerBlackList, mapParam);
  3916.             }
  3917.             else {
  3918.                 map = mapParam;
  3919.             }
  3920.         }
  3921.        
  3922.         return formatHeadersEngine(map, defaultValueParam, headerFormat);
  3923.     }
  3924.     private Map<String, List<String>> filterHeaders(boolean white, List<String> filterList, Map<String, List<String>> sourceHeaders) {
  3925.         Map<String, List<String>> map = null;
  3926.         if(filterList!=null && !filterList.isEmpty()) {
  3927.             map = new HashMap<>();
  3928.             filterHeaders(map, white, filterList, sourceHeaders);
  3929.         }
  3930.         return map;
  3931.     }
  3932.     private void filterHeaders(Map<String, List<String>> map, boolean white, List<String> filterList, Map<String, List<String>> sourceHeaders){
  3933.         for (Map.Entry<String,List<String>> entry : sourceHeaders.entrySet()) {
  3934.            
  3935.             String hdr = entry.getKey();
  3936.            
  3937.             boolean find = false;
  3938.             for (String filterHdr : filterList) {
  3939.                 if(filterHdr.equalsIgnoreCase(hdr)) {
  3940.                     find = true;
  3941.                     break;
  3942.                 }
  3943.             }
  3944.             if(white) {
  3945.                 if(find) {
  3946.                     map.put(hdr, sourceHeaders.get(hdr));
  3947.                 }
  3948.             }
  3949.             else {
  3950.                 if(!find) {
  3951.                     map.put(hdr, sourceHeaders.get(hdr));
  3952.                 }
  3953.             }
  3954.         }
  3955.     }
  3956.     private String formatHeadersEngine(Map<String, List<String>>  map, String defaultValueParam, HeaderFormat headerFormat) {
  3957.         if(map!=null && !map.isEmpty()) {
  3958.             StringBuilder sb = new StringBuilder();
  3959.             for (Map.Entry<String,List<String>> entry : map.entrySet()) {
  3960.                
  3961.                 String hdr = entry.getKey();
  3962.                
  3963.                 if(HttpConstants.RETURN_CODE.equals(hdr)) {
  3964.                     continue;
  3965.                 }
  3966.                
  3967.                 formatHeadersEngine(sb, map, hdr,
  3968.                         defaultValueParam, headerFormat);
  3969.                
  3970.             }
  3971.             String res = sb.toString();
  3972.             if(this.base64 && res!=null && res.length()>0) {
  3973.                 return Base64Utilities.encodeAsString(res.getBytes());
  3974.             }
  3975.             else {
  3976.                 return res;
  3977.             }
  3978.         }
  3979.         return correctValue(null, defaultValueParam);
  3980.     }
  3981.     private void formatHeadersEngine(StringBuilder sb, Map<String, List<String>>  map, String hdr,
  3982.             String defaultValueParam, HeaderFormat headerFormat) {
  3983.         List<String> hdrValues = map.get(hdr);
  3984.         if(hdrValues!=null && !hdrValues.isEmpty()) {
  3985.             for (String hdrValue : hdrValues) {
  3986.                 formatHeadersEngine(sb, hdr,
  3987.                         defaultValueParam, headerFormat,
  3988.                         hdrValue);
  3989.             }
  3990.         }
  3991.     }
  3992.     private void formatHeadersEngine(StringBuilder sb, String hdr,
  3993.             String defaultValueParam, HeaderFormat headerFormat,
  3994.             String hdrValue) {
  3995.         if(sb.length()>0) {
  3996.             sb.append(headerFormat.hdrsSeparator==null ? this.headersSeparator : headerFormat.hdrsSeparator);
  3997.         }
  3998.         sb.append(headerFormat.hdrPrefix==null ? this.headerPrefix : headerFormat.hdrPrefix);
  3999.         sb.append(this.correctValue(hdr, defaultValueParam, true, false));
  4000.         sb.append(headerFormat.hdrSeparator==null ? this.headerSeparator : headerFormat.hdrSeparator);
  4001.         sb.append(this.correctValue(hdrValue, defaultValueParam, true, false));
  4002.         sb.append(headerFormat.hdrSuffix == null ? this.headerSuffix: headerFormat.hdrSuffix);      
  4003.     }

  4004.    
  4005.     private String format(List<String> values, String separator) {
  4006.         String s = null;
  4007.         if(values!=null && !values.isEmpty()) {
  4008.             StringBuilder sb = new StringBuilder();
  4009.             for (String value : values) {
  4010.                 if(sb.length()>0) {
  4011.                     sb.append(separator);
  4012.                 }
  4013.                 sb.append(value);
  4014.             }
  4015.             s = sb.toString();
  4016.         }
  4017.         return s;
  4018.     }
  4019.    
  4020.     private String formatTokenClaims(Map<String, String> map, String claimSeparator, String nameValueSeparator) {
  4021.         String s = null;
  4022.         if(map!=null && !map.isEmpty()) {
  4023.             StringBuilder sb = new StringBuilder();
  4024.             for (Map.Entry<String,String> entry : map.entrySet()) {
  4025.                 String key = entry.getKey();
  4026.                 String value = map.get(key);
  4027.                 if(sb.length()>0) {
  4028.                     sb.append(claimSeparator);
  4029.                 }
  4030.                 sb.append(key);
  4031.                 sb.append(nameValueSeparator);
  4032.                 sb.append(value!=null ? value : "");
  4033.             }
  4034.             s = sb.toString();
  4035.         }
  4036.         return s;
  4037.     }
  4038.    
  4039.     private Map<String, List<String>> filterHeaders(Map<String, List<String>> header, List<String> headerConsumati) {
  4040.        
  4041.         if(headerConsumati==null || headerConsumati.isEmpty()) {
  4042.             return header;
  4043.         }
  4044.        
  4045.         Map<String, List<String>> newMap = null;
  4046.         if(header!=null) {
  4047.             newMap = new HashMap<>();
  4048.             for (Entry<String, List<String>> entry : header.entrySet()) {
  4049.                 boolean exists = false;
  4050.                 for (String h : headerConsumati) {
  4051.                     if(h.equalsIgnoreCase(entry.getKey())) {
  4052.                         exists=true;
  4053.                         break;
  4054.                     }
  4055.                 }
  4056.                 if(!exists) {
  4057.                     newMap.put(entry.getKey(), entry.getValue());
  4058.                 }
  4059.             }
  4060.         }
  4061.         return newMap;
  4062.     }
  4063. }