TransazioniProcessTimes.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.util.List;

  22. /**
  23.  * TransazioniProcessTimes
  24.  *
  25.  * @author Andrea Poli (apoli@link.it)
  26.  * @author $Author$
  27.  * @version $Rev$, $Date$
  28.  *
  29.  */
  30. public class TransazioniProcessTimes {

  31.     String idTransazione;
  32.     long fillTransaction = -1;
  33.     List<String> fillTransactionDetails = null;
  34.     long controlloTraffico = -1;
  35.     long controlloTrafficoRemoveThread = -1;
  36.     long controlloTrafficoPreparePolicy = -1;
  37.     List<String> controlloTrafficoPolicyTimes = null;
  38.     long fileTrace = -1;
  39.     long processTransactionInfo = -1;
  40.     long getConnection = -1;
  41.     long insertTransaction = -1;
  42.     long insertDiagnostics = -1;
  43.     long insertTrace = -1;
  44.     long insertContents = -1;
  45.     long insertResources = -1;
  46.     long commit = -1;
  47.    
  48.     public void setControlloTrafficoRemoveThread(long controlloTrafficoRemoveThread) {
  49.         this.controlloTrafficoRemoveThread = controlloTrafficoRemoveThread;
  50.     }
  51.     public void setControlloTrafficoPreparePolicy(long controlloTrafficoPreparePolicy) {
  52.         this.controlloTrafficoPreparePolicy = controlloTrafficoPreparePolicy;
  53.     }
  54.     public void setControlloTrafficoPolicyTimes(List<String> controlloTrafficoPolicyTimes) {
  55.         this.controlloTrafficoPolicyTimes = controlloTrafficoPolicyTimes;
  56.     }
  57.     public List<String> getControlloTrafficoPolicyTimes() {
  58.         return this.controlloTrafficoPolicyTimes;
  59.     }
  60.    
  61.     @Override
  62.     public String toString() {
  63.         StringBuilder sb = new StringBuilder();
  64.        
  65.         fillTransactionDetails(sb);
  66.        
  67.         fillControlloTraffico(sb);
  68.        
  69.         if(this.fileTrace>=0) {
  70.             if(sb.length()>0) {
  71.                 sb.append(" ");
  72.             }
  73.             sb.append("fileTrace:").append(this.fileTrace);
  74.         }
  75.         if(this.processTransactionInfo>=0) {
  76.             if(sb.length()>0) {
  77.                 sb.append(" ");
  78.             }
  79.             sb.append("processTransactionInfo:").append(this.processTransactionInfo);
  80.         }
  81.         fillDB(sb);
  82.         return sb.toString();
  83.     }
  84.     private void fillTransactionDetails(StringBuilder sb) {
  85.         if(this.fillTransaction>=0) {
  86.             if(sb.length()>0) {
  87.                 sb.append(" ");
  88.             }
  89.             sb.append("buildTransaction:").append(this.fillTransaction);
  90.         }
  91.         if(this.fillTransactionDetails!=null && !this.fillTransactionDetails.isEmpty()) {
  92.             if(sb.length()>0) {
  93.                 sb.append(" ");
  94.             }
  95.             sb.append("buildTransactionDetails:{");
  96.             boolean first = true;
  97.             for (String det : this.fillTransactionDetails) {
  98.                 if(!first) {
  99.                     sb.append(" ");
  100.                 }
  101.                 sb.append(det);
  102.                 first=false;
  103.             }
  104.             sb.append("}");
  105.         }
  106.     }
  107.     private void fillControlloTraffico(StringBuilder sb) {
  108.         if(this.controlloTraffico>=0) {
  109.             if(sb.length()>0) {
  110.                 sb.append(" ");
  111.             }
  112.             sb.append("rateLimiting:").append(this.controlloTraffico);
  113.         }
  114.         if(this.controlloTrafficoRemoveThread>=0 || this.controlloTrafficoPreparePolicy>=0 ||
  115.                 (this.controlloTrafficoPolicyTimes!=null && !this.controlloTrafficoPolicyTimes.isEmpty())) {
  116.             if(sb.length()>0) {
  117.                 sb.append(" ");
  118.             }
  119.             sb.append("rateLimitingDetails:{");
  120.             sb.append("del:").append(this.controlloTrafficoRemoveThread);
  121.             sb.append(" init:").append(this.controlloTrafficoPreparePolicy);
  122.             if(this.controlloTrafficoPolicyTimes!=null && !this.controlloTrafficoPolicyTimes.isEmpty()) {
  123.                 sb.append(" policy:").append(this.controlloTrafficoPolicyTimes.toString());
  124.             }
  125.             else {
  126.                 sb.append(" policy:-");
  127.             }
  128.             sb.append("}");
  129.         }
  130.     }
  131.     private void fillDB(StringBuilder sb) {
  132.         if(this.getConnection>=0) {
  133.             if(sb.length()>0) {
  134.                 sb.append(" ");
  135.             }
  136.             sb.append("getConnection:").append(this.getConnection);
  137.         }
  138.         fillDBInsert(sb);
  139.         if(this.commit>=0) {
  140.             if(sb.length()>0) {
  141.                 sb.append(" ");
  142.             }
  143.             sb.append("commit:").append(this.commit);
  144.         }
  145.     }
  146.     private void fillDBInsert(StringBuilder sb) {
  147.         if(this.insertTransaction>=0) {
  148.             if(sb.length()>0) {
  149.                 sb.append(" ");
  150.             }
  151.             sb.append("insertTransaction:").append(this.insertTransaction);
  152.         }
  153.         if(this.insertDiagnostics>=0) {
  154.             if(sb.length()>0) {
  155.                 sb.append(" ");
  156.             }
  157.             sb.append("insertDiagnostics:").append(this.insertDiagnostics);
  158.         }
  159.         if(this.insertTrace>=0) {
  160.             if(sb.length()>0) {
  161.                 sb.append(" ");
  162.             }
  163.             sb.append("insertTrace:").append(this.insertTrace);
  164.         }
  165.         if(this.insertContents>=0) {
  166.             if(sb.length()>0) {
  167.                 sb.append(" ");
  168.             }
  169.             sb.append("insertContents:").append(this.insertContents);
  170.         }
  171.         if(this.insertResources>=0) {
  172.             if(sb.length()>0) {
  173.                 sb.append(" ");
  174.             }
  175.             sb.append("insertResources:").append(this.insertResources);
  176.         }
  177.     }
  178.    
  179. }