FileTraceGovWayState.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.filetrace;

  21. import java.io.File;
  22. import java.util.Date;
  23. import java.util.Scanner;

  24. import org.openspcoop2.utils.date.DateUtils;

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

  33.     private boolean enabled = false;
  34.     private String path;
  35.     private String lastModified;
  36.    
  37.     private boolean enabledInErogazione = false;
  38.     private boolean enabledInErogazione_headers = false;
  39.     private boolean enabledInErogazione_payload = false;
  40.    
  41.     private boolean enabledOutErogazione = false;
  42.     private boolean enabledOutErogazione_headers = false;
  43.     private boolean enabledOutErogazione_payload = false;
  44.    
  45.     private boolean enabledInFruizione = false;
  46.     private boolean enabledInFruizione_headers = false;
  47.     private boolean enabledInFruizione_payload = false;
  48.    
  49.     private boolean enabledOutFruizione = false;
  50.     private boolean enabledOutFruizione_headers = false;
  51.     private boolean enabledOutFruizione_payload = false;
  52.    
  53.     public boolean isEnabled() {
  54.         return this.enabled;
  55.     }
  56.     public void setEnabled(boolean enabled) {
  57.         this.enabled = enabled;
  58.     }
  59.     public String getPath() {
  60.         return this.path;
  61.     }
  62.     public String getLastModified() {
  63.         return this.lastModified;
  64.     }
  65.     public void setPath(String path) {
  66.         this.path = path;
  67.         try {
  68.             Date d = new Date(new File(this.path).lastModified());
  69.             this.lastModified = DateUtils.getSimpleDateFormatMs().format(d);
  70.         }catch(Exception e) {
  71.             this.lastModified = "N.D.";
  72.         }
  73.     }
  74.     public boolean isEnabledInErogazione() {
  75.         return this.enabledInErogazione;
  76.     }
  77.     public void setEnabledInErogazione(boolean enabledInErogazione) {
  78.         this.enabledInErogazione = enabledInErogazione;
  79.     }
  80.     public boolean isEnabledOutErogazione() {
  81.         return this.enabledOutErogazione;
  82.     }
  83.     public void setEnabledOutErogazione(boolean enabledOutErogazione) {
  84.         this.enabledOutErogazione = enabledOutErogazione;
  85.     }
  86.     public boolean isEnabledInFruizione() {
  87.         return this.enabledInFruizione;
  88.     }
  89.     public void setEnabledInFruizione(boolean enabledInFruizione) {
  90.         this.enabledInFruizione = enabledInFruizione;
  91.     }
  92.     public boolean isEnabledOutFruizione() {
  93.         return this.enabledOutFruizione;
  94.     }
  95.     public void setEnabledOutFruizione(boolean enabledOutFruizione) {
  96.         this.enabledOutFruizione = enabledOutFruizione;
  97.     }
  98.    
  99.     public boolean isEnabledInErogazione_headers() {
  100.         return this.enabledInErogazione_headers;
  101.     }
  102.     public void setEnabledInErogazione_headers(boolean enabledInErogazione_headers) {
  103.         this.enabledInErogazione_headers = enabledInErogazione_headers;
  104.     }
  105.     public boolean isEnabledInErogazione_payload() {
  106.         return this.enabledInErogazione_payload;
  107.     }
  108.     public void setEnabledInErogazione_payload(boolean enabledInErogazione_payload) {
  109.         this.enabledInErogazione_payload = enabledInErogazione_payload;
  110.     }
  111.     public boolean isEnabledOutErogazione_headers() {
  112.         return this.enabledOutErogazione_headers;
  113.     }
  114.     public void setEnabledOutErogazione_headers(boolean enabledOutErogazione_headers) {
  115.         this.enabledOutErogazione_headers = enabledOutErogazione_headers;
  116.     }
  117.     public boolean isEnabledOutErogazione_payload() {
  118.         return this.enabledOutErogazione_payload;
  119.     }
  120.     public void setEnabledOutErogazione_payload(boolean enabledOutErogazione_payload) {
  121.         this.enabledOutErogazione_payload = enabledOutErogazione_payload;
  122.     }
  123.     public boolean isEnabledInFruizione_headers() {
  124.         return this.enabledInFruizione_headers;
  125.     }
  126.     public void setEnabledInFruizione_headers(boolean enabledInFruizione_headers) {
  127.         this.enabledInFruizione_headers = enabledInFruizione_headers;
  128.     }
  129.     public boolean isEnabledInFruizione_payload() {
  130.         return this.enabledInFruizione_payload;
  131.     }
  132.     public void setEnabledInFruizione_payload(boolean enabledInFruizione_payload) {
  133.         this.enabledInFruizione_payload = enabledInFruizione_payload;
  134.     }
  135.     public boolean isEnabledOutFruizione_headers() {
  136.         return this.enabledOutFruizione_headers;
  137.     }
  138.     public void setEnabledOutFruizione_headers(boolean enabledOutFruizione_headers) {
  139.         this.enabledOutFruizione_headers = enabledOutFruizione_headers;
  140.     }
  141.     public boolean isEnabledOutFruizione_payload() {
  142.         return this.enabledOutFruizione_payload;
  143.     }
  144.     public void setEnabledOutFruizione_payload(boolean enabledOutFruizione_payload) {
  145.         this.enabledOutFruizione_payload = enabledOutFruizione_payload;
  146.     }
  147.    
  148.     @Override
  149.     public String toString() {
  150.         StringBuilder sb = new StringBuilder();
  151.         sb.append("Enabled: ").append(this.enabled);
  152.         if(this.enabled) {
  153.             sb.append("\nPath: ").append(this.path);
  154.             sb.append("\nLastModified: ").append(this.lastModified);
  155.             sb.append("\nInErogazione: ").append(this.enabledInErogazione);
  156.             if(this.enabledInErogazione) {
  157.                 sb.append("\nInErogazione (headers): ").append(this.enabledInErogazione_headers);
  158.                 sb.append("\nInErogazione (payload): ").append(this.enabledInErogazione_payload);
  159.             }
  160.             sb.append("\nOutErogazione: ").append(this.enabledOutErogazione);
  161.             if(this.enabledOutErogazione) {
  162.                 sb.append("\nOutErogazione (headers): ").append(this.enabledOutErogazione_headers);
  163.                 sb.append("\nOutErogazione (payload): ").append(this.enabledOutErogazione_payload);
  164.             }
  165.             sb.append("\nInFruizione: ").append(this.enabledInFruizione);
  166.             if(this.enabledInFruizione) {
  167.                 sb.append("\nInFruizione (headers): ").append(this.enabledInFruizione_headers);
  168.                 sb.append("\nInFruizione (payload): ").append(this.enabledInFruizione_payload);
  169.             }
  170.             sb.append("\nOutFruizione: ").append(this.enabledOutFruizione);
  171.             if(this.enabledOutFruizione) {
  172.                 sb.append("\nOutFruizione (headers): ").append(this.enabledOutFruizione_headers);
  173.                 sb.append("\nOutFruizione (payload): ").append(this.enabledOutFruizione_payload);
  174.             }
  175.         }
  176.         return sb.toString();
  177.     }
  178.    
  179.     public static FileTraceGovWayState toConfig(String s, boolean checkFormatString) {
  180.         if(checkFormatString && !s.startsWith("Enabled:")) {
  181.             return null; // stringa non corretta
  182.         }
  183.         FileTraceGovWayState state = new FileTraceGovWayState();
  184.         state.enabled = s!=null && s.startsWith("Enabled: true");
  185.         if(state.enabled) {
  186.             try(Scanner scanner = new Scanner(s);){
  187.                 while (scanner.hasNextLine()) {
  188.                     String line = scanner.nextLine();
  189.                     if(line.contains(": ")) {
  190.                         String [] tmp = line.split(": ");
  191.                         if(tmp!=null && tmp.length==2) {
  192.                             String nome = tmp[0];
  193.                             String valore = tmp[1];
  194.                             if("Path".equals(nome)) {
  195.                                 state.path = valore;
  196.                             }
  197.                             else if("LastModified".equals(nome)) {
  198.                                 state.lastModified = valore;
  199.                             }
  200.                            
  201.                             else if("InErogazione".equals(nome)) {
  202.                                 state.enabledInErogazione = Boolean.valueOf(valore);
  203.                             }
  204.                             else if("InErogazione (headers)".equals(nome)) {
  205.                                 state.enabledInErogazione_headers = Boolean.valueOf(valore);
  206.                             }
  207.                             else if("InErogazione (payload)".equals(nome)) {
  208.                                 state.enabledInErogazione_payload = Boolean.valueOf(valore);
  209.                             }
  210.                            
  211.                             else if("OutErogazione".equals(nome)) {
  212.                                 state.enabledOutErogazione = Boolean.valueOf(valore);
  213.                             }
  214.                             else if("OutErogazione (headers)".equals(nome)) {
  215.                                 state.enabledOutErogazione_headers = Boolean.valueOf(valore);
  216.                             }
  217.                             else if("OutErogazione (payload)".equals(nome)) {
  218.                                 state.enabledOutErogazione_payload = Boolean.valueOf(valore);
  219.                             }
  220.                            
  221.                             else if("InFruizione".equals(nome)) {
  222.                                 state.enabledInFruizione = Boolean.valueOf(valore);
  223.                             }
  224.                             else if("InFruizione (headers)".equals(nome)) {
  225.                                 state.enabledInFruizione_headers = Boolean.valueOf(valore);
  226.                             }
  227.                             else if("InFruizione (payload)".equals(nome)) {
  228.                                 state.enabledInFruizione_payload = Boolean.valueOf(valore);
  229.                             }
  230.                            
  231.                             else if("OutFruizione".equals(nome)) {
  232.                                 state.enabledOutFruizione = Boolean.valueOf(valore);
  233.                             }
  234.                             else if("OutFruizione (headers)".equals(nome)) {
  235.                                 state.enabledOutFruizione_headers = Boolean.valueOf(valore);
  236.                             }
  237.                             else if("OutFruizione (payload)".equals(nome)) {
  238.                                 state.enabledOutFruizione_payload = Boolean.valueOf(valore);
  239.                             }
  240.                         }
  241.                     }
  242.                 }
  243.             }
  244.         }
  245.         return state;
  246.     }
  247. }