ArchiveAccordoServizioParteSpecifica.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.archive;

  21. import java.util.List;

  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.core.mapping.MappingErogazionePortaApplicativa;
  26. import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
  27. import org.openspcoop2.core.registry.driver.IDAccordoFactory;
  28. import org.openspcoop2.core.registry.driver.IDServizioFactory;
  29. import org.openspcoop2.protocol.sdk.ProtocolException;

  30. /**
  31.  * ArchiveAccordoServizioParteSpecifica
  32.  *
  33.  * @author Poli Andrea (apoli@link.it)
  34.  * @author $Author$
  35.  * @version $Rev$, $Date$
  36.  */
  37. public class ArchiveAccordoServizioParteSpecifica implements IArchiveObject {

  38.     public static String buildKey(String tipoSoggetto,String nomeSoggetto,String tipoServizio,String nomeServizio,Integer versione) throws ProtocolException{
  39.        
  40.         if(tipoSoggetto==null){
  41.             throw new ProtocolException("tipoSoggetto non fornito");
  42.         }
  43.         if(nomeSoggetto==null){
  44.             throw new ProtocolException("nomeSoggetto non fornito");
  45.         }
  46.         if(tipoServizio==null){
  47.             throw new ProtocolException("tipoServizio non fornito");
  48.         }
  49.         if(nomeServizio==null){
  50.             throw new ProtocolException("nomeServizio non fornito");
  51.         }
  52.         if(versione==null){
  53.             throw new ProtocolException("versioneServizio non fornita");
  54.         }
  55.        
  56.         StringBuilder bf = new StringBuilder();
  57.         bf.append("AccordoServizioParteSpecifica_");
  58.         bf.append(tipoSoggetto);
  59.         bf.append("/");
  60.         bf.append(nomeSoggetto);
  61.         bf.append("_");
  62.         bf.append(tipoServizio);
  63.         bf.append("/");
  64.         bf.append(nomeServizio);
  65.         bf.append("_");
  66.         bf.append(versione);
  67.         return bf.toString();
  68.     }
  69.    
  70.     @Override
  71.     public String key() throws ProtocolException {
  72.         String tipoSoggetto = "-";
  73.         String nomeSoggetto = "-";
  74.         String tipoServizio = this.accordoServizioParteSpecifica.getTipo();
  75.         String nomeServizio = this.accordoServizioParteSpecifica.getNome();
  76.         Integer versione = null;
  77.         if(this.accordoServizioParteSpecifica.getTipoSoggettoErogatore()!=null){
  78.             tipoSoggetto = this.accordoServizioParteSpecifica.getTipoSoggettoErogatore();
  79.         }
  80.         if(this.accordoServizioParteSpecifica.getNomeSoggettoErogatore()!=null){
  81.             nomeSoggetto = this.accordoServizioParteSpecifica.getNomeSoggettoErogatore();
  82.         }
  83.         if(this.accordoServizioParteSpecifica.getVersione()!=null){
  84.             versione = this.accordoServizioParteSpecifica.getVersione();
  85.         }
  86.         return ArchiveAccordoServizioParteSpecifica.buildKey(tipoSoggetto, nomeSoggetto,
  87.                 tipoServizio,nomeServizio,versione);
  88.     }
  89.    
  90.    
  91.    
  92.     private IDSoggetto idSoggettoErogatore;
  93.     private IDServizio idAccordoServizioParteSpecifica;
  94.     private IDAccordo idAccordoServizioParteComune;
  95.     private AccordoServizioParteSpecifica accordoServizioParteSpecifica;
  96.    
  97.     private List<MappingErogazionePortaApplicativa> mappingPorteApplicativeAssociate;
  98.     public List<MappingErogazionePortaApplicativa> getMappingPorteApplicativeAssociate() {
  99.         return this.mappingPorteApplicativeAssociate;
  100.     }
  101.     public void setMappingPorteApplicativeAssociate(
  102.             List<MappingErogazionePortaApplicativa> mappingPorteApplicativeAssociate) {
  103.         this.mappingPorteApplicativeAssociate = mappingPorteApplicativeAssociate;
  104.     }



  105.     private ArchiveIdCorrelazione idCorrelazione; // permette di correlare più oggetti tra di loro
  106.    
  107.    
  108.    
  109.     public ArchiveAccordoServizioParteSpecifica(IDSoggetto idSoggettoProprietario, AccordoServizioParteSpecifica accordoServizioParteSpecifica, ArchiveIdCorrelazione idCorrelazione) throws ProtocolException{
  110.         this(injectProprietario(idSoggettoProprietario, accordoServizioParteSpecifica),idCorrelazione, false);
  111.     }
  112.     public ArchiveAccordoServizioParteSpecifica(IDSoggetto idSoggettoProprietario, AccordoServizioParteSpecifica accordoServizioParteSpecifica, ArchiveIdCorrelazione idCorrelazione, boolean informationMissingManagementEnabled) throws ProtocolException{
  113.         this(injectProprietario(idSoggettoProprietario, accordoServizioParteSpecifica), idCorrelazione, informationMissingManagementEnabled);
  114.     }
  115.     public ArchiveAccordoServizioParteSpecifica(AccordoServizioParteSpecifica accordoServizioParteSpecifica, ArchiveIdCorrelazione idCorrelazione) throws ProtocolException{
  116.         this(accordoServizioParteSpecifica,idCorrelazione,false);
  117.     }  
  118.     public ArchiveAccordoServizioParteSpecifica(AccordoServizioParteSpecifica accordoServizioParteSpecifica, ArchiveIdCorrelazione idCorrelazione, boolean informationMissingManagementEnabled) throws ProtocolException{
  119.         this.update(accordoServizioParteSpecifica, informationMissingManagementEnabled);
  120.         this.idCorrelazione = idCorrelazione;
  121.     }
  122.     private static AccordoServizioParteSpecifica injectProprietario(IDSoggetto idSoggettoProprietario, AccordoServizioParteSpecifica accordoServizioParteSpecifica) throws ProtocolException{
  123.         if(accordoServizioParteSpecifica==null){
  124.             throw new ProtocolException("AccordoServizioParteSpecifica non fornito");
  125.         }
  126.         if(idSoggettoProprietario==null){
  127.             throw new ProtocolException("idSoggettoProprietario non fornito");
  128.         }
  129.         if(idSoggettoProprietario.getTipo()==null){
  130.             throw new ProtocolException("idSoggettoProprietario.tipo non definito");
  131.         }
  132.         if(idSoggettoProprietario.getNome()==null){
  133.             throw new ProtocolException("idSoggettoProprietario.nome non definito");
  134.         }
  135.         accordoServizioParteSpecifica.setTipoSoggettoErogatore(idSoggettoProprietario.getTipo());
  136.         accordoServizioParteSpecifica.setNomeSoggettoErogatore(idSoggettoProprietario.getNome());
  137.         return accordoServizioParteSpecifica;
  138.     }
  139.    
  140.    
  141.    
  142.     public void update() throws ProtocolException{
  143.         this.update(this.accordoServizioParteSpecifica, false);
  144.     }
  145.     public void update(AccordoServizioParteSpecifica accordoServizioParteSpecifica) throws ProtocolException{
  146.         this.update(accordoServizioParteSpecifica, false);
  147.     }
  148.     public void update(AccordoServizioParteSpecifica accordoServizioParteSpecifica, boolean informationMissingManagementEnabled) throws ProtocolException{
  149.        
  150.         if(accordoServizioParteSpecifica==null){
  151.             throw new ProtocolException("AccordoServizioParteSpecifica non fornito");
  152.         }
  153.         if(accordoServizioParteSpecifica.getTipo()==null){
  154.             throw new ProtocolException("AccordoServizioParteSpecifica.tipo non definito");
  155.         }
  156.         if(accordoServizioParteSpecifica.getNome()==null){
  157.             throw new ProtocolException("AccordoServizioParteSpecifica.nome non definito");
  158.         }
  159.         this.accordoServizioParteSpecifica = accordoServizioParteSpecifica;
  160.        
  161.         if(informationMissingManagementEnabled==false){
  162.             if(accordoServizioParteSpecifica.getVersione()==null){
  163.                 throw new ProtocolException("AccordoServizioParteSpecifica.versione non definito");
  164.             }      
  165.             if(accordoServizioParteSpecifica.getTipoSoggettoErogatore()==null){
  166.                 throw new ProtocolException("AccordoServizioParteSpecifica.servizio.tipoSoggettoErogatore non definito");
  167.             }
  168.             if(accordoServizioParteSpecifica.getNomeSoggettoErogatore()==null){
  169.                 throw new ProtocolException("AccordoServizioParteSpecifica.servizio.nomeSoggettoErogatore non definito");
  170.             }
  171.        
  172.             this.idSoggettoErogatore =
  173.                     new IDSoggetto(accordoServizioParteSpecifica.getTipoSoggettoErogatore(),
  174.                             accordoServizioParteSpecifica.getNomeSoggettoErogatore());
  175.            
  176.             try{
  177.                 this.idAccordoServizioParteSpecifica = IDServizioFactory.getInstance().getIDServizioFromValues(accordoServizioParteSpecifica.getTipo(),
  178.                         accordoServizioParteSpecifica.getNome(),
  179.                         this.idSoggettoErogatore,
  180.                         accordoServizioParteSpecifica.getVersione());
  181.             }catch(Exception e){
  182.                 throw new ProtocolException(e.getMessage(),e);
  183.             }
  184.                        
  185.             if(accordoServizioParteSpecifica.getAccordoServizioParteComune()==null){
  186.                 throw new ProtocolException("AccordoServizioParteSpecifica.accordoServizioParteComune non definito");
  187.             }
  188.             try{
  189.                 this.idAccordoServizioParteComune = IDAccordoFactory.getInstance().getIDAccordoFromUri(accordoServizioParteSpecifica.getAccordoServizioParteComune());
  190.             }catch(Exception e){
  191.                 throw new ProtocolException(e.getMessage(),e);
  192.             }
  193.         }
  194.     }
  195.    
  196.    
  197.    
  198.     public IDSoggetto getIdSoggettoErogatore() {
  199.         return this.idSoggettoErogatore;
  200.     }
  201.     public IDServizio getIdAccordoServizioParteSpecifica() {
  202.         return this.idAccordoServizioParteSpecifica;
  203.     }
  204.     public IDAccordo getIdAccordoServizioParteComune() {
  205.         return this.idAccordoServizioParteComune;
  206.     }
  207.     public AccordoServizioParteSpecifica getAccordoServizioParteSpecifica() {
  208.         return this.accordoServizioParteSpecifica;
  209.     }

  210.     public ArchiveIdCorrelazione getIdCorrelazione() {
  211.         return this.idCorrelazione;
  212.     }
  213.    
  214. }