TracciaBuilder.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.openspcoop2.protocol.engine.Configurazione;
  22. import org.openspcoop2.protocol.sdk.IProtocolFactory;
  23. import org.openspcoop2.protocol.sdk.ProtocolException;
  24. import org.openspcoop2.protocol.sdk.constants.TipoSerializzazione;
  25. import org.openspcoop2.protocol.sdk.tracciamento.ITracciaSerializer;
  26. import org.openspcoop2.protocol.sdk.tracciamento.Traccia;
  27. import org.openspcoop2.utils.LoggerWrapperFactory;
  28. import org.slf4j.Logger;
  29. import org.w3c.dom.Element;

  30. /**
  31.  * Classe per la costruzione delle traccie
  32.  *
  33.  * @author Poli Andrea (apoli@link.it)
  34.  * @author $Author$
  35.  * @version $Rev$, $Date$
  36.  */

  37. public class TracciaBuilder  {


  38.     /** Logger utilizzato per debug. */
  39.     protected Logger log = null;

  40.     private IProtocolFactory<?> protocolFactory;
  41.     private ITracciaSerializer tracciaProtocolBuilder;
  42.    
  43.     public TracciaBuilder(IProtocolFactory<?> protocolFactory) {
  44.         this(Configurazione.getLibraryLog(), protocolFactory);
  45.     }
  46.     public TracciaBuilder(Logger aLog, IProtocolFactory<?> protocolFactory) {
  47.         if(aLog!=null)
  48.             this.log = aLog;
  49.         else
  50.             this.log = LoggerWrapperFactory.getLogger(TracciaBuilder.class);
  51.         this.protocolFactory = protocolFactory;
  52.         try{
  53.             this.tracciaProtocolBuilder = this.protocolFactory.createTracciaSerializer();
  54.         }catch(Exception e){
  55.             this.log.error("Errore durante la creazione dell'XMLTracciaBuilder: "+e.getMessage(),e);
  56.         }
  57.     }

  58.     public IProtocolFactory<?> getProtocolFactory(){
  59.         return this.protocolFactory;
  60.     }

  61.     /* --------------------- TRACCIAMENTO BUSTE -----------------------*/

  62.     /**
  63.      * Costruisce un SOAPElement contenente un Tracciamento come definito da specifica del protocollo
  64.      *
  65.      * @param traccia conterra' i valori della traccia
  66.      * @return SOAPElement contenente il  tracciamento in caso di successo, null altrimenti.
  67.      *
  68.      */
  69.     public Element toElement(Traccia traccia)throws ProtocolException{
  70.         return this.tracciaProtocolBuilder.toElement(traccia);
  71.     }
  72.    
  73.     /**
  74.      * Costruisce un array di byte contenenti un Tracciamento (formato XML) come definito da specifica del protocollo
  75.      *
  76.      * @param traccia conterra' i valori della traccia
  77.      * @return array di byte contenente il codice XML del tracciamento in caso di successo, null altrimenti.
  78.      *
  79.      */
  80.     public byte[] toByteArray(Traccia traccia, TipoSerializzazione tipoSerializzazione)throws ProtocolException{
  81.         return this.tracciaProtocolBuilder.toByteArray(traccia, tipoSerializzazione);
  82.     }

  83.     /**
  84.      * Costruisce un pezzo di codice XML contenente un Tracciamento come definito da specifica del protocollo
  85.      *
  86.      * @param traccia conterra' i valori della traccia
  87.      * @return String contenente il codice XML del tracciamento in caso di successo, null altrimenti.
  88.      *
  89.      */
  90.     public String toString(Traccia traccia, TipoSerializzazione tipoSerializzazione) throws ProtocolException{
  91.         return this.tracciaProtocolBuilder.toString(traccia, tipoSerializzazione);
  92.     }

  93. }