ArchivePortaApplicativa.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 org.openspcoop2.core.config.PortaApplicativa;
  22. import org.openspcoop2.core.id.IDPortaApplicativa;
  23. import org.openspcoop2.core.id.IDServizio;
  24. import org.openspcoop2.core.id.IDSoggetto;
  25. import org.openspcoop2.core.id.IdentificativiErogazione;
  26. import org.openspcoop2.core.registry.driver.IDServizioFactory;
  27. import org.openspcoop2.protocol.sdk.ProtocolException;

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

  36.     public static String buildKey(String tipoSoggetto,String nomeSoggetto,String nomePorta) throws ProtocolException{
  37.        
  38.         if(tipoSoggetto==null){
  39.             throw new ProtocolException("tipoSoggetto non fornito");
  40.         }
  41.         if(nomeSoggetto==null){
  42.             throw new ProtocolException("nomeSoggetto non fornito");
  43.         }
  44.         if(nomePorta==null){
  45.             throw new ProtocolException("nomePorta non fornito");
  46.         }
  47.        
  48.         StringBuilder bf = new StringBuilder();
  49.         bf.append("PortaApplicativa_");
  50.         bf.append(tipoSoggetto);
  51.         bf.append("/");
  52.         bf.append(nomeSoggetto);
  53.         bf.append("_");
  54.         bf.append(nomePorta);
  55.         return bf.toString();
  56.     }
  57.    
  58.     @Override
  59.     public String key() throws ProtocolException {
  60.         return ArchivePortaApplicativa.buildKey(this.idSoggettoProprietario.getTipo(), this.idSoggettoProprietario.getNome(),
  61.                     this.idPortaApplicativa.getNome());
  62.     }
  63.    
  64.    
  65.    
  66.     private IDSoggetto idSoggettoProprietario;
  67.     private IDServizio idServizio;
  68.     private IDPortaApplicativa idPortaApplicativa;
  69.     private PortaApplicativa portaApplicativa;
  70.    
  71.     private ArchiveIdCorrelazione idCorrelazione; // permette di correlare più oggetti tra di loro
  72.    
  73.    
  74.    
  75.     public ArchivePortaApplicativa(IDSoggetto idSoggettoProprietario, PortaApplicativa portaApplicativa, ArchiveIdCorrelazione idCorrelazione) throws ProtocolException{
  76.         this(injectProprietario(idSoggettoProprietario, portaApplicativa), idCorrelazione, false);
  77.     }
  78.     public ArchivePortaApplicativa(IDSoggetto idSoggettoProprietario, PortaApplicativa portaApplicativa, ArchiveIdCorrelazione idCorrelazione, boolean informationMissingManagementEnabled) throws ProtocolException{
  79.         this(injectProprietario(idSoggettoProprietario, portaApplicativa),idCorrelazione, informationMissingManagementEnabled);
  80.     }
  81.     public ArchivePortaApplicativa(PortaApplicativa portaApplicativa, ArchiveIdCorrelazione idCorrelazione) throws ProtocolException{
  82.         this(portaApplicativa,idCorrelazione,false);
  83.     }  
  84.     public ArchivePortaApplicativa(PortaApplicativa portaApplicativa, ArchiveIdCorrelazione idCorrelazione, boolean informationMissingManagementEnabled) throws ProtocolException{
  85.         this.update(portaApplicativa, informationMissingManagementEnabled);
  86.         this.idCorrelazione = idCorrelazione;
  87.     }
  88.     private static PortaApplicativa injectProprietario(IDSoggetto idSoggettoProprietario, PortaApplicativa portaApplicativa) throws ProtocolException{
  89.         if(portaApplicativa==null){
  90.             throw new ProtocolException("PortaApplicativa non fornita");
  91.         }
  92.         if(idSoggettoProprietario==null){
  93.             throw new ProtocolException("idSoggettoProprietario non fornito");
  94.         }
  95.         if(idSoggettoProprietario.getTipo()==null){
  96.             throw new ProtocolException("idSoggettoProprietario.tipo non definito");
  97.         }
  98.         if(idSoggettoProprietario.getNome()==null){
  99.             throw new ProtocolException("idSoggettoProprietario.nome non definito");
  100.         }
  101.         portaApplicativa.setTipoSoggettoProprietario(idSoggettoProprietario.getTipo());
  102.         portaApplicativa.setNomeSoggettoProprietario(idSoggettoProprietario.getNome());
  103.         return portaApplicativa;
  104.     }
  105.    
  106.    
  107.    
  108.     public void update() throws ProtocolException{
  109.         this.update(this.portaApplicativa, false);
  110.     }
  111.     public void update(PortaApplicativa portaApplicativa) throws ProtocolException{
  112.         this.update(portaApplicativa, false);
  113.     }
  114.     public void update(PortaApplicativa portaApplicativa, boolean informationMissingManagementEnabled) throws ProtocolException{
  115.        
  116.         if(portaApplicativa==null){
  117.             throw new ProtocolException("PortaApplicativa non fornita");
  118.         }
  119.         if(portaApplicativa.getNome()==null){
  120.             throw new ProtocolException("PortaApplicativa.nome non definito");
  121.         }
  122.         this.portaApplicativa = portaApplicativa;
  123.        
  124.         if(informationMissingManagementEnabled==false){
  125.        
  126.             if(this.portaApplicativa.getTipoSoggettoProprietario()==null){
  127.                 throw new ProtocolException("PortaApplicativa.tipoSoggettoProprietario non definito");
  128.             }
  129.             if(this.portaApplicativa.getNomeSoggettoProprietario()==null){
  130.                 throw new ProtocolException("PortaApplicativa.nomeSoggettoProprietario non definito");
  131.             }
  132.             this.idSoggettoProprietario =
  133.                     new IDSoggetto(this.portaApplicativa.getTipoSoggettoProprietario(),
  134.                             this.portaApplicativa.getNomeSoggettoProprietario());
  135.            
  136.             this.idPortaApplicativa = new IDPortaApplicativa();
  137.             this.idPortaApplicativa.setNome(this.portaApplicativa.getNome());
  138.            
  139.             if(portaApplicativa.getServizio()==null){
  140.                 throw new ProtocolException("PortaApplicativa.servizio non definito");
  141.             }
  142.             if(portaApplicativa.getServizio().getTipo()==null){
  143.                 throw new ProtocolException("PortaApplicativa.servizio.tipo non definito");
  144.             }
  145.             if(portaApplicativa.getServizio().getNome()==null){
  146.                 throw new ProtocolException("PortaApplicativa.servizio.nome non definito");
  147.             }
  148.             try{
  149.                 this.idServizio = IDServizioFactory.getInstance().getIDServizioFromValues(portaApplicativa.getServizio().getTipo(),
  150.                         portaApplicativa.getServizio().getNome(),
  151.                         this.idSoggettoProprietario,
  152.                         portaApplicativa.getServizio().getVersione());
  153.             }catch(Exception e){
  154.                 throw new ProtocolException(e.getMessage(),e);
  155.             }
  156.             if(portaApplicativa.getAzione()!=null &&
  157.                     portaApplicativa.getAzione().getNome()!=null){
  158.                 this.idServizio.setAzione(portaApplicativa.getAzione().getNome());
  159.             }
  160.        
  161.             IdentificativiErogazione identificativiErogazione = new IdentificativiErogazione();
  162.             identificativiErogazione.setIdServizio(this.idServizio);
  163.             this.idPortaApplicativa.setIdentificativiErogazione(identificativiErogazione);
  164.         }
  165.     }
  166.    
  167.    
  168.    
  169.    
  170.     public IDSoggetto getIdSoggettoProprietario() {
  171.         return this.idSoggettoProprietario;
  172.     }
  173.     public IDServizio getIdServizio() {
  174.         return this.idServizio;
  175.     }
  176.     public IDPortaApplicativa getIdPortaApplicativa() {
  177.         return this.idPortaApplicativa;
  178.     }
  179.     public PortaApplicativa getPortaApplicativa() {
  180.         return this.portaApplicativa;
  181.     }
  182.    
  183.     public ArchiveIdCorrelazione getIdCorrelazione() {
  184.         return this.idCorrelazione;
  185.     }
  186. }