AbstractContext.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.services.core;

  21. import java.util.Date;
  22. import java.util.List;
  23. import java.util.Map;

  24. import org.openspcoop2.core.constants.TipoPdD;
  25. import org.openspcoop2.core.id.IDSoggetto;
  26. import org.openspcoop2.message.OpenSPCoop2Message;
  27. import org.openspcoop2.pdd.core.IntegrationContext;
  28. import org.openspcoop2.pdd.core.PdDContext;
  29. import org.openspcoop2.pdd.core.ProtocolContext;
  30. import org.openspcoop2.pdd.core.credenziali.Credenziali;
  31. import org.openspcoop2.pdd.logger.MsgDiagnostico;
  32. import org.openspcoop2.protocol.sdk.constants.IDService;
  33. import org.openspcoop2.protocol.sdk.state.RequestInfo;
  34. import org.openspcoop2.protocol.sdk.state.URLProtocolContext;
  35. import org.openspcoop2.utils.id.UniqueIdentifierException;
  36. import org.openspcoop2.utils.id.UniqueIdentifierManager;
  37. import org.openspcoop2.utils.io.notifier.NotifierInputStreamParams;

  38. /**
  39.  * Contesto di attivazione dei servizi
  40.  *
  41.  * @author Poli Andrea (apoli@link.it)
  42.  * @author $Author$
  43.  * @version $Rev$, $Date$
  44.  */

  45. public abstract class AbstractContext implements java.io.Serializable{

  46.     /**
  47.      *
  48.      */
  49.     private static final long serialVersionUID = 1L;
  50.    
  51.     /** Data di accettazione richiesta */
  52.     protected Date dataAccettazioneRichiesta;
  53.     public Date getDataAccettazioneRichiesta() {
  54.         return this.dataAccettazioneRichiesta;
  55.     }
  56.    
  57.     /** Data di ingresso richiesta */
  58.     protected Date dataIngressoRichiesta;
  59.     public void setDataIngressoRichiesta(Date dataIngressoRichiesta) {
  60.         this.dataIngressoRichiesta = dataIngressoRichiesta;
  61.     }
  62.     public Date getDataIngressoRichiesta() {
  63.         return this.dataIngressoRichiesta;
  64.     }

  65.     /** PdDContext pddContext */
  66.     protected PdDContext pddContext;
  67.     public PdDContext getPddContext() {
  68.         return this.pddContext;
  69.     }
  70.    
  71.     /** RequestInfo */
  72.     protected RequestInfo requestInfo;
  73.    
  74.     /** URLProtocolContext */
  75.     private URLProtocolContext urlProtocolContext;
  76.    
  77.     /** ID */
  78.     private String idMessage;
  79.    
  80.     /** ID Modulo Richiedente */
  81.     private IDService idModuloAsIDService;
  82.     private String idModulo;
  83.    
  84.     /** identitaPdD */
  85.     protected IDSoggetto identitaPdD;
  86.    
  87.     /** Messaggio di Richiesta */
  88.     private OpenSPCoop2Message messageRequest;
  89.    
  90.     /** Messaggio di Risposta */
  91.     private OpenSPCoop2Message messageResponse;
  92.    
  93.     /** GestioneRisposta */
  94.     private boolean gestioneRisposta;
  95.    
  96.     /** Credenziali */
  97.     private Credenziali credenziali ;
  98.     /** LocationSource */
  99.     protected String fromLocation;
  100.     /** Informazioni protocollo */
  101.     private ProtocolContext protocol;
  102.     /** Informazioni di integrazione */
  103.     private IntegrationContext integrazione;
  104.     /** Tipologia di Porta*/
  105.     private TipoPdD tipoPorta;
  106.     /** MsgDiagnostico */
  107.     private MsgDiagnostico msgDiagnostico;

  108.     /** Header di trasporto per l'Integrazione */
  109.     private Map<String, List<String>> responseHeaders;

  110.     /** NotifierInputStreamParameters */
  111.     private NotifierInputStreamParams notifierInputStreamParams;
  112.    
  113.     /** Costruttore */
  114.     public AbstractContext(IDService idModuloAsIDService, Date dataAccettazioneRichiesta,RequestInfo requestInfo) throws UniqueIdentifierException{
  115.         this.pddContext = new PdDContext();
  116.         this.pddContext.addObject(org.openspcoop2.core.constants.Costanti.ID_TRANSAZIONE,UniqueIdentifierManager.newUniqueIdentifier().getAsString());
  117.         if(requestInfo!=null) {
  118.             this.pddContext.addObject(org.openspcoop2.core.constants.Costanti.REQUEST_INFO,requestInfo);
  119.         }
  120.         this.dataAccettazioneRichiesta = dataAccettazioneRichiesta;
  121.         if(requestInfo!=null) {
  122.             this.identitaPdD = requestInfo.getIdentitaPdD();
  123.         }
  124.         this.idModuloAsIDService = idModuloAsIDService;
  125.         this.requestInfo = requestInfo;
  126.     }
  127.     protected AbstractContext(IDService idModuloAsIDService){
  128.         this.idModuloAsIDService = idModuloAsIDService;
  129.     }
  130.    
  131.     public IDService getIdModuloAsIDService() {
  132.         return this.idModuloAsIDService;
  133.     }
  134.    
  135.     /**
  136.      * ID Modulo Richiedente
  137.      *
  138.      * @return ID Modulo Richiedente
  139.      */
  140.     public String getIdModulo() {
  141.         return this.idModulo;
  142.     }

  143.     /**
  144.      * Imposta l'ID Modulo Richiedente
  145.      *
  146.      * @param idModulo ID Modulo Richiedente
  147.      */
  148.     public void setIdModulo(String idModulo) {
  149.         this.idModulo = idModulo;
  150.     }

  151.    
  152.     /**
  153.      * Messaggio di Richiesta
  154.      *
  155.      * @return Messaggio di Richiesta
  156.      */
  157.     public OpenSPCoop2Message getMessageRequest() {
  158.         return this.messageRequest;
  159.     }
  160.     /**
  161.      * Messaggio di Risposta
  162.      *
  163.      * @return Messaggio di Risposta
  164.      */
  165.     public OpenSPCoop2Message getMessageResponse() {
  166.         return this.messageResponse;
  167.     }

  168.     /**
  169.      * Imposta il Messaggio di Richiesta
  170.      *
  171.      * @param message Messaggio di Richiesta
  172.      */
  173.     public void setMessageRequest(OpenSPCoop2Message message) {
  174.         this.messageRequest = message;
  175.     }
  176.     /**
  177.      * Imposta il Messaggio di Risposta
  178.      *
  179.      * @param messageResponse Messaggio di Risposta
  180.      */
  181.     public void setMessageResponse(OpenSPCoop2Message messageResponse) {
  182.         this.messageResponse = messageResponse;
  183.     }

  184.     /**
  185.      * Credenziali
  186.      *
  187.      * @return Credenziali
  188.      */
  189.     public Credenziali getCredenziali() {
  190.         return this.credenziali;
  191.     }
  192.    
  193.     /**
  194.      * Imposta le credenziali
  195.      *
  196.      * @param credenziali Credenziali da impostare
  197.      */
  198.     public void setCredenziali(Credenziali credenziali) {
  199.         this.credenziali = credenziali;
  200.     }
  201.     /**
  202.      * Indicazione se deve essere aspettata una risposta applicativa
  203.      *
  204.      * @return Indicazione se deve essere aspettata una risposta applicativa
  205.      */
  206.     public boolean isGestioneRisposta() {
  207.         return this.gestioneRisposta;
  208.     }

  209.     /**
  210.      * Imposta l'indicazione se deve essere aspettata una risposta applicativa
  211.      *
  212.      * @param gestioneRisposta indicazione se deve essere aspettata una risposta applicativa
  213.      */
  214.     public void setGestioneRisposta(boolean gestioneRisposta) {
  215.         this.gestioneRisposta = gestioneRisposta;
  216.     }

  217.     public String getSourceLocation() {
  218.         return this.requestInfo!=null &&
  219.                 this.requestInfo.getProtocolContext()!=null ?
  220.                     this.requestInfo.getProtocolContext().getSource(): null;
  221.     }
  222.    
  223.     public MsgDiagnostico getMsgDiagnostico() {
  224.         return this.msgDiagnostico;
  225.     }
  226.     public void setMsgDiagnostico(MsgDiagnostico msgDiagnostico) {
  227.         this.msgDiagnostico = msgDiagnostico;
  228.     }
  229.    
  230.     public String getIdMessage() {
  231.         return this.idMessage;
  232.     }

  233.     public void setIdMessage(String id) {
  234.         this.idMessage = id;
  235.     }

  236.     public ProtocolContext getProtocol() {
  237.         return this.protocol;
  238.     }

  239.     public void setProtocol(ProtocolContext p) {
  240.         this.protocol = p;
  241.     }

  242.     public IntegrationContext getIntegrazione() {
  243.         return this.integrazione;
  244.     }

  245.     public void setIntegrazione(IntegrationContext integrazione) {
  246.         this.integrazione = integrazione;
  247.     }

  248.     public TipoPdD getTipoPorta() {
  249.         return this.tipoPorta;
  250.     }

  251.     public void setTipoPorta(TipoPdD tipoPorta) {
  252.         this.tipoPorta = tipoPorta;
  253.     }


  254.     public Map<String, List<String>> getResponseHeaders() {
  255.         return this.responseHeaders;
  256.     }

  257.     public void setResponseHeaders(
  258.             Map<String, List<String>> propertiesRispostaTrasporto) {
  259.         this.responseHeaders = propertiesRispostaTrasporto;
  260.     }

  261.     public IDSoggetto getIdentitaPdD() {
  262.         return this.identitaPdD;
  263.     }

  264.     public void setIdentitaPdD(IDSoggetto identitaPdD) {
  265.         this.identitaPdD = identitaPdD;
  266.     }
  267.     public URLProtocolContext getUrlProtocolContext() {
  268.         return this.urlProtocolContext;
  269.     }
  270.     public void setUrlProtocolContext(URLProtocolContext urlProtocolContext) {
  271.         this.urlProtocolContext = urlProtocolContext;
  272.     }

  273.     public NotifierInputStreamParams getNotifierInputStreamParams() {
  274.         return this.notifierInputStreamParams;
  275.     }
  276.     public void setNotifierInputStreamParams(
  277.             NotifierInputStreamParams notifierInputStreamParams) {
  278.         this.notifierInputStreamParams = notifierInputStreamParams;
  279.     }
  280.    
  281.     public RequestInfo getRequestInfo() {
  282.         return this.requestInfo;
  283.     }
  284. }