Servizio.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.sdk;

  21. import java.util.Date;

  22. import org.openspcoop2.core.id.IDAccordo;
  23. import org.openspcoop2.core.id.IDServizio;
  24. import org.openspcoop2.core.id.IDSoggetto;
  25. import org.openspcoop2.message.constants.ServiceBinding;
  26. import org.openspcoop2.protocol.sdk.constants.Inoltro;
  27. import org.openspcoop2.protocol.sdk.constants.ProfiloDiCollaborazione;

  28. /**
  29.  * Classe utilizzata per rappresentare un Servizio presente all'interno
  30.  * del Registro dei Servizi.
  31.  *
  32.  *
  33.  * @author Poli Andrea (apoli@link.it)
  34.  * @author $Author$
  35.  * @version $Rev$, $Date$
  36.  */

  37. public class Servizio implements java.io.Serializable {

  38.     /**
  39.      * serialVersionUID
  40.      */
  41.     private static final long serialVersionUID = 1L;

  42.     /* ********  F I E L D S  P R I V A T I  ******** */

  43.     /** Identificatore del Servizio nel registro dei servizi. */
  44.     private IDServizio idServizio;
  45.     /** IDAccordo del servizio */
  46.     private IDAccordo idAccordo;
  47.     private ServiceBinding serviceBinding;
  48.     /** Profilo di Collaborazione. */
  49.     private ProfiloDiCollaborazione profiloDiCollaborazione;
  50.     /** Utilizzo di un ID-Collaborazione. */
  51.     private boolean idCollaborazione;
  52.     /** Utilizzo di per riferimento alla richiesta */
  53.     private boolean idRiferimentoRichiesta;
  54.     /** Consegna in ordine. */
  55.     private boolean ordineConsegna;
  56.     /** Scadenza (null se non presente) */
  57.     private Date scadenza;
  58.     /** Scadenza */
  59.     private long scadenzaMinuti = -1;
  60.     /** attributo 'inoltro' del profilo di trasmissione. */
  61.     private Inoltro inoltro;
  62.     /** attributo 'confermaRicezione' del profilo di trasmissione. */
  63.     private boolean confermaRicezione;
  64.     /** Tipo Servizio Correlato associato al servizio */
  65.     private String tipoServizioCorrelato;
  66.     /** Servizio Correlato associato al servizio */
  67.     private String servizioCorrelato;
  68.     /** Versione Servizio Correlato associato al servizio */
  69.     private Integer versioneServizioCorrelato;
  70.     /** Indicazione se e' un servizio correlato */
  71.     private boolean correlato;


  72.    
  73.    
  74.     public Busta convertToBusta(String protocollo,IDSoggetto fruitore){
  75.         Busta busta = new Busta(protocollo);
  76.         if(fruitore!=null){
  77.             busta.setTipoMittente(fruitore.getTipo());
  78.             busta.setMittente(fruitore.getNome());
  79.             busta.setIdentificativoPortaMittente(fruitore.getCodicePorta());
  80.         }
  81.         if(this.idServizio!=null){
  82.             if(this.idServizio.getSoggettoErogatore()!=null){
  83.                 busta.setTipoDestinatario(this.idServizio.getSoggettoErogatore().getTipo());
  84.                 busta.setDestinatario(this.idServizio.getSoggettoErogatore().getNome());
  85.                 busta.setIdentificativoPortaDestinatario(this.idServizio.getSoggettoErogatore().getCodicePorta());
  86.             }
  87.             busta.setTipoServizio(this.idServizio.getTipo());
  88.             busta.setServizio(this.idServizio.getNome());
  89.             busta.setVersioneServizio(this.idServizio.getVersione());
  90.             busta.setAzione(this.idServizio.getAzione());
  91.         }
  92.         busta.setProfiloDiCollaborazione(this.profiloDiCollaborazione);
  93.         busta.setInoltro(this.inoltro);
  94.         busta.setConfermaRicezione(this.confermaRicezione);
  95.         busta.setTipoServizioCorrelato(this.tipoServizioCorrelato);
  96.         busta.setServizioCorrelato(this.servizioCorrelato);
  97.         busta.setVersioneServizioCorrelato(this.versioneServizioCorrelato);

  98.         return busta;
  99.     }
  100.    
  101.    
  102.    
  103.    
  104.    

  105.     /* ********  C O S T R U T T O R E  ******** */

  106.     /**
  107.      * Costruttore.
  108.      *
  109.      *
  110.      */
  111.     public Servizio(){
  112.     }






  113.     /* ********  S E T T E R   ******** */

  114.     /**
  115.      * Imposta l'identificatore del Servizio nel registro dei servizi.
  116.      *
  117.      * @param idServizio Identificatore del Servizio.
  118.      *
  119.      */
  120.     public void setIDServizio(IDServizio idServizio){
  121.         this.idServizio = idServizio;
  122.     }
  123.     /**
  124.      * Imposta il profilo di Collaborazione associato al servizio registrato nel Registro dei Servizi.
  125.      *
  126.      * @param p Profili di Collaborazione.
  127.      *
  128.      */
  129.     public void setProfiloDiCollaborazione(ProfiloDiCollaborazione p ){
  130.         this.profiloDiCollaborazione = p;
  131.     }
  132.     /**
  133.      * Imposta la presenza o meno della collaborazione nel servizio registrato nel Registro dei Servizi.
  134.      *
  135.      * @param c true se la collaborazione e' presente, false altrimenti.
  136.      *
  137.      */
  138.     public void setCollaborazione(boolean c ){
  139.         this.idCollaborazione = c;
  140.     }
  141.     public void setIdRiferimentoRichiesta(boolean c ){
  142.         this.idRiferimentoRichiesta = c;
  143.     }
  144.     /**
  145.      * Imposta l'utilizzo della funzionalita' di consegna in ordine nel servizio registrato nel Registro dei Servizi.
  146.      *
  147.      * @param s true se la sequenza e' presente, false altrimenti.
  148.      *
  149.      */
  150.     public void setOrdineConsegna(boolean s){
  151.         this.ordineConsegna = s;
  152.     }
  153.     /**
  154.      * Imposta la scadenza associata al servizio registrato nel Registro dei Servizi.
  155.      *
  156.      * @param s null se non e' presente una scadenza, la data di scadenza altrimenti.
  157.      *
  158.      */
  159.     public void setScadenza(Date s){
  160.         this.scadenza = s;
  161.     }
  162.     /**
  163.      * Imposta il tipo di inoltro del profilo di trasmissione associato al servizio registrato nel Registro dei Servizi.
  164.      *
  165.      * @param i tipo di Inoltro.
  166.      *
  167.      */
  168.     public void setInoltro(Inoltro i ){
  169.         this.inoltro = i;
  170.     }
  171.     /**
  172.      * Imposta la confermaRicezione o meno del profilo di trasmissione associato al servizio registrato nel Registro dei Servizi.
  173.      *
  174.      * @param cr true se si desidera una confermaRicezione, false altrimenti.
  175.      *
  176.      */
  177.     public void setConfermaRicezione(boolean cr){
  178.         this.confermaRicezione = cr;
  179.     }

  180.     /**
  181.      * Imposta il servizio correlato associato al servizio
  182.      *
  183.      * @param nome Servizio Correlato
  184.      *
  185.      */
  186.     public void setServizioCorrelato(String nome){
  187.         this.servizioCorrelato = nome;
  188.     }
  189.     /**
  190.      * Imposta il tipo di servizio correlato associato al servizio
  191.      *
  192.      * @param tipoServizioCorrelato Tipo di Servizio Correlato
  193.      *
  194.      */
  195.     public void setTipoServizioCorrelato(String tipoServizioCorrelato) {
  196.         this.tipoServizioCorrelato = tipoServizioCorrelato;
  197.     }
  198.    
  199.     public void setVersioneServizioCorrelato(Integer versioneServizioCorrelato) {
  200.         this.versioneServizioCorrelato = versioneServizioCorrelato;
  201.     }
  202.    
  203.     public void setCorrelato(boolean correlato) {
  204.         this.correlato = correlato;
  205.     }
  206.    
  207.     public void setScadenzaMinuti(long scadenzaMinuti) {
  208.         this.scadenzaMinuti = scadenzaMinuti;
  209.     }
  210.    
  211.    



  212.     /* ********  G E T T E R   ******** */

  213.     /**
  214.      * Ritorna l'identificatore del Servizio nel registro dei servizi.
  215.      *
  216.      * @return Identificatore del Servizio.
  217.      *
  218.      */
  219.     public IDServizio getIDServizio(){
  220.         return this.idServizio;
  221.     }
  222.     /**
  223.      * Ritorna il profilo di Collaborazione associato al servizio registrato nel Registro dei Servizi.
  224.      *
  225.      * @return Profili di Collaborazione.
  226.      *
  227.      */
  228.     public ProfiloDiCollaborazione getProfiloDiCollaborazione(){
  229.         return this.profiloDiCollaborazione;
  230.     }
  231.     /**
  232.      * Ritorna la presenza o meno della collaborazione nel servizio registrato nel Registro dei Servizi.
  233.      *
  234.      * @return true se la collaborazione e' presente, false altrimenti.
  235.      *
  236.      */
  237.     public boolean getCollaborazione(){
  238.         return this.idCollaborazione;
  239.     }
  240.     public boolean getIdRiferimentoRichiesta(){
  241.         return this.idRiferimentoRichiesta;
  242.     }
  243.     /**
  244.      * Ritorna l'indicazione sull'utilizzo o meno della consegna in ordine nel servizio registrato nel Registro dei Servizi.
  245.      *
  246.      * @return true se la sequenza e' presente, false altrimenti.
  247.      *
  248.      */
  249.     public boolean getOrdineConsegna(){
  250.         return this.ordineConsegna;
  251.     }
  252.     /**
  253.      * Ritorna la scadenza associata al servizio registrato nel Registro dei Servizi.
  254.      *
  255.      * @return null se non e' presente una scadenza, la data di scadenza, altrimenti.
  256.      *
  257.      */
  258.     public Date getScadenza(){
  259.         return this.scadenza;
  260.     }
  261.     /**
  262.      * Ritorna il tipo di inoltro del profilo di trasmissione associato al servizio registrato nel Registro dei Servizi.
  263.      *
  264.      * @return tipo di Inoltro.
  265.      *
  266.      */
  267.     public Inoltro getInoltro(){
  268.         return this.inoltro;
  269.     }
  270.     /**
  271.      * Ritorna la confermaRicezione o meno del profilo di trasmissione associato al servizio registrato nel Registro dei Servizi.
  272.      *
  273.      * @return true se si desidera una confermaRicezione, false altrimenti.
  274.      *
  275.      */
  276.     public boolean getConfermaRicezione(){
  277.         return this.confermaRicezione;
  278.     }
  279.     /**
  280.      * Ritorna il servizio correlato associato al servizio
  281.      *
  282.      * @return Servizio Correlato
  283.      *
  284.      */
  285.     public String getServizioCorrelato(){
  286.         return this.servizioCorrelato;
  287.     }
  288.     /**
  289.      * Ritorna il tipo di servizio correlato associato al servizio
  290.      *
  291.      * @return Tipo di Servizio Correlato
  292.      *
  293.      */
  294.     public String getTipoServizioCorrelato() {
  295.         return this.tipoServizioCorrelato;
  296.     }
  297.    
  298.     public Integer getVersioneServizioCorrelato() {
  299.         return this.versioneServizioCorrelato;
  300.     }

  301.     public boolean isCorrelato() {
  302.         return this.correlato;
  303.     }

  304.     public long getScadenzaMinuti() {
  305.         return this.scadenzaMinuti;
  306.     }

  307.     public IDAccordo getIdAccordo() {
  308.         return this.idAccordo;
  309.     }
  310.    
  311.     public void setIdAccordo(IDAccordo idAccordo) {
  312.         this.idAccordo = idAccordo;
  313.     }
  314.    
  315.     public ServiceBinding getServiceBinding() {
  316.         return this.serviceBinding;
  317.     }

  318.     public void setServiceBinding(ServiceBinding serviceBinding) {
  319.         this.serviceBinding = serviceBinding;
  320.     }

  321. }