ParametriSonda.java
- /*
- * GovWay - A customizable API Gateway
- * https://govway.org
- *
- * Copyright (c) 2005-2025 Link.it srl (https://link.it).
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3, as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- package org.openspcoop2.utils.sonde;
- import java.util.Date;
- import java.util.HashSet;
- import java.util.Properties;
- import java.util.Set;
- import org.openspcoop2.utils.io.Base64Utilities;
- /**
- * Classe contenente i parametri per le Sonde
- *
- *
- * @author Bussu Giovanni (bussu@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class ParametriSonda {
- private String nome;
- private long sogliaWarn, sogliaError;
- private Date dataOk, dataWarn, dataError, dataUltimoCheck;
- private Properties datiCheck;
- private Set<String> reserved = new HashSet<String>();
- private int statoUltimoCheck;
-
- private static final String SEPARATOR = ":";
- private static final String CUSTOM = "CUSTOM##";
- /**
- * Deserializza una stringa in una lista di properties rappresentanti i dati di check
- * @param datiCheck stringa rappresentante una lista di parametri nome:valore
- * @throws Exception
- */
- public void unmarshallDatiCheck(String datiCheck) {
- this.datiCheck = new Properties();
- if(datiCheck != null) {
- String[] datiList = datiCheck.split("\\\n");
- for(String dato: datiList) {
- if(dato.startsWith(CUSTOM)) {
- String datoReale = dato.substring(CUSTOM.length());
- String[] nameValue = datoReale.split(SEPARATOR);
- if(nameValue.length != 2){
- System.err.println("Dato Check ["+datoReale+"] non nel formato valido nome"+SEPARATOR+"valore");
- } else {
- try {
- String key = nameValue[0].trim();
- String value = nameValue[1].trim();
- byte[] decodedKey = Base64Utilities.decode(key);
- byte[] decodedValue = Base64Utilities.decode(value);
- this.datiCheck.put(new String(decodedKey), new String(decodedValue));
- } catch(Throwable t) {
- System.err.println("Errore durante il decoding del parametro ["+datoReale+"]: " + t.getMessage());
- }
- }
-
- } else {
- String[] nameValue = dato.split(SEPARATOR);
- if(nameValue.length != 2){
- System.err.println("Dato Check ["+dato+"] non nel formato valido nome"+SEPARATOR+"valore");
- } else {
- this.datiCheck.put(nameValue[0].trim(), nameValue[1].trim());
- }
- }
- }
- }
- }
- /**
- * Serializza una lista di properties rappresentanti i dati di check in una stringa
- * @return stringa rappresentante una lista di parametri nome=valore
- */
- public String marshallDatiCheck() {
-
- if(this.datiCheck != null) {
- StringBuilder sb = new StringBuilder();
- for(Object key: this.datiCheck.keySet()) {
- boolean contains = this.reserved.contains(key);
-
- if(contains) {
- sb.append(key).append(SEPARATOR).append(this.datiCheck.get(key)).append("\n");
- } else {
- String keyEncoded = Base64Utilities.encodeAsString(key.toString().getBytes());
- String valueEncoded = Base64Utilities.encodeAsString(this.datiCheck.get(key).toString().getBytes());
- sb.append(CUSTOM).append(keyEncoded).append(SEPARATOR).append(valueEncoded).append("\n");
- }
- }
- return sb.toString();
- } else {
- return null;
- }
- }
- public void putAllCheck(Properties checks) {
- if(checks != null) {
- for(Object key: checks.keySet()) {
- if(!this.reserved.contains(key)) {
- this.datiCheck.put(key, checks.get(key));
- }
- }
- }
- }
- /**
- * GETTERS E SETTERS
- */
- public String getNome() {
- return this.nome;
- }
- public void setNome(String nome) {
- this.nome = nome;
- }
- public long getSogliaWarn() {
- return this.sogliaWarn;
- }
- public void setSogliaWarn(long sogliaWarn) {
- this.sogliaWarn = sogliaWarn;
- }
- public long getSogliaError() {
- return this.sogliaError;
- }
- public void setSogliaError(long sogliaError) {
- this.sogliaError = sogliaError;
- }
- public Date getDataOk() {
- return this.dataOk;
- }
- public void setDataOk(Date dataOk) {
- this.dataOk = dataOk;
- }
- public Date getDataWarn() {
- return this.dataWarn;
- }
- public void setDataWarn(Date dataWarn) {
- this.dataWarn = dataWarn;
- }
- public Date getDataError() {
- return this.dataError;
- }
- public void setDataError(Date dataError) {
- this.dataError = dataError;
- }
- public Date getDataUltimoCheck() {
- return this.dataUltimoCheck;
- }
- public void setDataUltimoCheck(Date dataUltimoCheck) {
- this.dataUltimoCheck = dataUltimoCheck;
- }
- public Properties getDatiCheck() {
- return this.datiCheck;
- }
- public void setDatiCheck(Properties datiCheck) {
- this.datiCheck = datiCheck;
- }
- public int getStatoUltimoCheck() {
- return this.statoUltimoCheck;
- }
- public void setStatoUltimoCheck(int statoUltimoCheck) {
- this.statoUltimoCheck = statoUltimoCheck;
- }
- public Set<String> getReserved() {
- return this.reserved;
- }
- public void setReserved(Set<String> reserved) {
- this.reserved = reserved;
- }
- }