ArchiveServizioApplicativo.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.ServizioApplicativo;
  22. import org.openspcoop2.core.id.IDServizioApplicativo;
  23. import org.openspcoop2.core.id.IDSoggetto;
  24. import org.openspcoop2.protocol.sdk.ProtocolException;

  25. /**
  26.  * ArchiveServizioApplicativo
  27.  *
  28.  * @author Poli Andrea (apoli@link.it)
  29.  * @author $Author$
  30.  * @version $Rev$, $Date$
  31.  */
  32. public class ArchiveServizioApplicativo implements IArchiveObject {

  33.     public static String buildKey(String tipoSoggetto,String nomeSoggetto,String nomeSA) throws ProtocolException{
  34.        
  35.         if(tipoSoggetto==null){
  36.             throw new ProtocolException("tipoSoggetto non fornito");
  37.         }
  38.         if(nomeSoggetto==null){
  39.             throw new ProtocolException("nomeSoggetto non fornito");
  40.         }
  41.         if(nomeSA==null){
  42.             throw new ProtocolException("nomeSA non fornito");
  43.         }
  44.        
  45.         StringBuilder bf = new StringBuilder();
  46.         bf.append("ServizioApplicativo_");
  47.         bf.append(tipoSoggetto);
  48.         bf.append("/");
  49.         bf.append(nomeSoggetto);
  50.         bf.append("_");
  51.         bf.append(nomeSA);
  52.         return bf.toString();
  53.     }
  54.    
  55.    
  56.     @Override
  57.     public String key() throws ProtocolException {
  58.         return ArchiveServizioApplicativo.buildKey(this.idSoggettoProprietario.getTipo(), this.idSoggettoProprietario.getNome(),
  59.                     this.idServizioApplicativo.getNome());
  60.     }
  61.    
  62.    

  63.     private IDSoggetto idSoggettoProprietario;
  64.     private IDServizioApplicativo idServizioApplicativo;
  65.     private ServizioApplicativo servizioApplicativo;
  66.    
  67.     private ArchiveIdCorrelazione idCorrelazione; // permette di correlare più oggetti tra di loro
  68.    

  69.    
  70.     public ArchiveServizioApplicativo(IDSoggetto idSoggettoProprietario, ServizioApplicativo servizioApplicativo, ArchiveIdCorrelazione idCorrelazione) throws ProtocolException{
  71.         this(injectProprietario(idSoggettoProprietario, servizioApplicativo), idCorrelazione, false);
  72.     }
  73.     public ArchiveServizioApplicativo(IDSoggetto idSoggettoProprietario, ServizioApplicativo servizioApplicativo, ArchiveIdCorrelazione idCorrelazione, boolean informationMissingManagementEnabled) throws ProtocolException{
  74.         this(injectProprietario(idSoggettoProprietario, servizioApplicativo), idCorrelazione, informationMissingManagementEnabled);
  75.     }
  76.     public ArchiveServizioApplicativo(ServizioApplicativo servizioApplicativo, ArchiveIdCorrelazione idCorrelazione) throws ProtocolException{
  77.         this(servizioApplicativo, idCorrelazione,false);
  78.     }  
  79.     public ArchiveServizioApplicativo(ServizioApplicativo servizioApplicativo, ArchiveIdCorrelazione idCorrelazione, boolean informationMissingManagementEnabled) throws ProtocolException{
  80.         this.update(servizioApplicativo, informationMissingManagementEnabled);
  81.         this.idCorrelazione = idCorrelazione;
  82.     }
  83.     private static ServizioApplicativo injectProprietario(IDSoggetto idSoggettoProprietario, ServizioApplicativo servizioApplicativo) throws ProtocolException{
  84.         if(servizioApplicativo==null){
  85.             throw new ProtocolException("ServizioApplicativo non fornito");
  86.         }
  87.         if(idSoggettoProprietario==null){
  88.             throw new ProtocolException("idSoggettoProprietario non fornito");
  89.         }
  90.         if(idSoggettoProprietario.getTipo()==null){
  91.             throw new ProtocolException("idSoggettoProprietario.tipo non definito");
  92.         }
  93.         if(idSoggettoProprietario.getNome()==null){
  94.             throw new ProtocolException("idSoggettoProprietario.nome non definito");
  95.         }
  96.         servizioApplicativo.setTipoSoggettoProprietario(idSoggettoProprietario.getTipo());
  97.         servizioApplicativo.setNomeSoggettoProprietario(idSoggettoProprietario.getNome());
  98.         return servizioApplicativo;
  99.     }
  100.    
  101.    
  102.    
  103.    
  104.     public void update() throws ProtocolException{
  105.         this.update(this.servizioApplicativo, false);
  106.     }
  107.     public void update(ServizioApplicativo servizioApplicativo) throws ProtocolException{
  108.         this.update(servizioApplicativo, false);
  109.     }
  110.     public void update(ServizioApplicativo servizioApplicativo, boolean informationMissingManagementEnabled) throws ProtocolException{
  111.        
  112.         if(servizioApplicativo==null){
  113.             throw new ProtocolException("ServizioApplicativo non fornito");
  114.         }
  115.         if(servizioApplicativo.getNome()==null){
  116.             throw new ProtocolException("ServizioApplicativo.nome non definito");
  117.         }
  118.         this.servizioApplicativo = servizioApplicativo;
  119.        
  120.         if(informationMissingManagementEnabled==false){
  121.            
  122.             if(this.servizioApplicativo.getTipoSoggettoProprietario()==null){
  123.                 throw new ProtocolException("ServizioApplicativo.tipoSoggettoProprietario non definito");
  124.             }
  125.             if(this.servizioApplicativo.getNomeSoggettoProprietario()==null){
  126.                 throw new ProtocolException("ServizioApplicativo.nomeSoggettoProprietario non definito");
  127.             }
  128.             this.idSoggettoProprietario =
  129.                     new IDSoggetto(this.servizioApplicativo.getTipoSoggettoProprietario(),
  130.                             this.servizioApplicativo.getNomeSoggettoProprietario());
  131.            
  132.             this.idServizioApplicativo = new IDServizioApplicativo();
  133.             this.idServizioApplicativo.setIdSoggettoProprietario(this.idSoggettoProprietario);
  134.             this.idServizioApplicativo.setNome(this.servizioApplicativo.getNome());
  135.            
  136.         }
  137.     }
  138.    
  139.    
  140.    
  141.    
  142.     public IDSoggetto getIdSoggettoProprietario() {
  143.         return this.idSoggettoProprietario;
  144.     }
  145.     public IDServizioApplicativo getIdServizioApplicativo() {
  146.         return this.idServizioApplicativo;
  147.     }
  148.     public ServizioApplicativo getServizioApplicativo() {
  149.         return this.servizioApplicativo;
  150.     }

  151.     public ArchiveIdCorrelazione getIdCorrelazione() {
  152.         return this.idCorrelazione;
  153.     }
  154. }