ConfigurazioneTracciamentoUtils.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.logger.transazioni;

  21. import java.io.File;
  22. import java.util.ArrayList;
  23. import java.util.List;

  24. import org.openspcoop2.core.commons.CoreException;
  25. import org.openspcoop2.pdd.core.connettori.ConnettoreUtils;
  26. import org.openspcoop2.protocol.sdk.Context;
  27. import org.openspcoop2.protocol.sdk.IProtocolFactory;
  28. import org.openspcoop2.protocol.sdk.ProtocolException;
  29. import org.openspcoop2.protocol.sdk.builder.EsitoTransazione;
  30. import org.openspcoop2.protocol.sdk.constants.EsitoTransazioneName;
  31. import org.openspcoop2.protocol.utils.EsitiProperties;
  32. import org.slf4j.Logger;

  33. /**
  34.  * ConfigurazioneTracciamentoUtils
  35.  *
  36.  * @author Andrea Poli (apoli@link.it)
  37.  * @author $Author$
  38.  * @version $Rev$, $Date$
  39.  *
  40.  */
  41. public class ConfigurazioneTracciamentoUtils {

  42.     private ConfigurazioneTracciamentoUtils() {}
  43.    
  44.    
  45.    
  46.     public static boolean isConsegnaMultipla(Context context) {
  47.         int connettoriMultipli = getNumeroConnettoriMultipli(context);
  48.         return isConsegnaMultipla(connettoriMultipli);
  49.     }
  50.     public static boolean isConsegnaMultipla(int connettoriMultipli) {
  51.         boolean consegnaMultipla = false;
  52.         if(connettoriMultipli>0) {
  53.             consegnaMultipla = true;
  54.         }
  55.         return consegnaMultipla;
  56.     }
  57.     public static int getNumeroConnettoriMultipli(Context context) {
  58.         int connettoriMultipli = -1;
  59.         if(context.containsKey(org.openspcoop2.core.constants.Costanti.CONSEGNA_MULTIPLA_CONNETTORI)) {
  60.             Object oConnettori = context.getObject(org.openspcoop2.core.constants.Costanti.CONSEGNA_MULTIPLA_CONNETTORI );
  61.             if (oConnettori instanceof Integer){
  62.                 connettoriMultipli = (Integer) oConnettori;
  63.             }
  64.         }
  65.         return connettoriMultipli;
  66.     }
  67.     public static String getConnettoriMultipli(Context context) {
  68.         return ConnettoreUtils.getNomeConnettori(context);
  69.     }
  70.    
  71.    
  72.    
  73.     public static boolean isEsitoDaRegistrare(Logger log, IProtocolFactory<?> protocolFactory, Context context,
  74.             List<String> esitiDaRegistrare, EsitoTransazione esitoTransazione) throws ProtocolException {
  75.         // EsitiProperties
  76.         EsitiProperties esitiProperties = EsitiProperties.getInstance(log, protocolFactory);
  77.                
  78.         int code = esitoTransazione.getCode();
  79.        
  80.         // ** Consegna Multipla **
  81.         // NOTA: l'esito deve essere compreso solo dopo aver capito se le notifiche devono essere consegna o meno poichè le notifiche stesse si basano sullo stato di come è terminata la transazione sincrona
  82.         boolean consegnaMultipla = isConsegnaMultipla(context);
  83.         if(consegnaMultipla) {
  84.             code = esitiProperties.convertoToCode(EsitoTransazioneName.CONSEGNA_MULTIPLA);
  85.         }
  86.        
  87.         String codeAsString = code+"";
  88.         return esitiDaRegistrare.contains(codeAsString);
  89.     }
  90.     public static String getEsitoTransazionDetail(Logger log, IProtocolFactory<?> protocolFactory,
  91.             EsitoTransazione esitoTransazione) throws ProtocolException {
  92.         EsitiProperties esitiProperties = EsitiProperties.getInstance(log, protocolFactory);
  93.         int code = esitoTransazione.getCode();
  94.         String codeAsString = code+"";
  95.         return "esito [name:"+esitiProperties.getEsitoName(esitoTransazione.getCode())+" code:"+codeAsString+"]";
  96.     }
  97.     public static boolean isEsitoOk(Logger log, IProtocolFactory<?> protocolFactory,
  98.             EsitoTransazione esitoTransazione) throws ProtocolException {
  99.         List<String> esitiOk = getEsitiOk(log, protocolFactory);
  100.         int code = esitoTransazione.getCode();
  101.         String codeAsString = code+"";
  102.         return esitiOk.contains(codeAsString);
  103.     }
  104.     private static List<String> getEsitiOk(Logger log, IProtocolFactory<?> protocolFactory) throws ProtocolException{
  105.         EsitiProperties esitiProperties = EsitiProperties.getInstance(log, protocolFactory);
  106.         List<Integer> tmpEsitiOk = esitiProperties.getEsitiCodeOk();
  107.         List<String> esitiOk = new ArrayList<>();
  108.         if(tmpEsitiOk!=null && !tmpEsitiOk.isEmpty()){
  109.             for (Integer esito : tmpEsitiOk) {
  110.                 esitiOk.add(esito+"");
  111.             }
  112.         }
  113.         return esitiOk;
  114.     }
  115.    
  116.     public static String getPrefixFile(File f, boolean expectedDir) {
  117.         return (expectedDir ? "Dir ":"")+"["+f.getAbsolutePath()+"] ";
  118.     }
  119.     public static CoreException newCoreExceptionNotFile(File f, boolean expectedDir){
  120.         return new CoreException(getPrefixFile(f, expectedDir)+"isn't file");
  121.     }
  122.     public static CoreException newCoreExceptionCannotRead(File f, boolean expectedDir){
  123.         return new CoreException(getPrefixFile(f, expectedDir)+"cannot read");
  124.     }
  125.     public static CoreException newCoreExceptionNotExists(File f, boolean expectedDir){
  126.         return new CoreException(getPrefixFile(f, expectedDir)+"not exists");
  127.     }
  128. }