DiagnosticoBuilder.java

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



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

  21. import org.slf4j.Logger;
  22. import org.openspcoop2.protocol.engine.Configurazione;
  23. import org.openspcoop2.protocol.sdk.IProtocolFactory;
  24. import org.openspcoop2.protocol.sdk.ProtocolException;
  25. import org.openspcoop2.protocol.sdk.constants.TipoSerializzazione;
  26. import org.openspcoop2.protocol.sdk.diagnostica.IDiagnosticSerializer;
  27. import org.openspcoop2.protocol.sdk.diagnostica.MsgDiagnostico;
  28. import org.openspcoop2.utils.LoggerWrapperFactory;
  29. import org.w3c.dom.Element;

  30. /**
  31.  * Classe che contiene utility per generare xml relativo a :
  32.  * <ul>
  33.  * <li> Tracciamento
  34.  * <li> Diagnostica
  35.  * <li> Eccezioni
  36.  * </ul>
  37.  *
  38.  *
  39.  * @author Poli Andrea (apoli@link.it)
  40.  * @author $Author$
  41.  * @version $Rev$, $Date$
  42.  */

  43. public class DiagnosticoBuilder  {


  44.     /** Logger utilizzato per debug. */
  45.     protected Logger log = null;
  46.     private IProtocolFactory<?> protocolFactory;
  47.     private IDiagnosticSerializer diagnosticoProtocolBuilder;
  48.     public DiagnosticoBuilder(IProtocolFactory<?> protocolFactory) {
  49.         this(Configurazione.getLibraryLog(), protocolFactory);
  50.     }
  51.     public DiagnosticoBuilder(Logger aLog,IProtocolFactory<?> protocolFactory) {
  52.         if(aLog!=null)
  53.             this.log = aLog;
  54.         else
  55.             this.log = LoggerWrapperFactory.getLogger(DiagnosticoBuilder.class);
  56.         this.protocolFactory = protocolFactory;
  57.         try{
  58.             this.diagnosticoProtocolBuilder = this.protocolFactory.createDiagnosticSerializer();
  59.         }catch(Exception e){
  60.             this.log.error("Errore durante la creazione dell'XMLDiagnosticoBuilder: "+e.getMessage(),e);
  61.         }
  62.     }

  63.     public IProtocolFactory<?> getProtocolFactory(){
  64.         return this.protocolFactory;
  65.     }
  66.    

  67.     /* --------------------- MESSAGGI DIAGNOSTICI -----------------------*/

  68.     /**
  69.      * Costruisce un SOAPElement contenente un Messaggio Diagnostico come definito da specifica  
  70.      *
  71.      * @param msgDiag Contiene i dati del diagnostico
  72.      * @return SOAPElement contenente il messaggio Diagnostico in caso di successo, null altrimenti.
  73.      *
  74.      */

  75.     public Element toElement(MsgDiagnostico msgDiag) throws ProtocolException{
  76.         return this.diagnosticoProtocolBuilder.toElement(msgDiag);
  77.     }
  78.    


  79.     /**
  80.      * Costruisce un array di byte contenente un Messaggio Diagnostico
  81.      *
  82.      * @param msgDiag Contiene i dati del diagnostico
  83.      * @return array di byte contenente il messaggio Diagnostico in caso di successo, null altrimenti.
  84.      *
  85.      */
  86.     public byte[] toByteArray(MsgDiagnostico msgDiag, TipoSerializzazione tipoSerializzazione) throws ProtocolException{
  87.         return this.diagnosticoProtocolBuilder.toByteArray(msgDiag,tipoSerializzazione);
  88.     }

  89.     /**
  90.      * Costruisce una Stringa contenente un Messaggio Diagnostico
  91.      *
  92.      * @param msgDiag Contiene i dati del diagnostico
  93.      * @return String contenente il messaggio Diagnostico in caso di successo, null altrimenti.
  94.      *
  95.      */
  96.     public String toString(MsgDiagnostico msgDiag, TipoSerializzazione tipoSerializzazione) throws ProtocolException{
  97.         return this.diagnosticoProtocolBuilder.toString(msgDiag,tipoSerializzazione);
  98.     }
  99. }