DatiCollezionati.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.core.controllo_traffico.beans;
- import java.io.Serializable;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import org.openspcoop2.core.commons.CoreException;
- import org.openspcoop2.core.constants.TipoPdD;
- import org.openspcoop2.core.controllo_traffico.constants.TipoBanda;
- import org.openspcoop2.core.controllo_traffico.constants.TipoControlloPeriodo;
- import org.openspcoop2.core.controllo_traffico.constants.TipoFinestra;
- import org.openspcoop2.core.controllo_traffico.constants.TipoLatenza;
- import org.openspcoop2.core.controllo_traffico.constants.TipoRisorsa;
- import org.openspcoop2.core.controllo_traffico.driver.PolicyException;
- import org.openspcoop2.utils.Map;
- import org.openspcoop2.utils.MapKey;
- import org.openspcoop2.utils.date.DateManager;
- import org.openspcoop2.utils.date.DateUtils;
- import org.openspcoop2.utils.date.UnitaTemporale;
- import org.slf4j.Logger;
- /**
- * DatiCollezionati
- *
- * @author Andrea Poli (poli@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class DatiCollezionati implements Serializable {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public DatiCollezionati(Date updatePolicyDate, Date gestorePolicyConfigDate) {
- this.updatePolicyDate = updatePolicyDate;
- this.gestorePolicyConfigDate = gestorePolicyConfigDate;
- }
- // data di lettura delle informazioni
- private Date cloneDate = null; // non deve essere gestita. Viene solamente inizializzata ad ogni clone
-
- // tipo di risorsa
- protected TipoRisorsa tipoRisorsa = null;
-
- // threads
- protected Long activeRequestCounter = null; // tiene traccia del numero di richieste attive sempre. Utile in jmx
-
- // data di creazione
- protected Date creationDate = null;
- // data di registrazione/aggiornamento policy
- private Date updatePolicyDate = null;
- // dati impostazione gestore della policy
- protected Date gestorePolicyConfigDate = null;
-
- // dati di attuazione manuale di un reset dei contatori
- private Long manuallyResetPolicyTimeMillis = null;
- private static final MapKey<String> START_PROCESS_REQUEST_TIME_MS = Map.newMapKey("START_PROCESS_REQUEST_TIME_MS");
-
- // dati iniziali
- private UnitaTemporale policyDateTypeInterval = null;
- private Integer policyDateInterval = null;
- private Boolean policyDateCurrentInterval = null;
- private TipoFinestra policyDateWindowInterval = null;
- protected Boolean policyRealtime = null;
- // dati dinamici
- protected Date policyDate = null;
- protected Long policyRequestCounter = null;
- protected Long policyCounter = null; // utilizzato per tempi o banda
- protected Long policyDenyRequestCounter = null;
- private Date oldPolicyDate = null;
- private Long oldPolicyRequestCounter = null;
- private Long oldPolicyCounter = null; // utilizzato per tempi o banda
-
- // dati iniziali degrado prestazionale
- private UnitaTemporale policyDegradoPrestazionaleDateTypeInterval = null;
- private Integer policyDegradoPrestazionaleDateInterval = null;
- private Boolean policyDegradoPrestazionaleDateCurrentInterval = null;
- private TipoFinestra policyDegradoPrestazionaleDateWindowInterval = null;
- protected Boolean policyDegradoPrestazionaleRealtime = null;
- // dati dinamici degrado prestazionale
- protected Date policyDegradoPrestazionaleDate = null;
- protected Long policyDegradoPrestazionaleRequestCounter = null;
- protected Long policyDegradoPrestazionaleCounter= null;
- private Date oldPolicyDegradoPrestazionaleDate = null;
- private Long oldPolicyDegradoPrestazionaleRequestCounter = null;
- private Long oldPolicyDegradoPrestazionaleCounter = null; // utilizzato per tempi o banda
-
-
- public void initDatiIniziali(ActivePolicy activePolicy){
-
- // tipo di risorsa
- this.tipoRisorsa = activePolicy.getTipoRisorsaPolicy();
-
- // threads
- this.activeRequestCounter = 0l;
-
- // data di creazione
- this.creationDate = DateManager.getDate();
- // data di registrazione policy
- this.updatePolicyDate = activePolicy.getInstanceConfiguration().getUpdateTime();
-
- // Policy
-
- if(!activePolicy.getConfigurazionePolicy().isSimultanee()
- &&
- TipoControlloPeriodo.REALTIME.equals(activePolicy.getConfigurazionePolicy().getModalitaControllo())){
-
- this.policyDateCurrentInterval = true; // cablato
-
- this.policyDateWindowInterval = activePolicy.getConfigurazionePolicy().getFinestraOsservazione();
-
- switch (activePolicy.getConfigurazionePolicy().getTipoIntervalloOsservazioneRealtime()) {
- case SECONDI:
- this.policyDateTypeInterval = UnitaTemporale.SECONDI;
- break;
- case MINUTI:
- this.policyDateTypeInterval = UnitaTemporale.MINUTI;
- break;
- case ORARIO:
- this.policyDateTypeInterval = UnitaTemporale.ORARIO;
- break;
- case GIORNALIERO:
- this.policyDateTypeInterval = UnitaTemporale.GIORNALIERO;
- break;
- }
-
- this.policyDateInterval = activePolicy.getConfigurazionePolicy().getIntervalloOsservazione();
-
- this.policyRealtime = true;
-
- }
- else if(TipoControlloPeriodo.STATISTIC.equals(activePolicy.getConfigurazionePolicy().getModalitaControllo())){
-
- this.policyDateWindowInterval = activePolicy.getConfigurazionePolicy().getFinestraOsservazione();
-
- if(TipoFinestra.SCORREVOLE.equals(activePolicy.getConfigurazionePolicy().getFinestraOsservazione())){
- this.policyDateCurrentInterval = activePolicy.getConfigurazioneControlloTraffico().isElaborazioneStatistica_finestraScorrevole_gestioneIntervalloCorrente();
- this.policyDateTypeInterval = UnitaTemporale.ORARIO; // USARE SEMPRE L'INTERVALLO PIU' STRETTO. Se si introdurranno i minuti si dovrà utilizzare i minuti.
-
- // E' però necessaria la conversione in ore.
- switch (activePolicy.getConfigurazionePolicy().getTipoIntervalloOsservazioneStatistico()) {
- case ORARIO:
- this.policyDateInterval = activePolicy.getConfigurazionePolicy().getIntervalloOsservazione();
- break;
- case GIORNALIERO:
- this.policyDateInterval = activePolicy.getConfigurazionePolicy().getIntervalloOsservazione() * 24;
- break;
- case SETTIMANALE:
- this.policyDateInterval = activePolicy.getConfigurazionePolicy().getIntervalloOsservazione() * 24 * 7;
- break;
- case MENSILE:
- this.policyDateInterval = activePolicy.getConfigurazionePolicy().getIntervalloOsservazione() * 24 * 30; // (utilizzo 30 come giorni medi di un mese)
- break;
- }
- }
- else{
- this.policyDateCurrentInterval = true; // cablato
-
- switch (activePolicy.getConfigurazionePolicy().getTipoIntervalloOsservazioneStatistico()) {
- case ORARIO:
- this.policyDateTypeInterval = UnitaTemporale.ORARIO;
- break;
- case GIORNALIERO:
- this.policyDateTypeInterval = UnitaTemporale.GIORNALIERO;
- break;
- case SETTIMANALE:
- this.policyDateTypeInterval = UnitaTemporale.SETTIMANALE;
- break;
- case MENSILE:
- this.policyDateTypeInterval = UnitaTemporale.MENSILE;
- break;
- }
-
- this.policyDateInterval = activePolicy.getConfigurazionePolicy().getIntervalloOsservazione();
- }
-
- this.policyRealtime = false;
-
- }
-
-
- // DegradoPrestazionale
-
- if(activePolicy.getConfigurazionePolicy().isApplicabilitaDegradoPrestazionale()){
-
- if(TipoControlloPeriodo.REALTIME.equals(activePolicy.getConfigurazionePolicy().getDegradoAvgTimeModalitaControllo())){
-
- this.policyDegradoPrestazionaleDateCurrentInterval = true; // cablato
-
- this.policyDegradoPrestazionaleDateWindowInterval = activePolicy.getConfigurazionePolicy().getDegradoAvgTimeFinestraOsservazione();
-
- switch (activePolicy.getConfigurazionePolicy().getDegradoAvgTimeTipoIntervalloOsservazioneRealtime()) {
- case SECONDI:
- this.policyDegradoPrestazionaleDateTypeInterval = UnitaTemporale.SECONDI;
- break;
- case MINUTI:
- this.policyDegradoPrestazionaleDateTypeInterval = UnitaTemporale.MINUTI;
- break;
- case ORARIO:
- this.policyDegradoPrestazionaleDateTypeInterval = UnitaTemporale.ORARIO;
- break;
- case GIORNALIERO:
- this.policyDegradoPrestazionaleDateTypeInterval = UnitaTemporale.GIORNALIERO;
- break;
- }
-
- this.policyDegradoPrestazionaleDateInterval = activePolicy.getConfigurazionePolicy().getDegradoAvgTimeIntervalloOsservazione();
-
- this.policyDegradoPrestazionaleRealtime = true;
-
- }
- else if(TipoControlloPeriodo.STATISTIC.equals(activePolicy.getConfigurazionePolicy().getDegradoAvgTimeModalitaControllo())){
-
- this.policyDegradoPrestazionaleDateWindowInterval = activePolicy.getConfigurazionePolicy().getDegradoAvgTimeFinestraOsservazione();
-
- if(TipoFinestra.SCORREVOLE.equals(activePolicy.getConfigurazionePolicy().getDegradoAvgTimeFinestraOsservazione())){
- this.policyDegradoPrestazionaleDateCurrentInterval = activePolicy.getConfigurazioneControlloTraffico().isElaborazioneStatistica_finestraScorrevole_gestioneIntervalloCorrente();
- this.policyDegradoPrestazionaleDateTypeInterval = UnitaTemporale.ORARIO; // USARE SEMPRE L'INTERVALLO PIU' STRETTO. Se si introdurranno i minuti si dovrà utilizzare i minuti.
-
- // E' però necessaria la conversione in ore.
- switch (activePolicy.getConfigurazionePolicy().getDegradoAvgTimeTipoIntervalloOsservazioneStatistico()) {
- case ORARIO:
- this.policyDegradoPrestazionaleDateInterval = activePolicy.getConfigurazionePolicy().getDegradoAvgTimeIntervalloOsservazione();
- break;
- case GIORNALIERO:
- this.policyDegradoPrestazionaleDateInterval = activePolicy.getConfigurazionePolicy().getDegradoAvgTimeIntervalloOsservazione() * 24;
- break;
- case SETTIMANALE:
- this.policyDegradoPrestazionaleDateInterval = activePolicy.getConfigurazionePolicy().getDegradoAvgTimeIntervalloOsservazione() * 24 * 7;
- break;
- case MENSILE:
- this.policyDegradoPrestazionaleDateInterval = activePolicy.getConfigurazionePolicy().getDegradoAvgTimeIntervalloOsservazione() * 24 * 30; // (utilizzo 30 come giorni medi di un mese)
- break;
- }
- }
- else{
- this.policyDegradoPrestazionaleDateCurrentInterval = true; // cablato
-
- switch (activePolicy.getConfigurazionePolicy().getDegradoAvgTimeTipoIntervalloOsservazioneStatistico()) {
- case ORARIO:
- this.policyDegradoPrestazionaleDateTypeInterval = UnitaTemporale.ORARIO;
- break;
- case GIORNALIERO:
- this.policyDegradoPrestazionaleDateTypeInterval = UnitaTemporale.GIORNALIERO;
- break;
- case SETTIMANALE:
- this.policyDegradoPrestazionaleDateTypeInterval = UnitaTemporale.SETTIMANALE;
- break;
- case MENSILE:
- this.policyDegradoPrestazionaleDateTypeInterval = UnitaTemporale.MENSILE;
- break;
- }
-
- this.policyDegradoPrestazionaleDateInterval = activePolicy.getConfigurazionePolicy().getDegradoAvgTimeIntervalloOsservazione();
- }
-
- this.policyDegradoPrestazionaleRealtime = false;
-
- }
-
- }
- }
-
- public DatiCollezionati newInstance() {
- return internalNewInstance(false); // se servisse avere una immagine con i dati remoti, usare la clone con il boolean.
- }
- public DatiCollezionati newInstance(boolean readRemoteInfo) {
- return internalNewInstance(readRemoteInfo);
- }
- private DatiCollezionati internalNewInstance(boolean readRemoteInfo) {
- Date updatePolicyDateCheck = new Date(this.updatePolicyDate.getTime());
- Date gestorePolicyConfigDateCheck = null;
- if(this.gestorePolicyConfigDate!=null) {
- gestorePolicyConfigDateCheck = new Date(this.gestorePolicyConfigDate.getTime());
- }
-
- DatiCollezionati dati = new DatiCollezionati(updatePolicyDateCheck, gestorePolicyConfigDateCheck);
-
- return setValuesIn(dati, readRemoteInfo);
- }
- public DatiCollezionati setValuesIn(DatiCollezionati dati, boolean readRemoteInfo){
-
- // data di registrazione/aggiornamento policy
-
- dati.cloneDate = DateManager.getDate();
-
- // tipo di risorsa
- if(this.tipoRisorsa!=null){
- dati.tipoRisorsa = TipoRisorsa.toEnumConstant(this.tipoRisorsa.getValue());
- }
-
- // threads
- Long getActiveRequestCounter = this.getActiveRequestCounter(readRemoteInfo);
- if(getActiveRequestCounter!=null) {
- dati.activeRequestCounter = Long.valueOf(getActiveRequestCounter.longValue()+"");
- }
-
- // data di creazione
- if(this.creationDate!=null) {
- dati.creationDate = new Date(this.creationDate.getTime());
- }
-
- // dati iniziali
- if(this.policyDateTypeInterval!=null){
- dati.policyDateTypeInterval = UnitaTemporale.toEnumConstant(this.policyDateTypeInterval.getValue());
- }
- if(this.policyDateInterval!=null){
- dati.policyDateInterval = Integer.valueOf(this.policyDateInterval.intValue()+"");
- }
- if(this.policyDateCurrentInterval!=null){
- dati.policyDateCurrentInterval = Boolean.valueOf(this.policyDateCurrentInterval.booleanValue()+"");
- }
- if(this.policyDateWindowInterval!=null){
- dati.policyDateWindowInterval = TipoFinestra.toEnumConstant(this.policyDateWindowInterval.getValue());
- }
- if(this.policyRealtime!=null){
- dati.policyRealtime = Boolean.valueOf(this.policyRealtime+"");
- }
-
- // dati dinamici
- if(this.policyDate!=null){
- dati.policyDate = new Date(this.policyDate.getTime());
- }
- Long getPolicyRequestCounter = this.getPolicyRequestCounter(readRemoteInfo);
- if(getPolicyRequestCounter!=null){
- dati.policyRequestCounter = Long.valueOf(getPolicyRequestCounter.longValue()+"");
- }
- Long getPolicyCounter = this.getPolicyCounter(readRemoteInfo);
- if(getPolicyCounter!=null){
- dati.policyCounter = Long.valueOf(getPolicyCounter.longValue()+"");
- }
- Long getPolicyDenyRequestCounter = this.getPolicyDenyRequestCounter(readRemoteInfo);
- if(getPolicyDenyRequestCounter!=null){
- dati.policyDenyRequestCounter = Long.valueOf(getPolicyDenyRequestCounter.longValue()+"");
- }
- if(this.oldPolicyDate!=null){
- dati.oldPolicyDate = new Date(this.oldPolicyDate.getTime());
- }
- if(this.oldPolicyRequestCounter!=null){
- dati.oldPolicyRequestCounter = Long.valueOf(this.oldPolicyRequestCounter.longValue()+"");
- }
- if(this.oldPolicyCounter!=null){
- dati.oldPolicyCounter = Long.valueOf(this.oldPolicyCounter.longValue()+"");
- }
-
- // dati iniziali degrado prestazionale
- if(this.policyDegradoPrestazionaleDateTypeInterval!=null){
- dati.policyDegradoPrestazionaleDateTypeInterval = UnitaTemporale.toEnumConstant(this.policyDegradoPrestazionaleDateTypeInterval.getValue());
- }
- if(this.policyDegradoPrestazionaleDateInterval!=null){
- dati.policyDegradoPrestazionaleDateInterval = Integer.valueOf(this.policyDegradoPrestazionaleDateInterval.intValue()+"");
- }
- if(this.policyDegradoPrestazionaleDateCurrentInterval!=null){
- dati.policyDegradoPrestazionaleDateCurrentInterval = Boolean.valueOf(this.policyDegradoPrestazionaleDateCurrentInterval.booleanValue()+"");
- }
- if(this.policyDegradoPrestazionaleDateWindowInterval!=null){
- dati.policyDegradoPrestazionaleDateWindowInterval = TipoFinestra.toEnumConstant(this.policyDegradoPrestazionaleDateWindowInterval.getValue());
- }
- if(this.policyDegradoPrestazionaleRealtime!=null){
- dati.policyDegradoPrestazionaleRealtime = Boolean.valueOf(this.policyDegradoPrestazionaleRealtime.booleanValue()+"");
- }
-
- // dati dinamici degrado prestazionale
- if(this.policyDegradoPrestazionaleDate!=null){
- dati.policyDegradoPrestazionaleDate = new Date(this.policyDegradoPrestazionaleDate.getTime());
- }
- Long getPolicyDegradoPrestazionaleRequestCounter = this.getPolicyDegradoPrestazionaleRequestCounter(readRemoteInfo);
- if(getPolicyDegradoPrestazionaleRequestCounter!=null){
- dati.policyDegradoPrestazionaleRequestCounter = Long.valueOf(getPolicyDegradoPrestazionaleRequestCounter.longValue()+"");
- }
- Long getPolicyDegradoPrestazionaleCounter = this.getPolicyDegradoPrestazionaleCounter(readRemoteInfo);
- if(getPolicyDegradoPrestazionaleCounter!=null){
- dati.policyDegradoPrestazionaleCounter = Long.valueOf(getPolicyDegradoPrestazionaleCounter.longValue()+"");
- }
- if(this.oldPolicyDegradoPrestazionaleDate!=null){
- dati.oldPolicyDegradoPrestazionaleDate = new Date(this.oldPolicyDegradoPrestazionaleDate.getTime());
- }
- if(this.oldPolicyDegradoPrestazionaleRequestCounter!=null){
- dati.oldPolicyDegradoPrestazionaleRequestCounter = Long.valueOf(this.oldPolicyDegradoPrestazionaleRequestCounter.longValue()+"");
- }
- if(this.oldPolicyDegradoPrestazionaleCounter!=null){
- dati.oldPolicyDegradoPrestazionaleCounter = Long.valueOf(this.oldPolicyDegradoPrestazionaleCounter.longValue()+"");
- }
-
-
-
- return dati;
- }
-
- private static final String OCCUPAZIONE_BANDA_KB_INFO = " kb (";
- private static final String OCCUPAZIONE_BANDA_BYTES_INFO = " bytes)";
- private static final String TEMPO_COMPLESSIVO_RISPOSTA_SECONDI_INFO = " secondi (";
- private static final String TEMPO_COMPLESSIVO_RISPOSTA_MILLISECONDI_INFO = " ms)";
- private static final String TEMPO_MEDIO_RISPOSTA_MILLISECONDI_INFO = " ms";
-
- @Override
- public String toString(){
-
- SimpleDateFormat dateformat = DateUtils.getSimpleDateFormatMs();
-
- StringBuilder bf = new StringBuilder();
-
- bf.append("Dati Generali");
-
- // tipo di risorsa
- String nomeRisorsa = null;
- if(this.tipoRisorsa!=null){
- /**bf.append("Risorsa: ");
- bf.append(this.tipoRisorsa.getValue());*/
- nomeRisorsa = this.tipoRisorsa.getValue();
- }
-
- // threads
- if(bf.length()>0){
- bf.append("\n");
- }
- bf.append("\tRichieste Attive: ");
- bf.append(this.getActiveRequestCounter(true));
-
- // data di creazione
- bf.append("\n");
- bf.append("\tData Attivazione Policy: ");
- bf.append(dateformat.format(this.creationDate));
-
- // data di registrazione/aggiornamento policy
- bf.append("\n");
- bf.append("\tData Registrazione/Aggiornamento Policy: ");
- bf.append(dateformat.format(this.updatePolicyDate));
-
- // data di registrazione/aggiornamento policy
- if(this.gestorePolicyConfigDate!=null) {
- bf.append("\n");
- bf.append("\tData Configurazione Gestore Policy: ");
- bf.append(dateformat.format(this.gestorePolicyConfigDate));
- }
-
- // Data now
- Date now = null;
-
- // Policy
-
- Date leftPrecedente = null;
- Date rightPrecedente = null;
-
- if(this.policyDateWindowInterval!=null){
- bf.append("\nDati collezionati per la metrica '"+nomeRisorsa+"'");
-
- if(this.policyRealtime!=null){
- bf.append("\n");
- bf.append("\tModalità di Controllo: ");
- if(this.policyRealtime!=null && this.policyRealtime.booleanValue()){
- bf.append("realtime");
- }
- else{
- bf.append("statistica");
- }
- }
-
- bf.append("\n");
- bf.append("\tFinestra Osservazione: ");
- bf.append(this.policyDateWindowInterval.getValue());
-
- // intervallo
-
- Date left = null;
- Date right = null;
- switch (this.policyDateWindowInterval) {
- case CORRENTE:
- left = this.getLeftDateWindowCurrentInterval();
- right = this.getRightDateWindowCurrentInterval();
- break;
- case PRECEDENTE:
- left = this.getLeftDateWindowCurrentInterval();
- right = this.getRightDateWindowCurrentInterval();
-
- leftPrecedente = this.getLeftDateWindowPrecedentInterval();
- rightPrecedente = this.getRightDateWindowPrecedentInterval();
- break;
- case SCORREVOLE:
- if(now==null){
- now = DateManager.getDate();
- }
- left = this.getLeftDateWindowSlidingInterval(now);
- right = this.getRightDateWindowSlidingInterval(now);
- break;
- }
-
- bf.append("\n");
-
- if(left!=null && right!=null){
- bf.append("\tIntervallo [");
- bf.append(dateformat.format(left));
- bf.append(" - ");
- bf.append(dateformat.format(right));
- bf.append("]");
- }
- else{
- if(this.policyDate!=null){
- bf.append("\tData: ");
- bf.append(dateformat.format(this.policyDate));
- }
- }
- }
-
- Long getPolicyRequestCounter = this.getPolicyRequestCounter(true);
- if(getPolicyRequestCounter!=null){
- bf.append("\n");
- bf.append("\tNumero Richieste Conteggiate: ");
- bf.append(getPolicyRequestCounter);
- }
- Long getPolicyCounter = this.getPolicyCounter(true);
- if(getPolicyCounter!=null){
- bf.append("\n");
- bf.append("\tContatore: ");
- if(this.tipoRisorsa!=null){
- switch (this.tipoRisorsa) {
- case NUMERO_RICHIESTE:
- case NUMERO_RICHIESTE_COMPLETATE_CON_SUCCESSO:
- case NUMERO_RICHIESTE_FALLITE:
- case NUMERO_FAULT_APPLICATIVI:
- case NUMERO_RICHIESTE_FALLITE_OFAULT_APPLICATIVI:
- case NUMERO_RICHIESTE_COMPLETATE_CON_SUCCESSO_OFAULT_APPLICATIVI:
- case DIMENSIONE_MASSIMA_MESSAGGIO: // non viene usata
- bf.append(getPolicyCounter);
- break;
- case OCCUPAZIONE_BANDA:
- bf.append(DatiCollezionati.translateToKb(getPolicyCounter));
- bf.append(OCCUPAZIONE_BANDA_KB_INFO);
- bf.append(getPolicyCounter);
- bf.append(OCCUPAZIONE_BANDA_BYTES_INFO);
- break;
- case TEMPO_COMPLESSIVO_RISPOSTA:
- bf.append(DatiCollezionati.translateToSeconds(getPolicyCounter));
- bf.append(TEMPO_COMPLESSIVO_RISPOSTA_SECONDI_INFO);
- bf.append(getPolicyCounter);
- bf.append(TEMPO_COMPLESSIVO_RISPOSTA_MILLISECONDI_INFO);
- break;
- case TEMPO_MEDIO_RISPOSTA:
- bf.append(getPolicyCounter);
- bf.append(TEMPO_MEDIO_RISPOSTA_MILLISECONDI_INFO);
- break;
- }
- }
- else{
- bf.append(getPolicyCounter);
- }
- }
- Double avg = this.getPolicyAvgValue(true);
- if(avg!=null){
- bf.append("\n");
- bf.append("\tValore Medio: ");
- if(this.tipoRisorsa!=null){
- switch (this.tipoRisorsa) {
- case NUMERO_RICHIESTE:
- case NUMERO_RICHIESTE_COMPLETATE_CON_SUCCESSO:
- case NUMERO_RICHIESTE_FALLITE:
- case NUMERO_FAULT_APPLICATIVI:
- case NUMERO_RICHIESTE_FALLITE_OFAULT_APPLICATIVI:
- case NUMERO_RICHIESTE_COMPLETATE_CON_SUCCESSO_OFAULT_APPLICATIVI:
- case DIMENSIONE_MASSIMA_MESSAGGIO: // non viene usata
- bf.append(avg.longValue());
- break;
- case OCCUPAZIONE_BANDA:
- bf.append(DatiCollezionati.translateToKb(avg.longValue()));
- bf.append(OCCUPAZIONE_BANDA_KB_INFO);
- bf.append(avg.longValue());
- bf.append(OCCUPAZIONE_BANDA_BYTES_INFO);
- break;
- case TEMPO_COMPLESSIVO_RISPOSTA:
- bf.append(DatiCollezionati.translateToSeconds(avg.longValue()));
- bf.append(TEMPO_COMPLESSIVO_RISPOSTA_SECONDI_INFO);
- bf.append(avg.longValue());
- bf.append(TEMPO_COMPLESSIVO_RISPOSTA_MILLISECONDI_INFO);
- break;
- case TEMPO_MEDIO_RISPOSTA:
- bf.append(avg.longValue());
- bf.append(TEMPO_MEDIO_RISPOSTA_MILLISECONDI_INFO);
- break;
- }
- }
- else{
- bf.append(avg.longValue());
- }
- }
- Long getPolicyDenyRequestCounter = this.getPolicyDenyRequestCounter(true);
- if(getPolicyDenyRequestCounter!=null){
- bf.append("\n");
- bf.append("\tNumero Richieste Bloccate: ");
- bf.append(getPolicyDenyRequestCounter);
- }
-
- if(leftPrecedente!=null && rightPrecedente!=null){
- bf.append("\n");
- bf.append("\tIntervallo Precedente [");
- bf.append(dateformat.format(leftPrecedente));
- bf.append(" - ");
- bf.append(dateformat.format(rightPrecedente));
- bf.append("]");
- }
-
- boolean oldExists = false;
- if(this.oldPolicyRequestCounter!=null){
- oldExists = true;
- bf.append("\n");
- bf.append("\tIntervallo Precedente - Numero Richieste Conteggiate: ");
- bf.append(this.oldPolicyRequestCounter);
- }
- if(this.oldPolicyCounter!=null){
- oldExists = true;
- bf.append("\n");
- bf.append("\tIntervallo Precedente - Contatore: ");
- if(this.tipoRisorsa!=null){
- switch (this.tipoRisorsa) {
- case NUMERO_RICHIESTE:
- case NUMERO_RICHIESTE_COMPLETATE_CON_SUCCESSO:
- case NUMERO_RICHIESTE_FALLITE:
- case NUMERO_FAULT_APPLICATIVI:
- case NUMERO_RICHIESTE_FALLITE_OFAULT_APPLICATIVI:
- case NUMERO_RICHIESTE_COMPLETATE_CON_SUCCESSO_OFAULT_APPLICATIVI:
- case DIMENSIONE_MASSIMA_MESSAGGIO: // non viene usata
- bf.append(this.oldPolicyCounter);
- break;
- case OCCUPAZIONE_BANDA:
- bf.append(DatiCollezionati.translateToKb(this.oldPolicyCounter));
- bf.append(OCCUPAZIONE_BANDA_KB_INFO);
- bf.append(this.oldPolicyCounter);
- bf.append(OCCUPAZIONE_BANDA_BYTES_INFO);
- break;
- case TEMPO_COMPLESSIVO_RISPOSTA:
- bf.append(DatiCollezionati.translateToSeconds(this.oldPolicyCounter));
- bf.append(TEMPO_COMPLESSIVO_RISPOSTA_SECONDI_INFO);
- bf.append(this.oldPolicyCounter);
- bf.append(TEMPO_COMPLESSIVO_RISPOSTA_MILLISECONDI_INFO);
- break;
- case TEMPO_MEDIO_RISPOSTA:
- bf.append(this.oldPolicyCounter);
- bf.append(TEMPO_MEDIO_RISPOSTA_MILLISECONDI_INFO);
- break;
- }
- }
- else{
- bf.append(this.oldPolicyCounter);
- }
- }
- Double oldAvg = this.getOldPolicyAvgValue();
- if(oldAvg!=null){
- oldExists = true;
- bf.append("\n");
- bf.append("\tIntervallo Precedente - Valore Medio: ");
- if(this.tipoRisorsa!=null){
- switch (this.tipoRisorsa) {
- case NUMERO_RICHIESTE:
- case NUMERO_RICHIESTE_COMPLETATE_CON_SUCCESSO:
- case NUMERO_RICHIESTE_FALLITE:
- case NUMERO_FAULT_APPLICATIVI:
- case NUMERO_RICHIESTE_FALLITE_OFAULT_APPLICATIVI:
- case NUMERO_RICHIESTE_COMPLETATE_CON_SUCCESSO_OFAULT_APPLICATIVI:
- case DIMENSIONE_MASSIMA_MESSAGGIO: // non viene usata
- bf.append(oldAvg.longValue());
- break;
- case OCCUPAZIONE_BANDA:
- bf.append(DatiCollezionati.translateToKb(oldAvg.longValue()));
- bf.append(OCCUPAZIONE_BANDA_KB_INFO);
- bf.append(oldAvg.longValue());
- bf.append(OCCUPAZIONE_BANDA_BYTES_INFO);
- break;
- case TEMPO_COMPLESSIVO_RISPOSTA:
- bf.append(DatiCollezionati.translateToSeconds(oldAvg.longValue()));
- bf.append(TEMPO_COMPLESSIVO_RISPOSTA_SECONDI_INFO);
- bf.append(oldAvg.longValue());
- bf.append(TEMPO_COMPLESSIVO_RISPOSTA_MILLISECONDI_INFO);
- break;
- case TEMPO_MEDIO_RISPOSTA:
- bf.append(oldAvg.longValue());
- bf.append(TEMPO_MEDIO_RISPOSTA_MILLISECONDI_INFO);
- break;
- }
- }
- else{
- bf.append(oldAvg.longValue());
- }
- }
-
- if(!oldExists &&
- this.policyDateWindowInterval!=null &&
- TipoFinestra.PRECEDENTE.equals(this.policyDateWindowInterval)&&
- this.policyRealtime!=null && this.policyRealtime.booleanValue()){
- bf.append("\n");
- bf.append("\tIntervallo Precedente - Dati non ancora disponibili");
- }
-
-
- // Degrado
-
- leftPrecedente = null;
- rightPrecedente = null;
-
- if(this.policyDegradoPrestazionaleDateWindowInterval!=null){
- bf.append("\nDati collezionati per Degrado Prestazionale");
-
- if(this.policyDegradoPrestazionaleRealtime!=null){
- bf.append("\n");
- bf.append("\tModalità di Controllo: ");
- if(this.policyDegradoPrestazionaleRealtime!=null && this.policyDegradoPrestazionaleRealtime.booleanValue()){
- bf.append("realtime");
- }
- else{
- bf.append("statistica");
- }
- }
-
- bf.append("\n");
- bf.append("\tFinestra Osservazione: ");
- bf.append(this.policyDegradoPrestazionaleDateWindowInterval.getValue());
-
- // intervallo
-
- Date left = null;
- Date right = null;
- switch (this.policyDegradoPrestazionaleDateWindowInterval) {
- case CORRENTE:
- left = this.getDegradoPrestazionaleLeftDateWindowCurrentInterval();
- right = this.getDegradoPrestazionaleRightDateWindowCurrentInterval();
- break;
- case PRECEDENTE:
-
- left = this.getDegradoPrestazionaleLeftDateWindowCurrentInterval();
- right = this.getDegradoPrestazionaleRightDateWindowCurrentInterval();
-
- leftPrecedente = this.getDegradoPrestazionaleLeftDateWindowPrecedentInterval();
- rightPrecedente = this.getDegradoPrestazionaleRightDateWindowPrecedentInterval();
- break;
- case SCORREVOLE:
- if(now==null){
- now = DateManager.getDate();
- }
- left = this.getDegradoPrestazionaleLeftDateWindowSlidingInterval(now);
- right = this.getDegradoPrestazionaleRightDateWindowSlidingInterval(now);
- break;
- }
-
- bf.append("\n");
-
- if(left!=null && right!=null){
- bf.append("\tIntervallo [");
- bf.append(dateformat.format(left));
- bf.append(" - ");
- bf.append(dateformat.format(right));
- bf.append("]");
- }
- else{
- if(this.policyDegradoPrestazionaleDate!=null){
- bf.append("\tData: ");
- bf.append(dateformat.format(this.policyDegradoPrestazionaleDate));
- }
- }
- }
-
- Long getPolicyDegradoPrestazionaleRequestCounter = this.getPolicyDegradoPrestazionaleRequestCounter(true);
- if(getPolicyDegradoPrestazionaleRequestCounter!=null){
- bf.append("\n");
- bf.append("\tNumeroRichieste: ");
- bf.append(getPolicyDegradoPrestazionaleRequestCounter);
- }
- Long getPolicyDegradoPrestazionaleCounter = this.getPolicyDegradoPrestazionaleCounter(true);
- if(getPolicyDegradoPrestazionaleCounter!=null){
- bf.append("\n");
- bf.append("\tContatore: ");
- bf.append(getPolicyDegradoPrestazionaleCounter);
- bf.append(" ms");
- }
- Double avgDegradoPrestazionale = this.getPolicyDegradoPrestazionaleAvgValue(true);
- if(avgDegradoPrestazionale!=null){
- bf.append("\n");
- bf.append("\tValore Medio: ");
- bf.append(avgDegradoPrestazionale.longValue());
- bf.append(" ms");
- }
-
- if(leftPrecedente!=null && rightPrecedente!=null){
- bf.append("\n");
- bf.append("\tIntervallo Precedente [");
- bf.append(dateformat.format(leftPrecedente));
- bf.append(" - ");
- bf.append(dateformat.format(rightPrecedente));
- bf.append("]");
- }
-
- boolean oldDegradoPrestazionaleExists = false;
- if(this.oldPolicyDegradoPrestazionaleRequestCounter!=null){
- oldDegradoPrestazionaleExists = true;
- bf.append("\n");
- bf.append("\tIntervallo Precedente - Numero Richieste: ");
- bf.append(this.oldPolicyDegradoPrestazionaleRequestCounter);
- }
- if(this.oldPolicyDegradoPrestazionaleCounter!=null){
- oldDegradoPrestazionaleExists = true;
- bf.append("\n");
- bf.append("\tIntervallo Precedente - Contatore: ");
- bf.append(this.oldPolicyDegradoPrestazionaleCounter);
- bf.append(" ms");
- }
- Double oldAvgDegradoPrestazionale = this.getOldPolicyDegradoPrestazionaleAvgValue();
- if(oldAvgDegradoPrestazionale!=null){
- oldDegradoPrestazionaleExists = true;
- bf.append("\n");
- bf.append("\tIntervallo Precedente - Valore Medio: ");
- bf.append(oldAvgDegradoPrestazionale.longValue());
- bf.append(" ms");
- }
-
- if(!oldDegradoPrestazionaleExists &&
- this.policyDegradoPrestazionaleDateWindowInterval!=null &&
- TipoFinestra.PRECEDENTE.equals(this.policyDegradoPrestazionaleDateWindowInterval) &&
- this.policyDegradoPrestazionaleRealtime!=null && this.policyDegradoPrestazionaleRealtime.booleanValue()){
- bf.append("\n");
- bf.append("\tIntervallo Precedente - Dati non ancora disponibili");
- }
-
-
- return bf.toString();
- }
-
-
- protected boolean isRisorsaContaNumeroRichieste(TipoRisorsa tipoRisorsa) {
- switch (tipoRisorsa) {
- case NUMERO_RICHIESTE:
- case NUMERO_RICHIESTE_COMPLETATE_CON_SUCCESSO:
- case NUMERO_RICHIESTE_FALLITE:
- case NUMERO_FAULT_APPLICATIVI:
- case NUMERO_RICHIESTE_FALLITE_OFAULT_APPLICATIVI:
- case NUMERO_RICHIESTE_COMPLETATE_CON_SUCCESSO_OFAULT_APPLICATIVI:
- return true;
- case OCCUPAZIONE_BANDA:
- case TEMPO_COMPLESSIVO_RISPOSTA:
- case TEMPO_MEDIO_RISPOSTA:
- case DIMENSIONE_MASSIMA_MESSAGGIO: // non viene usata
- return false;
- }
- return false;
- }
-
-
- protected boolean isRisorsaContaNumeroRichiesteDipendentiEsito(TipoRisorsa tipoRisorsa) {
- switch (tipoRisorsa) {
- case NUMERO_RICHIESTE_COMPLETATE_CON_SUCCESSO:
- case NUMERO_RICHIESTE_FALLITE:
- case NUMERO_FAULT_APPLICATIVI:
- case NUMERO_RICHIESTE_FALLITE_OFAULT_APPLICATIVI:
- case NUMERO_RICHIESTE_COMPLETATE_CON_SUCCESSO_OFAULT_APPLICATIVI:
- return true;
- case NUMERO_RICHIESTE:
- case OCCUPAZIONE_BANDA:
- case TEMPO_COMPLESSIVO_RISPOSTA:
- case TEMPO_MEDIO_RISPOSTA:
- case DIMENSIONE_MASSIMA_MESSAGGIO: // non viene usata
- return false;
- }
- return false;
- }
-
- protected void resetPolicyCounterForDate(Date d) {
- this.policyDate = d;
- if(this.policyRealtime!=null && this.policyRealtime){
- this.policyRequestCounter = 0l;
- this.policyDenyRequestCounter = 0l;
- if(this.tipoRisorsa==null || !isRisorsaContaNumeroRichieste(this.tipoRisorsa)){
- /**SimpleDateFormat dateformat = DateUtils.getSimpleDateFormatMs();
- System.out.println("Resetto policy counter a zero per intervallo d["+dateformat.format(d)+"]");*/
- this.policyCounter = 0l;
- }
- }
- }
-
-
- protected void resetPolicyCounterForDateDegradoPrestazionale(Date d) {
- this.policyDegradoPrestazionaleDate = d;
- if(this.policyDegradoPrestazionaleRealtime!=null && this.policyDegradoPrestazionaleRealtime){
- this.policyDegradoPrestazionaleRequestCounter = 0l;
- this.policyDegradoPrestazionaleCounter = 0l;
- }
-
- }
-
- protected void logDebug(Logger log, String msg) {
- if(log!=null) {
- log.debug(msg);
- }
- }
-
- protected void checkPolicyCounterForDate(Logger log, ActivePolicy activePolicy){
-
- if(this.policyDate==null){
- // first-init
- resetPolicyCounterForDate(DateUtils.convertToLeftInterval(DateManager.getDate(),this.policyDateTypeInterval));
-
- if(this.policyRealtime!=null && !this.policyRealtime){
- // statistico. Serve subito anche l'intervallo precedente
- this.oldPolicyDate = DateUtils.incrementDate(this.policyDate, this.policyDateTypeInterval, this.policyDateInterval*(-1));
- }
-
- }
-
- else{
-
- Date rightInterval = this.getRightDateWindowCurrentInterval();
- Date now = DateManager.getDate();
- boolean after = now.after(rightInterval);
- if(activePolicy.getConfigurazioneControlloTraffico().isDebug()){
- SimpleDateFormat dateformat = DateUtils.getSimpleDateFormatMs();
- logDebug(log,"checkPolicyCounterForDate now["+dateformat.format(now)+"] after policyDate["+dateformat.format(rightInterval)+"]: "+after+"");
- }
- if(after){
-
- if(TipoFinestra.PRECEDENTE.equals(this.getPolicyDateWindowInterval())){
- // Salvo old
- this.oldPolicyDate = this.policyDate;
- if(this.policyRealtime!=null && this.policyRealtime){
- this.oldPolicyRequestCounter = this.policyRequestCounter;
- if(this.tipoRisorsa==null || !isRisorsaContaNumeroRichieste(this.tipoRisorsa)){
- this.oldPolicyCounter = this.policyCounter;
- }
- }
- }
-
- // Genero nuova finestra
- Date d = DateUtils.incrementDate(this.policyDate, this.policyDateTypeInterval, this.policyDateInterval);
-
- Date dRight = DateUtils.convertToRightInterval(d, this.policyDateTypeInterval);
- dRight = DatiCollezionati.incrementDate(dRight, this.policyDateTypeInterval, this.policyDateInterval, this.policyDateCurrentInterval);
- /**Date dRight = DateUtils.incrementDate(d, this.policyDateTypeInterval, this.policyDateInterval);
- dRight = DateUtils.convertToRightInterval(dRight, this.policyDateTypeInterval);*/
-
- boolean before = dRight.before(now);
- if(activePolicy.getConfigurazioneControlloTraffico().isDebug()){
- SimpleDateFormat dateformat = DateUtils.getSimpleDateFormatMs();
- logDebug(log,"checkPolicyCounterForDate Increment d["+dateformat.format(d)+"] dRight["+dateformat.format(dRight)+"] before now["+
- dateformat.format(now)+"]: "+before);
- }
- while(before){
-
- // la nuova richiesta non riguarda l'intervallo+1 rispetto al precedente, ma intervalli successivi.
- // Devo resettare anche i vecchi contatori
- if(TipoFinestra.PRECEDENTE.equals(this.getPolicyDateWindowInterval())){
- // Salvo old
- this.oldPolicyDate = d;
- if(this.policyRealtime!=null && this.policyRealtime){
- this.oldPolicyRequestCounter = 0l;
- if(this.tipoRisorsa==null || !isRisorsaContaNumeroRichieste(this.tipoRisorsa)){
- this.oldPolicyCounter = 0l;
- }
- }
- }
-
- d = DateUtils.incrementDate(d, this.policyDateTypeInterval, this.policyDateInterval);
-
- dRight = DateUtils.convertToRightInterval(d, this.policyDateTypeInterval);
- dRight = DatiCollezionati.incrementDate(dRight, this.policyDateTypeInterval, this.policyDateInterval, this.policyDateCurrentInterval);
- /**dRight = DateUtils.incrementDate(d, this.policyDateTypeInterval, this.policyDateInterval);
- dRight = DateUtils.convertToRightInterval(dRight, this.policyDateTypeInterval);*/
-
- before = dRight.before(now);
- if(activePolicy.getConfigurazioneControlloTraffico().isDebug()){
- SimpleDateFormat dateformat = DateUtils.getSimpleDateFormatMs();
- logDebug(log,"checkPolicyCounterForDate Increment d["+dateformat.format(d)+"] dRight["+dateformat.format(dRight)+"] before now["+
- dateformat.format(now)+"]: "+before);
- }
- }
-
- resetPolicyCounterForDate(d);
-
- }
-
- }
-
- }
-
- protected void checkPolicyCounterForDateDegradoPrestazionale(Logger log, ActivePolicy activePolicy){
-
- if(this.policyDegradoPrestazionaleDate==null){
-
- // first-init
- resetPolicyCounterForDateDegradoPrestazionale(DateUtils.convertToLeftInterval(DateManager.getDate(),this.policyDegradoPrestazionaleDateTypeInterval));
-
- if(this.policyDegradoPrestazionaleRealtime!=null && !this.policyDegradoPrestazionaleRealtime){
- // statistico. Serve subito anche l'intervallo precedente
- this.oldPolicyDegradoPrestazionaleDate = DateUtils.incrementDate(this.policyDegradoPrestazionaleDate,
- this.policyDegradoPrestazionaleDateTypeInterval, this.policyDegradoPrestazionaleDateInterval*(-1));
- }
-
- }
-
- else{
-
- Date rightInterval = this.getDegradoPrestazionaleRightDateWindowCurrentInterval();
- Date now = DateManager.getDate();
- boolean after = now.after(rightInterval);
- if(activePolicy.getConfigurazioneControlloTraffico().isDebug()){
- SimpleDateFormat dateformat = DateUtils.getSimpleDateFormatMs();
- logDebug(log,"checkPolicyCounterForDateDegradoPrestazionale now["+dateformat.format(now)+"] after policyDate["+dateformat.format(rightInterval)+"]: "+after+"");
- }
- if(after){
-
- if(TipoFinestra.PRECEDENTE.equals(this.getPolicyDegradoPrestazionaleDateWindowInterval())){
- // Salvo old
- this.oldPolicyDegradoPrestazionaleDate = this.policyDegradoPrestazionaleDate;
- if(this.policyDegradoPrestazionaleRealtime!=null && this.policyDegradoPrestazionaleRealtime){
- this.oldPolicyDegradoPrestazionaleRequestCounter = this.policyDegradoPrestazionaleRequestCounter;
- this.oldPolicyDegradoPrestazionaleCounter = this.policyDegradoPrestazionaleCounter;
- }
- }
-
- // Genero nuova finestra
- Date d = DateUtils.incrementDate(this.policyDegradoPrestazionaleDate, this.policyDegradoPrestazionaleDateTypeInterval, this.policyDegradoPrestazionaleDateInterval);
- Date dRight = DateUtils.incrementDate(d, this.policyDegradoPrestazionaleDateTypeInterval, this.policyDegradoPrestazionaleDateInterval);
- dRight = DateUtils.convertToRightInterval(dRight, this.policyDegradoPrestazionaleDateTypeInterval);
- boolean before = dRight.before(now);
- if(activePolicy.getConfigurazioneControlloTraffico().isDebug()){
- SimpleDateFormat dateformat = DateUtils.getSimpleDateFormatMs();
- logDebug(log,"checkPolicyCounterForDateDegradoPrestazionale Increment d["+dateformat.format(d)+"] dRight["+dateformat.format(dRight)+"] before now["+
- dateformat.format(now)+"]: "+before);
- }
- while(before){
-
- // la nuova richiesta non riguarda l'intervallo+1 rispetto al precedente, ma intervalli successivi.
- // Devo resettare anche i vecchi contatori
- if(TipoFinestra.PRECEDENTE.equals(this.getPolicyDegradoPrestazionaleDateWindowInterval())){
- // Salvo old
- this.oldPolicyDegradoPrestazionaleDate = d;
- if(this.policyDegradoPrestazionaleRealtime!=null && this.policyDegradoPrestazionaleRealtime){
- this.oldPolicyDegradoPrestazionaleRequestCounter = 0l;
- this.oldPolicyDegradoPrestazionaleCounter = 0l;
- }
- }
-
- d = DateUtils.incrementDate(d, this.policyDegradoPrestazionaleDateTypeInterval, this.policyDegradoPrestazionaleDateInterval);
- dRight = DateUtils.incrementDate(d, this.policyDegradoPrestazionaleDateTypeInterval, this.policyDegradoPrestazionaleDateInterval);
- dRight = DateUtils.convertToRightInterval(dRight, this.policyDegradoPrestazionaleDateTypeInterval);
- before = dRight.before(now);
- if(activePolicy.getConfigurazioneControlloTraffico().isDebug()){
- SimpleDateFormat dateformat = DateUtils.getSimpleDateFormatMs();
- logDebug(log,"checkPolicyCounterForDateDegradoPrestazionale Increment d["+dateformat.format(d)+"] dRight["+dateformat.format(dRight)+"] before now["+
- dateformat.format(now)+"]: "+before);
- }
- }
- resetPolicyCounterForDateDegradoPrestazionale(d);
- }
-
- }
-
- }
-
- // Questo metodo viene chiamato dai metodi 'resetCounters' degli oggetti PolicyGroupByActiveThreads che a sua volta sono invocabili solamente via Jmx/Console
- public void resetCounters(){
- this.resetCounters(null);
-
- this.manuallyResetPolicyTimeMillis = DateManager.getTimeMillis();
- /**System.out.println("IMPOSTO RESET MANUALE ("+this.manuallyResetPolicyTimeMillis+") IN ["+this.toString()+"]");*/
-
- }
- // Questo metodo viene invocato quando viene rilevata una modifica ai valori di soglia di una policy e quindi viene aggiornata l'updatePolicyDate
- // In questo metodo non serve registrare il manuallyResetPolicyTimeMillis poichè il metodo viene invocato sempre prima di una 'registerStartRequest' mentre la funzione del manuallyResetPolicyTimeMillis
- // serve ad ignorare la gestione successiva ad un reset counter per le transazioni in corso.
- public void resetCounters(Date updatePolicyDate){
-
- if(updatePolicyDate!=null) {
- this.updatePolicyDate = updatePolicyDate;
- }
-
- if(this.policyRequestCounter!=null){
- this.policyRequestCounter = 0l;
- }
- if(this.policyCounter!=null){
- this.policyCounter = 0l;
- }
- if(this.policyDenyRequestCounter!=null){
- this.policyDenyRequestCounter = 0l;
- }
- this.oldPolicyDate = null;
- if(this.oldPolicyRequestCounter!=null){
- this.oldPolicyRequestCounter = 0l;
- }
- if(this.oldPolicyCounter!=null){
- this.oldPolicyCounter = 0l;
- }
-
- if(this.policyDegradoPrestazionaleRequestCounter!=null){
- this.policyDegradoPrestazionaleRequestCounter = 0l;
- }
- if(this.policyDegradoPrestazionaleCounter!=null){
- this.policyDegradoPrestazionaleCounter = 0l;
- }
- this.oldPolicyDegradoPrestazionaleDate = null;
- if(this.oldPolicyDegradoPrestazionaleRequestCounter!=null){
- this.oldPolicyDegradoPrestazionaleRequestCounter = 0l;
- }
- if(this.oldPolicyDegradoPrestazionaleCounter!=null){
- this.oldPolicyDegradoPrestazionaleCounter = 0l;
- }
-
- }
-
- public void checkDate(Logger log, ActivePolicy activePolicy){
-
- if(this.creationDate==null){
- this.initDatiIniziali(activePolicy);
- }
-
- if(this.getPolicyDateWindowInterval()!=null &&
- !TipoFinestra.SCORREVOLE.equals(this.getPolicyDateWindowInterval())){
-
- this.checkPolicyCounterForDate(log,activePolicy);
-
- }
-
- if(this.getPolicyDegradoPrestazionaleDateWindowInterval()!=null &&
- !TipoFinestra.SCORREVOLE.equals(this.getPolicyDegradoPrestazionaleDateWindowInterval())){
-
- this.checkPolicyCounterForDateDegradoPrestazionale(log,activePolicy);
- }
-
- }
-
-
- private boolean skipBecauseManuallyResetAfterStartRequest(String source, Map<Object> ctx) {
- if(source!=null) {
- // nop
- }
- if(this.manuallyResetPolicyTimeMillis!=null && ctx!=null) {
- Object o = ctx.get(START_PROCESS_REQUEST_TIME_MS);
- if(o==null) {
- // transazione gestita precedentemente al reset dei contatori
- /**System.out.println("@"+source+" RILEVATO RESET '"+this.manuallyResetPolicyTimeMillis+"', trovato in ctx 'NULL'");*/
- return true;
- }
- Long l = (Long) o;
- if(l.longValue() < this.manuallyResetPolicyTimeMillis.longValue()) {
- // transazione gestita precedentemente al reset dei contatori
- /**System.out.println("@"+source+" RILEVATO RESET '"+this.manuallyResetPolicyTimeMillis+"', trovato in ctx una data minore '"+l+"'");*/
- return true;
- }
- }
- return false;
- }
-
-
-
- protected void internalRegisterStartRequestIncrementActiveRequestCounter(DatiCollezionati datiCollezionatiPerPolicyVerifier) {
- this.activeRequestCounter++;
- if(datiCollezionatiPerPolicyVerifier!=null) {
- datiCollezionatiPerPolicyVerifier.activeRequestCounter = this.activeRequestCounter;
- }
- }
- public void registerStartRequest(Logger log, ActivePolicy activePolicy, Map<Object> ctx){
- registerStartRequest(log, activePolicy, ctx, null);
- }
- public void registerStartRequest(Logger log, ActivePolicy activePolicy, Map<Object> ctx, DatiCollezionati datiCollezionatiPerPolicyVerifier){
-
- if(this.creationDate==null){
- this.initDatiIniziali(activePolicy);
- }
-
- internalRegisterStartRequestIncrementActiveRequestCounter(datiCollezionatiPerPolicyVerifier);
-
- if(this.getPolicyDateWindowInterval()!=null &&
- !TipoFinestra.SCORREVOLE.equals(this.getPolicyDateWindowInterval())){
-
- this.checkPolicyCounterForDate(log,activePolicy);
-
- }
- if(this.getPolicyDegradoPrestazionaleDateWindowInterval()!=null &&
- !TipoFinestra.SCORREVOLE.equals(this.getPolicyDegradoPrestazionaleDateWindowInterval())){
-
- this.checkPolicyCounterForDateDegradoPrestazionale(log,activePolicy);
-
- /**if(this.policyDegradoPrestazionaleRealtime){
- // Essendo il degrado un tempo medio anche il numero di richieste lo devo incrementare quando aggiungo anche la latenza,
- // senno poi la divisione (per l'avg) rispetto al numero di richieste è falsata
- // poiche' tengo conto anche delle richieste in corso, nonostante per queste non disponga ancora nella latenza
- }*/
- }
-
- if(this.manuallyResetPolicyTimeMillis!=null && ctx!=null) {
- ctx.put(START_PROCESS_REQUEST_TIME_MS, DateManager.getTimeMillis());
- /**System.out.println("IMPOSTATO IN CONTESTO: '"+DateManager.getTimeMillis()+"'");*/
- }
- }
-
- protected void internalUpdateDatiStartRequestApplicabileIncrementRequestCounter(DatiCollezionati datiCollezionatiPerPolicyVerifier) {
- this.policyRequestCounter++;
- if(datiCollezionatiPerPolicyVerifier!=null) {
- datiCollezionatiPerPolicyVerifier.policyRequestCounter = this.policyRequestCounter;
- }
- }
- public boolean updateDatiStartRequestApplicabile(Logger log, ActivePolicy activePolicy, Map<Object> ctx){
- return updateDatiStartRequestApplicabile(log, activePolicy, ctx, null);
- }
- public boolean updateDatiStartRequestApplicabile(Logger log, ActivePolicy activePolicy, Map<Object> ctx, DatiCollezionati datiCollezionatiPerPolicyVerifier){
-
- if(log!=null) {
- // nop
- }
-
- if(skipBecauseManuallyResetAfterStartRequest("updateDatiStartRequestApplicabile", ctx)) {
- return false;
- }
-
- if(this.getPolicyDateWindowInterval()!=null &&
- !TipoFinestra.SCORREVOLE.equals(this.getPolicyDateWindowInterval()) &&
- (this.policyRealtime!=null && this.policyRealtime.booleanValue() &&
- // il contatore delle richieste lo tengo per qualsiasi tipo di risorsa
- // Pero' per il tempo medio lo devo incrementare quando aggiungo anche la latenza, senno poi la divisione (per l'avg) rispetto al numero di richieste è falsata
- // poiche' tengo conto anche delle richieste in corso, nonostante per queste non disponga ancora nella latenza
- // Lo stesso per le richieste che dipendono dall'esito devo incrementarle solo quando conosco l'esito della transazione
- ( (!TipoRisorsa.TEMPO_MEDIO_RISPOSTA.equals(activePolicy.getTipoRisorsaPolicy())) &&
- !isRisorsaContaNumeroRichiesteDipendentiEsito(activePolicy.getTipoRisorsaPolicy()))
- )
- ){
- internalUpdateDatiStartRequestApplicabileIncrementRequestCounter(datiCollezionatiPerPolicyVerifier);
- return true;
-
- }
-
- return false;
- }
-
- protected void internalRegisterEndRequestDecrementActiveRequestCounter() {
- this.activeRequestCounter--;
- }
- protected void internalRegisterEndRequestIncrementDegradoPrestazionaleRequestCounter() {
- this.policyDegradoPrestazionaleRequestCounter++;
- }
- protected void internalRegisterEndRequestIncrementDegradoPrestazionaleCounter(long latenza) {
- this.policyDegradoPrestazionaleCounter = this.policyDegradoPrestazionaleCounter + latenza;
- }
- public void registerEndRequest(Logger log, ActivePolicy activePolicy, Map<Object> ctx, MisurazioniTransazione dati){
-
- if(log!=null) {
- // nop
- }
- if(this.creationDate==null){
- return; // non inizializzato?
- }
-
- internalRegisterEndRequestDecrementActiveRequestCounter();
-
- // Il decrement delle richieste attive deve comunque essere attuato poichè il reset dei contatori non insiste sul numero di richieste attive
- if(skipBecauseManuallyResetAfterStartRequest("registerEndRequest", ctx)) {
- return;
- }
-
- if(this.policyDegradoPrestazionaleRealtime!=null && this.policyDegradoPrestazionaleRealtime){
-
- long latenza = 0;
-
- int [] esitiValidi = null;
-
- if(TipoPdD.DELEGATA.equals(dati.getTipoPdD())){
- esitiValidi = activePolicy.getConfigurazioneControlloTraffico().getCalcoloLatenzaPortaDelegataEsitiConsiderati().get(dati.getProtocollo());
- }
- else{
- esitiValidi = activePolicy.getConfigurazioneControlloTraffico().getCalcoloLatenzaPortaApplicativaEsitiConsiderati().get(dati.getProtocollo());
- }
- boolean found = false;
- for (int esitoValido : esitiValidi) {
- if(dati.getEsitoTransazione() == esitoValido){
- latenza = this.getLatenza(activePolicy.getConfigurazionePolicy().getDegradoAvgTimeTipoLatenza(), dati);
- found = true;
- break;
- }
- }
-
- if(found){
- internalRegisterEndRequestIncrementDegradoPrestazionaleRequestCounter();
- internalRegisterEndRequestIncrementDegradoPrestazionaleCounter(latenza);
- }
-
- }
- }
-
- protected void internalUpdateDatiEndRequestApplicabileIncrementRequestCounter() {
- this.policyRequestCounter++;
- }
- protected void internalUpdateDatiEndRequestApplicabileDecrementRequestCounter() {
- this.policyRequestCounter--;
- }
- protected void internalUpdateDatiEndRequestApplicabileIncrementDenyRequestCounter() {
- this.policyDenyRequestCounter++;
- }
- protected void internalUpdateDatiEndRequestApplicabileIncrementCounter(long v) {
- this.policyCounter = this.policyCounter + v;
- }
- public void updateDatiEndRequestApplicabile(Logger log, ActivePolicy activePolicy, Map<Object> ctx,
- MisurazioniTransazione dati,
- List<Integer> esitiCodeOk, List<Integer> esitiCodeKoSenzaFaultApplicativo, List<Integer> esitiCodeFaultApplicativo,
- boolean isViolata) throws PolicyException{
-
- if(log!=null) {
- // nop
- }
- if(skipBecauseManuallyResetAfterStartRequest("updateDatiEndRequestApplicabile", ctx)) {
- return;
- }
-
- if(this.policyRealtime!=null && this.policyRealtime){
-
- int [] esitiPolicyViolate = activePolicy.getConfigurazioneControlloTraffico().getEsitiPolicyViolate().get(dati.getProtocollo());
- boolean foundEsitoDeny = false;
- for (int esitoViolato : esitiPolicyViolate) {
- if(dati.getEsitoTransazione() == esitoViolato){
- foundEsitoDeny = true;
- break;
- }
- }
-
- if(foundEsitoDeny){
- if( (!TipoRisorsa.TEMPO_MEDIO_RISPOSTA.equals(activePolicy.getTipoRisorsaPolicy())) &&
- !isRisorsaContaNumeroRichiesteDipendentiEsito(activePolicy.getTipoRisorsaPolicy())){
- internalUpdateDatiEndRequestApplicabileDecrementRequestCounter(); // l'avevo incrementato nello start
- }
- if(isViolata) {
- // Aumento solamente il contatore della policy la quale ha bloccato la transazione
- internalUpdateDatiEndRequestApplicabileIncrementDenyRequestCounter();
- }
- return; // non incremento alcun contatore.
- }
-
-
- switch (activePolicy.getTipoRisorsaPolicy()) {
-
- case DIMENSIONE_MASSIMA_MESSAGGIO:
-
- // nop
-
- break;
-
- case NUMERO_RICHIESTE:
-
- // nop
-
- break;
-
- case NUMERO_RICHIESTE_COMPLETATE_CON_SUCCESSO:
- case NUMERO_RICHIESTE_FALLITE:
- case NUMERO_FAULT_APPLICATIVI:
- case NUMERO_RICHIESTE_FALLITE_OFAULT_APPLICATIVI:
- case NUMERO_RICHIESTE_COMPLETATE_CON_SUCCESSO_OFAULT_APPLICATIVI:
-
- List<Integer> esitiAppartenentiGruppo = null;
- try {
- if(TipoRisorsa.NUMERO_RICHIESTE_COMPLETATE_CON_SUCCESSO.equals(activePolicy.getTipoRisorsaPolicy())) {
- /**esitiAppartenentiGruppo = EsitiProperties.getInstance(log).getEsitiCodeOk();*/
- esitiAppartenentiGruppo = esitiCodeOk;
- }
- else if(TipoRisorsa.NUMERO_RICHIESTE_FALLITE.equals(activePolicy.getTipoRisorsaPolicy())) {
- /**esitiAppartenentiGruppo = EsitiProperties.getInstance(log).getEsitiCodeKo_senzaFaultApplicativo();*/
- esitiAppartenentiGruppo = esitiCodeKoSenzaFaultApplicativo;
- }
- else if(TipoRisorsa.NUMERO_FAULT_APPLICATIVI.equals(activePolicy.getTipoRisorsaPolicy())) {
- /**esitiAppartenentiGruppo = EsitiProperties.getInstance(log).getEsitiCodeFaultApplicativo();*/
- esitiAppartenentiGruppo = esitiCodeFaultApplicativo;
- }
- else if(TipoRisorsa.NUMERO_RICHIESTE_FALLITE_OFAULT_APPLICATIVI.equals(activePolicy.getTipoRisorsaPolicy())) {
- esitiAppartenentiGruppo = new ArrayList<>();
- esitiAppartenentiGruppo.addAll(esitiCodeKoSenzaFaultApplicativo);
- esitiAppartenentiGruppo.addAll(esitiCodeFaultApplicativo);
- }
- else {
- // NUMERO_RICHIESTE_COMPLETATE_CON_SUCCESSO_OFAULT_APPLICATIVI
- esitiAppartenentiGruppo = new ArrayList<>();
- esitiAppartenentiGruppo.addAll(esitiCodeOk);
- esitiAppartenentiGruppo.addAll(esitiCodeFaultApplicativo);
- }
- }catch(Exception e) {
- throw new PolicyException(e.getMessage(),e);
- }
- for (int esitoAppartenenteGruppo : esitiAppartenentiGruppo) {
- if(dati.getEsitoTransazione() == esitoAppartenenteGruppo){
- internalUpdateDatiEndRequestApplicabileIncrementRequestCounter();
- break;
- }
- }
- break;
-
- case OCCUPAZIONE_BANDA:
-
- // viene misurata la banda "generata" dalle applicazioni
- /**System.out.println("Incremento banda da "+this.policyCounter);*/
- long banda = this.getBanda(activePolicy.getConfigurazionePolicy().getValoreTipoBanda(), dati);
- internalUpdateDatiEndRequestApplicabileIncrementCounter(banda);
- /**System.out.println("Incremento banda a "+this.policyCounter);*/
-
- break;
-
-
- case TEMPO_COMPLESSIVO_RISPOSTA:
- case TEMPO_MEDIO_RISPOSTA:
-
- int [] esitiValidi = null;
-
- if(TipoPdD.DELEGATA.equals(dati.getTipoPdD())){
- esitiValidi = activePolicy.getConfigurazioneControlloTraffico().getCalcoloLatenzaPortaDelegataEsitiConsiderati().get(dati.getProtocollo());
- }
- else{
- esitiValidi = activePolicy.getConfigurazioneControlloTraffico().getCalcoloLatenzaPortaApplicativaEsitiConsiderati().get(dati.getProtocollo());
- }
- boolean found = false;
- for (int esitoValido : esitiValidi) {
- if(dati.getEsitoTransazione() == esitoValido){
- long latenza = this.getLatenza(activePolicy.getConfigurazionePolicy().getValoreTipoLatenza(), dati);
- /**System.out.println("Incremento tempo da "+this.policyCounter);*/
- internalUpdateDatiEndRequestApplicabileIncrementCounter(latenza);
- /**System.out.println("Incremento tempo a "+this.policyCounter);*/
- found = true;
- break;
- }
- }
-
- if(found && TipoRisorsa.TEMPO_MEDIO_RISPOSTA.equals(activePolicy.getTipoRisorsaPolicy())){
- internalUpdateDatiEndRequestApplicabileIncrementRequestCounter();
- }
-
- break;
- }
- }
-
-
- }
-
- protected long getLatenza(TipoLatenza tipoLatenza, MisurazioniTransazione dati){
- long latenza = 0;
- switch (tipoLatenza) {
- case TOTALE:
- if(dati.getDataUscitaRisposta()!=null && dati.getDataIngressoRichiesta()!=null){
- latenza = dati.getDataUscitaRisposta().getTime()-dati.getDataIngressoRichiesta().getTime();
- }
- break;
- case SERVIZIO:
- if(dati.getDataUscitaRichiesta()!=null && dati.getDataIngressoRisposta()!=null){
- latenza = dati.getDataIngressoRisposta().getTime()-dati.getDataUscitaRichiesta().getTime();
- }
- break;
- case PORTA:
- if(dati.getDataUscitaRichiesta()!=null && dati.getDataIngressoRichiesta()!=null){
- latenza = dati.getDataUscitaRichiesta().getTime()-dati.getDataIngressoRichiesta().getTime();
- }
- if(dati.getDataIngressoRisposta()!=null && dati.getDataUscitaRisposta()!=null){
- latenza = latenza + dati.getDataUscitaRisposta().getTime()-dati.getDataIngressoRisposta().getTime();
- }
- break;
- }
- return latenza;
- }
-
- protected long getBanda(TipoBanda tipoBanda, MisurazioniTransazione dati){
-
- long bandaInterna = 0;
- long bandaEsterna = 0;
- if(TipoPdD.DELEGATA.equals(dati.getTipoPdD())) {
- if(dati.getRichiestaIngressoBytes()!=null && dati.getRichiestaIngressoBytes()>0){
- bandaInterna = bandaInterna + dati.getRichiestaIngressoBytes().longValue();
- }
- if(dati.getRispostaUscitaBytes()!=null && dati.getRispostaUscitaBytes()>0){
- bandaInterna = bandaInterna + dati.getRispostaUscitaBytes().longValue();
- }
-
- if(dati.getRichiestaUscitaBytes()!=null && dati.getRichiestaUscitaBytes()>0){
- bandaEsterna = bandaEsterna + dati.getRichiestaUscitaBytes().longValue();
- }
- if(dati.getRispostaIngressoBytes()!=null && dati.getRispostaIngressoBytes()>0){
- bandaEsterna = bandaEsterna + dati.getRispostaIngressoBytes().longValue();
- }
- }else{
- if(dati.getRichiestaIngressoBytes()!=null && dati.getRichiestaIngressoBytes()>0){
- bandaEsterna = bandaEsterna + dati.getRichiestaIngressoBytes().longValue();
- }
- if(dati.getRispostaUscitaBytes()!=null && dati.getRispostaUscitaBytes()>0){
- bandaEsterna = bandaEsterna + dati.getRispostaUscitaBytes().longValue();
- }
-
- if(dati.getRichiestaUscitaBytes()!=null && dati.getRichiestaUscitaBytes()>0){
- bandaInterna = bandaInterna + dati.getRichiestaUscitaBytes().longValue();
- }
- if(dati.getRispostaIngressoBytes()!=null && dati.getRispostaIngressoBytes()>0){
- bandaInterna = bandaInterna + dati.getRispostaIngressoBytes().longValue();
- }
- }
-
-
- switch (tipoBanda) {
- case COMPLESSIVA:
- return bandaEsterna + bandaInterna;
- case INTERNA:
- return bandaInterna;
- case ESTERNA:
- return bandaEsterna;
- }
- return 0;
- }
-
-
-
- // ****** GETTER ******
- public Date getCloneDate() {
- return this.cloneDate;
- }
-
- public TipoRisorsa getTipoRisorsa() {
- return this.tipoRisorsa;
- }
-
- public Long getActiveRequestCounter() {
- return getActiveRequestCounter(false);
- }
- protected Long getActiveRequestCounter(boolean readRemoteInfo) {
- if(readRemoteInfo) {
- // nop
- }
- return this.activeRequestCounter;
- }
- public Date getCreationDate() {
- return this.creationDate;
- }
- public Date getUpdatePolicyDate() {
- return this.updatePolicyDate;
- }
- public Date getGestorePolicyConfigDate() {
- return this.gestorePolicyConfigDate;
- }
-
- @Deprecated
- public Long getManuallyResetPolicyTimeMillis() {
- return this.manuallyResetPolicyTimeMillis;
- }
- public Date getPolicyDate() {
- return this.policyDate;
- }
- public Long getPolicyRequestCounter() {
- return getPolicyRequestCounter(false);
- }
- protected Long getPolicyRequestCounter(boolean readRemoteInfo) {
- if(readRemoteInfo) {
- // nop
- }
- return this.policyRequestCounter;
- }
- public Long getPolicyCounter() {
- return getPolicyCounter(false);
- }
- protected Long getPolicyCounter(boolean readRemoteInfo) {
- if(readRemoteInfo) {
- // nop
- }
- return this.policyCounter;
- }
- @Deprecated
- public Long getPolicyDenyRequestCounter() {
- return this.policyDenyRequestCounter;
- }
- @Deprecated
- public Long getPolicyDegradoPrestazionaleRequestCounter() {
- return this.policyDegradoPrestazionaleRequestCounter;
- }
- @Deprecated
- public Long getPolicyDegradoPrestazionaleCounter() {
- return this.policyDegradoPrestazionaleCounter;
- }
- public Double getPolicyAvgValue(){
- return getPolicyAvgValue(false);
- }
- protected Double getPolicyAvgValue(boolean readRemoteInfo){
- Double doubleValue = null;
- Long getPolicyCounter = getPolicyCounter(readRemoteInfo);
- Long getPolicyRequestCounter = getPolicyRequestCounter(readRemoteInfo);
- if(getPolicyCounter!=null && getPolicyRequestCounter!=null){
- double c = getPolicyCounter.doubleValue();
- double n = getPolicyRequestCounter.doubleValue();
- doubleValue = c/n;
- }
- return doubleValue;
- }
- protected Long getPolicyDenyRequestCounter(boolean readRemoteInfo) {
- if(readRemoteInfo) {
- // nop
- }
- return this.policyDenyRequestCounter;
- }
- public Date getLeftDateWindowCurrentInterval() {
- if(this.policyDate!=null && this.policyDateTypeInterval!=null){
- return DateUtils.convertToLeftInterval(this.policyDate, this.policyDateTypeInterval);
- }
- return null;
- }
- public Date getRightDateWindowCurrentInterval() {
- if(this.policyDate!=null && this.policyDateTypeInterval!=null && this.policyDateInterval!=null && this.policyDateCurrentInterval!=null){
- Date d = DateUtils.convertToRightInterval(this.policyDate, this.policyDateTypeInterval);
- return DatiCollezionati.incrementDate(d, this.policyDateTypeInterval, this.policyDateInterval, this.policyDateCurrentInterval);
- }
- return null;
- }
-
- public Date getOldPolicyDate() {
- return this.oldPolicyDate;
- }
- public Long getOldPolicyRequestCounter() {
- return this.oldPolicyRequestCounter;
- }
- public Long getOldPolicyCounter() {
- return this.oldPolicyCounter;
- }
- public Double getOldPolicyAvgValue(){
- Double doubleValue = null;
- if(this.oldPolicyCounter!=null && this.oldPolicyRequestCounter!=null){
- double c = this.oldPolicyCounter.doubleValue();
- double n = this.oldPolicyRequestCounter.doubleValue();
- doubleValue = c/n;
- }
- return doubleValue;
- }
- public Date getLeftDateWindowPrecedentInterval() {
- if(this.oldPolicyDate!=null && this.policyDateTypeInterval!=null){
- return DateUtils.convertToLeftInterval(this.oldPolicyDate, this.policyDateTypeInterval);
- }
- return null;
- }
- public Date getRightDateWindowPrecedentInterval() {
- if(this.oldPolicyDate!=null && this.policyDateTypeInterval!=null && this.policyDateInterval!=null && this.policyDateCurrentInterval!=null){
- Date d = DateUtils.convertToRightInterval(this.oldPolicyDate, this.policyDateTypeInterval);
- return DatiCollezionati.incrementDate(d, this.policyDateTypeInterval, this.policyDateInterval, this.policyDateCurrentInterval);
- }
- return null;
- }
-
-
- public Integer getPolicyDateInterval() {
- return this.policyDateInterval;
- }
- public Boolean getPolicyDateCurrentInterval() {
- return this.policyDateCurrentInterval;
- }
- public UnitaTemporale getPolicyDateTypeInterval() {
- return this.policyDateTypeInterval;
- }
- public TipoFinestra getPolicyDateWindowInterval() {
- return this.policyDateWindowInterval;
- }
- public Boolean getPolicyRealtime() {
- return this.policyRealtime;
- }
-
- public Date getLeftDateWindowSlidingInterval(Date now) {
- if(this.policyDateTypeInterval!=null && this.policyDateInterval!=null && this.policyDateCurrentInterval!=null){
- Date d = DateUtils.convertToLeftInterval(now, this.policyDateTypeInterval);
- return DatiCollezionati.decrementDate(d, this.policyDateTypeInterval, this.policyDateInterval, this.policyDateCurrentInterval);
- }
- return null;
- }
- public Date getRightDateWindowSlidingInterval(Date now) {
- if(this.policyDateTypeInterval!=null && this.policyDateCurrentInterval!=null){
- Date d = DateUtils.convertToRightInterval(now, this.policyDateTypeInterval);
- if(!this.policyDateCurrentInterval.booleanValue()){
- d = DateUtils.incrementDate(d, this.policyDateTypeInterval, -1);
- }
- return d;
- }
- return null;
- }
-
-
- public Date getPolicyDegradoPrestazionaleDate() {
- return this.policyDegradoPrestazionaleDate;
- }
- protected Long getPolicyDegradoPrestazionaleRequestCounter(boolean readRemoteInfo) {
- if(readRemoteInfo) {
- // nop
- }
- return this.policyDegradoPrestazionaleRequestCounter;
- }
- protected Long getPolicyDegradoPrestazionaleCounter(boolean readRemoteInfo) {
- if(readRemoteInfo) {
- // nop
- }
- return this.policyDegradoPrestazionaleCounter;
- }
- public Double getPolicyDegradoPrestazionaleAvgValue(){
- return getPolicyDegradoPrestazionaleAvgValue(false);
- }
- protected Double getPolicyDegradoPrestazionaleAvgValue(boolean readRemoteInfo){
- Double doubleValue = null;
- Long getPolicyDegradoPrestazionaleRequestCounter = getPolicyDegradoPrestazionaleRequestCounter(readRemoteInfo);
- Long getPolicyDegradoPrestazionaleCounter = getPolicyDegradoPrestazionaleCounter(readRemoteInfo);
- if(getPolicyDegradoPrestazionaleCounter!=null && getPolicyDegradoPrestazionaleRequestCounter!=null){
- double c = getPolicyDegradoPrestazionaleCounter.doubleValue();
- double n = getPolicyDegradoPrestazionaleRequestCounter.doubleValue();
- doubleValue = c/n;
- }
- return doubleValue;
- }
- public Date getDegradoPrestazionaleLeftDateWindowCurrentInterval() {
- if(this.policyDegradoPrestazionaleDate!=null && this.policyDegradoPrestazionaleDateTypeInterval!=null){
- return DateUtils.convertToLeftInterval(this.policyDegradoPrestazionaleDate, this.policyDegradoPrestazionaleDateTypeInterval);
- }
- return null;
- }
- public Date getDegradoPrestazionaleRightDateWindowCurrentInterval() {
- if(this.policyDegradoPrestazionaleDate!=null && this.policyDegradoPrestazionaleDateTypeInterval!=null &&
- this.policyDegradoPrestazionaleDateInterval!=null && this.policyDegradoPrestazionaleDateCurrentInterval!=null){
- Date d = DateUtils.convertToRightInterval(this.policyDegradoPrestazionaleDate, this.policyDegradoPrestazionaleDateTypeInterval);
- return DatiCollezionati.incrementDate(d, this.policyDegradoPrestazionaleDateTypeInterval, this.policyDegradoPrestazionaleDateInterval, this.policyDegradoPrestazionaleDateCurrentInterval);
- }
- return null;
- }
- public Date getOldPolicyDegradoPrestazionaleDate() {
- return this.oldPolicyDegradoPrestazionaleDate;
- }
- public Long getOldPolicyDegradoPrestazionaleRequestCounter() {
- return this.oldPolicyDegradoPrestazionaleRequestCounter;
- }
- public Long getOldPolicyDegradoPrestazionaleCounter() {
- return this.oldPolicyDegradoPrestazionaleCounter;
- }
- public Double getOldPolicyDegradoPrestazionaleAvgValue(){
- Double doubleValue = null;
- if(this.oldPolicyDegradoPrestazionaleCounter!=null && this.oldPolicyDegradoPrestazionaleRequestCounter!=null){
- double c = this.oldPolicyDegradoPrestazionaleCounter.doubleValue();
- double n = this.oldPolicyDegradoPrestazionaleRequestCounter.doubleValue();
- doubleValue = c/n;
- }
- return doubleValue;
- }
- public Date getDegradoPrestazionaleLeftDateWindowPrecedentInterval() {
- if(this.oldPolicyDegradoPrestazionaleDate!=null && this.policyDegradoPrestazionaleDateTypeInterval!=null){
- return DateUtils.convertToLeftInterval(this.oldPolicyDegradoPrestazionaleDate, this.policyDegradoPrestazionaleDateTypeInterval);
- }
- return null;
- }
- public Date getDegradoPrestazionaleRightDateWindowPrecedentInterval() {
- if(this.oldPolicyDegradoPrestazionaleDate!=null && this.policyDegradoPrestazionaleDateTypeInterval!=null &&
- this.policyDegradoPrestazionaleDateInterval!=null && this.policyDegradoPrestazionaleDateCurrentInterval!=null){
- Date d = DateUtils.convertToRightInterval(this.oldPolicyDegradoPrestazionaleDate, this.policyDegradoPrestazionaleDateTypeInterval);
- return DatiCollezionati.incrementDate(d, this.policyDegradoPrestazionaleDateTypeInterval, this.policyDegradoPrestazionaleDateInterval, this.policyDegradoPrestazionaleDateCurrentInterval);
- }
- return null;
- }
-
- public Integer getPolicyDegradoPrestazionaleDateInterval() {
- return this.policyDegradoPrestazionaleDateInterval;
- }
- public Boolean getPolicyDegradoPrestazionaleDateCurrentInterval() {
- return this.policyDegradoPrestazionaleDateCurrentInterval;
- }
- public UnitaTemporale getPolicyDegradoPrestazionaleDateTypeInterval() {
- return this.policyDegradoPrestazionaleDateTypeInterval;
- }
- public TipoFinestra getPolicyDegradoPrestazionaleDateWindowInterval() {
- return this.policyDegradoPrestazionaleDateWindowInterval;
- }
- public Boolean getPolicyDegradoPrestazionaleRealtime() {
- return this.policyDegradoPrestazionaleRealtime;
- }
-
- public Date getDegradoPrestazionaleLeftDateWindowSlidingInterval(Date now) {
- if(this.policyDegradoPrestazionaleDateTypeInterval!=null && this.policyDegradoPrestazionaleDateInterval!=null && this.policyDegradoPrestazionaleDateCurrentInterval!=null){
- Date d = DateUtils.convertToLeftInterval(now, this.policyDegradoPrestazionaleDateTypeInterval);
- return DatiCollezionati.decrementDate(d, this.policyDegradoPrestazionaleDateTypeInterval, this.policyDegradoPrestazionaleDateInterval, this.policyDegradoPrestazionaleDateCurrentInterval);
- }
- return null;
- }
- public Date getDegradoPrestazionaleRightDateWindowSlidingInterval(Date now) {
- if(this.policyDegradoPrestazionaleDateTypeInterval!=null && this.policyDegradoPrestazionaleDateCurrentInterval!=null){
- Date d = DateUtils.convertToRightInterval(now, this.policyDegradoPrestazionaleDateTypeInterval);
- if(!this.policyDegradoPrestazionaleDateCurrentInterval.booleanValue()){
- d = DateUtils.incrementDate(d, this.policyDegradoPrestazionaleDateTypeInterval, -1);
- }
- return d;
- }
- return null;
- }
-
-
-
-
- // ****** SETTER DEPRECATI ******
- @Deprecated
- public void setTipoRisorsa(TipoRisorsa tipoRisorsa) {
- this.tipoRisorsa = tipoRisorsa;
- }
- public void initActiveRequestCounter() {
- this.activeRequestCounter = 0l;
- }
- @Deprecated
- public void setActiveRequestCounter(long activeRequestCounter) {
- this.activeRequestCounter = activeRequestCounter;
- }
- public long setAndGetActiveRequestCounter(long activeRequestCounter) {
- this.activeRequestCounter = activeRequestCounter;
- return this.activeRequestCounter;
- }
- @Deprecated
- public void setCreationDate(Date creationDate) {
- this.creationDate = creationDate;
- }
- @Deprecated
- public void setUpdatePolicyDate(Date updatePolicyDate) {
- this.updatePolicyDate = updatePolicyDate;
- }
- @Deprecated
- public void setPolicyDateInterval(Integer policyDateInterval) {
- this.policyDateInterval = policyDateInterval;
- }
- @Deprecated
- public void setPolicyDateCurrentInterval(Boolean policyDateCurrentInterval) {
- this.policyDateCurrentInterval = policyDateCurrentInterval;
- }
- @Deprecated
- public void setPolicyDateTypeInterval(UnitaTemporale policyDateTypeInterval) {
- this.policyDateTypeInterval = policyDateTypeInterval;
- }
- @Deprecated
- public void setPolicyDateWindowInterval(TipoFinestra policyDateWindowInterval) {
- this.policyDateWindowInterval = policyDateWindowInterval;
- }
- @Deprecated
- public void setPolicyRealtime(Boolean policyRealtime) {
- this.policyRealtime = policyRealtime;
- }
- @Deprecated
- public void setPolicyDate(Date policyDate) {
- this.policyDate = policyDate;
- }
- @Deprecated
- public void setPolicyRequestCounter(Long policyRequestCounter) {
- this.policyRequestCounter = policyRequestCounter;
- }
- public Long setAndGetPolicyRequestCounter(Long policyRequestCounter) {
- this.policyRequestCounter = policyRequestCounter;
- return this.policyRequestCounter;
- }
- @Deprecated
- public void setPolicyCounter(Long policyCounter) {
- this.policyCounter = policyCounter;
- }
- @Deprecated
- public void setPolicyDenyRequestCounter(Long policyDenyRequestCounter) {
- this.policyDenyRequestCounter = policyDenyRequestCounter;
- }
-
- @Deprecated
- public void setOldPolicyDate(Date oldPolicyDate) {
- this.oldPolicyDate = oldPolicyDate;
- }
- @Deprecated
- public void setOldPolicyRequestCounter(Long oldPolicyRequestCounter) {
- this.oldPolicyRequestCounter = oldPolicyRequestCounter;
- }
- @Deprecated
- public void setOldPolicyCounter(Long oldPolicyCounter) {
- this.oldPolicyCounter = oldPolicyCounter;
- }
- @Deprecated
- public void setPolicyDegradoPrestazionaleDateInterval(Integer policyDegradoPrestazionaleDateInterval) {
- this.policyDegradoPrestazionaleDateInterval = policyDegradoPrestazionaleDateInterval;
- }
- @Deprecated
- public void setPolicyDegradoPrestazionaleDateCurrentInterval(Boolean policyDegradoPrestazionaleDateCurrentInterval) {
- this.policyDegradoPrestazionaleDateCurrentInterval = policyDegradoPrestazionaleDateCurrentInterval;
- }
- @Deprecated
- public void setPolicyDegradoPrestazionaleDateTypeInterval(UnitaTemporale policyDegradoPrestazionaleDateTypeInterval) {
- this.policyDegradoPrestazionaleDateTypeInterval = policyDegradoPrestazionaleDateTypeInterval;
- }
- @Deprecated
- public void setPolicyDegradoPrestazionaleDateWindowInterval(TipoFinestra policyDegradoPrestazionaleDateWindowInterval) {
- this.policyDegradoPrestazionaleDateWindowInterval = policyDegradoPrestazionaleDateWindowInterval;
- }
- @Deprecated
- public void setPolicyDegradoPrestazionaleRealtime(Boolean policyDegradoPrestazionaleRealtime) {
- this.policyDegradoPrestazionaleRealtime = policyDegradoPrestazionaleRealtime;
- }
-
- @Deprecated
- public void setPolicyDegradoPrestazionaleDate(Date policyDegradoPrestazionaleDate) {
- this.policyDegradoPrestazionaleDate = policyDegradoPrestazionaleDate;
- }
- @Deprecated
- public void setPolicyDegradoPrestazionaleRequestCounter(Long policyDegradoPrestazionaleRequestCounter) {
- this.policyDegradoPrestazionaleRequestCounter = policyDegradoPrestazionaleRequestCounter;
- }
- @Deprecated
- public void setPolicyDegradoPrestazionaleCounter(Long policyDegradoPrestazionaleCounter) {
- this.policyDegradoPrestazionaleCounter = policyDegradoPrestazionaleCounter;
- }
- @Deprecated
- public void setOldPolicyDegradoPrestazionaleDate(Date oldPolicyDegradoPrestazionaleDate) {
- this.oldPolicyDegradoPrestazionaleDate = oldPolicyDegradoPrestazionaleDate;
- }
- @Deprecated
- public void setOldPolicyDegradoPrestazionaleRequestCounter(Long oldPolicyDegradoPrestazionaleRequestCounter) {
- this.oldPolicyDegradoPrestazionaleRequestCounter = oldPolicyDegradoPrestazionaleRequestCounter;
- }
- @Deprecated
- public void setOldPolicyDegradoPrestazionaleCounter(Long oldPolicyDegradoPrestazionaleCounter) {
- this.oldPolicyDegradoPrestazionaleCounter = oldPolicyDegradoPrestazionaleCounter;
- }
-
-
- // **** UTILITIES ****
-
- public static String serialize(DatiCollezionati dati){
- StringBuilder bf = new StringBuilder();
-
- // data di lettura delle informazioni
- if(dati.cloneDate!=null)
- bf.append(dati.cloneDate.getTime());
- else
- bf.append("-");
- bf.append("\n");
-
-
- // tipo di risorsa
- if(dati.tipoRisorsa!=null)
- bf.append(dati.tipoRisorsa.getValue());
- else
- bf.append("-");
- bf.append("\n");
-
-
- // threads
- Long getActiveRequestCounter = dati.getActiveRequestCounter(true);
- if(getActiveRequestCounter != null)
- bf.append(getActiveRequestCounter);
- else
- bf.append("-");
- bf.append("\n");
-
-
- // data di creazione
- if(dati.creationDate!=null)
- bf.append(dati.creationDate.getTime());
- else
- bf.append("-");
- bf.append("\n");
-
-
- // dati iniziali
- if(dati.policyDateTypeInterval!=null)
- bf.append(dati.policyDateTypeInterval.getValue());
- else
- bf.append("-");
- bf.append("\n");
- if(dati.policyDateInterval!=null)
- bf.append(dati.policyDateInterval);
- else
- bf.append("-");
- bf.append("\n");
- if(dati.policyDateCurrentInterval!=null)
- bf.append(dati.policyDateCurrentInterval);
- else
- bf.append("-");
- bf.append("\n");
- if(dati.policyDateWindowInterval!=null)
- bf.append(dati.policyDateWindowInterval.getValue());
- else
- bf.append("-");
- bf.append("\n");
- if(dati.policyRealtime!=null)
- bf.append(dati.policyRealtime);
- else
- bf.append("-");
- bf.append("\n");
- // dati dinamici
- if(dati.policyDate!=null)
- bf.append(dati.policyDate.getTime());
- else
- bf.append("-");
- bf.append("\n");
- Long getPolicyRequestCounter = dati.getPolicyRequestCounter(true);
- if(getPolicyRequestCounter!=null)
- bf.append(getPolicyRequestCounter);
- else
- bf.append("-");
- bf.append("\n");
- Long getPolicyCounter = dati.getPolicyCounter(true);
- if(getPolicyCounter!=null)
- bf.append(getPolicyCounter);
- else
- bf.append("-");
- bf.append("\n");
- Long getPolicyDenyRequestCounter = dati.getPolicyDenyRequestCounter(true);
- if(getPolicyDenyRequestCounter!=null)
- bf.append(getPolicyDenyRequestCounter);
- else
- bf.append("-");
- bf.append("\n");
- if(dati.oldPolicyDate!=null)
- bf.append(dati.oldPolicyDate.getTime());
- else
- bf.append("-");
- bf.append("\n");
- if(dati.oldPolicyRequestCounter!=null)
- bf.append(dati.oldPolicyRequestCounter);
- else
- bf.append("-");
- bf.append("\n");
- if(dati.oldPolicyCounter!=null)
- bf.append(dati.oldPolicyCounter);
- else
- bf.append("-");
- bf.append("\n");
-
- // dati iniziali degrado prestazionale
- if(dati.policyDegradoPrestazionaleDateTypeInterval!=null)
- bf.append(dati.policyDegradoPrestazionaleDateTypeInterval.getValue());
- else
- bf.append("-");
- bf.append("\n");
- if(dati.policyDegradoPrestazionaleDateInterval!=null)
- bf.append(dati.policyDegradoPrestazionaleDateInterval);
- else
- bf.append("-");
- bf.append("\n");
- if(dati.policyDegradoPrestazionaleDateCurrentInterval!=null)
- bf.append(dati.policyDegradoPrestazionaleDateCurrentInterval);
- else
- bf.append("-");
- bf.append("\n");
- if(dati.policyDegradoPrestazionaleDateWindowInterval!=null)
- bf.append(dati.policyDegradoPrestazionaleDateWindowInterval.getValue());
- else
- bf.append("-");
- bf.append("\n");
- if(dati.policyDegradoPrestazionaleRealtime!=null)
- bf.append(dati.policyDegradoPrestazionaleRealtime);
- else
- bf.append("-");
- bf.append("\n");
- // dati dinamici degrado prestazionale
- if(dati.policyDegradoPrestazionaleDate!=null)
- bf.append(dati.policyDegradoPrestazionaleDate.getTime());
- else
- bf.append("-");
- bf.append("\n");
- Long getPolicyDegradoPrestazionaleRequestCounter = dati.getPolicyDegradoPrestazionaleRequestCounter(true);
- if(getPolicyDegradoPrestazionaleRequestCounter!=null)
- bf.append(getPolicyDegradoPrestazionaleRequestCounter);
- else
- bf.append("-");
- bf.append("\n");
- Long getPolicyDegradoPrestazionaleCounter = dati.getPolicyDegradoPrestazionaleCounter(true);
- if(getPolicyDegradoPrestazionaleCounter!=null)
- bf.append(getPolicyDegradoPrestazionaleCounter);
- else
- bf.append("-");
- bf.append("\n");
- if(dati.oldPolicyDegradoPrestazionaleDate!=null)
- bf.append(dati.oldPolicyDegradoPrestazionaleDate.getTime());
- else
- bf.append("-");
- bf.append("\n");
- if(dati.oldPolicyDegradoPrestazionaleRequestCounter!=null)
- bf.append(dati.oldPolicyDegradoPrestazionaleRequestCounter);
- else
- bf.append("-");
- bf.append("\n");
- if(dati.oldPolicyDegradoPrestazionaleCounter!=null)
- bf.append(dati.oldPolicyDegradoPrestazionaleCounter);
- else
- bf.append("-");
-
- // data di registrazione/aggiornamento policy
- bf.append("\n");
- if(dati.updatePolicyDate!=null)
- bf.append(dati.updatePolicyDate.getTime());
- else
- bf.append("-");
-
- // data di configurazione gestore policy
- bf.append("\n");
- if(dati.gestorePolicyConfigDate!=null)
- bf.append(dati.gestorePolicyConfigDate.getTime());
- else
- bf.append("-");
-
-
- return bf.toString();
- }
-
- public static DatiCollezionati deserialize(String s) throws CoreException{
- DatiCollezionati dati = new DatiCollezionati(null, null);
- String [] tmp = s.split("\n");
- if(tmp==null){
- throw new CoreException("Wrong Format");
- }
- int oldLength = 27;
- int dataPolicyLength = oldLength +1;
- int dataConfigPolicyLength = dataPolicyLength +1;
- if(tmp.length!=oldLength && tmp.length!=dataPolicyLength && tmp.length!=dataConfigPolicyLength){
- throw new CoreException("Wrong Format (size: "+tmp.length+")");
- }
- for (int i = 0; i < tmp.length; i++) {
-
- // data di lettura delle informazioni
- if(i==0){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.cloneDate = new Date(Long.parseLong(tmpValue));
- }
- }
-
- // tipo di risorsa
- else if(i==1){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.tipoRisorsa = TipoRisorsa.toEnumConstant(tmpValue);
- }
- }
-
- // threads
- else if(i==2){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.activeRequestCounter = Long.parseLong(tmpValue);
- }
- }
-
- // data di creazione
- else if(i==3){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.creationDate = new Date(Long.parseLong(tmpValue));
- }
- }
-
-
- // dati iniziali
- else if(i==4){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.policyDateTypeInterval = UnitaTemporale.toEnumConstant(tmpValue);
- }
- }
- else if(i==5){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.policyDateInterval = Integer.parseInt(tmpValue);
- }
- }
- else if(i==6){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.policyDateCurrentInterval = Boolean.parseBoolean(tmpValue);
- }
- }
- else if(i==7){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.policyDateWindowInterval = TipoFinestra.toEnumConstant(tmpValue);
- }
- }
- else if(i==8){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.policyRealtime = Boolean.parseBoolean(tmpValue);
- }
- }
-
- // dati dinamici
- else if(i==9){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.policyDate = new Date(Long.parseLong(tmpValue));
- }
- }
- else if(i==10){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.policyRequestCounter = Long.parseLong(tmpValue);
- }
- }
- else if(i==11){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.policyCounter = Long.parseLong(tmpValue);
- }
- }
- else if(i==12){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.policyDenyRequestCounter = Long.parseLong(tmpValue);
- }
- }
- else if(i==13){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.oldPolicyDate = new Date(Long.parseLong(tmpValue));
- }
- }
- else if(i==14){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.oldPolicyRequestCounter = Long.parseLong(tmpValue);
- }
- }
- else if(i==15){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.oldPolicyCounter = Long.parseLong(tmpValue);
- }
- }
-
- // dati iniziali degrado prestazionale
- else if(i==16){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.policyDegradoPrestazionaleDateTypeInterval = UnitaTemporale.toEnumConstant(tmpValue);
- }
- }
- else if(i==17){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.policyDegradoPrestazionaleDateInterval = Integer.parseInt(tmpValue);
- }
- }
- else if(i==18){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.policyDegradoPrestazionaleDateCurrentInterval = Boolean.parseBoolean(tmpValue);
- }
- }
- else if(i==19){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.policyDegradoPrestazionaleDateWindowInterval = TipoFinestra.toEnumConstant(tmpValue);
- }
- }
- else if(i==20){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.policyDegradoPrestazionaleRealtime = Boolean.parseBoolean(tmpValue);
- }
- }
-
- // dati dinamici degrado prestazionale
- else if(i==21){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.policyDegradoPrestazionaleDate = new Date(Long.parseLong(tmpValue));
- }
- }
- else if(i==22){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.policyDegradoPrestazionaleRequestCounter = Long.parseLong(tmpValue);
- }
- }
- else if(i==23){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.policyDegradoPrestazionaleCounter = Long.parseLong(tmpValue);
- }
- }
- else if(i==24){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.oldPolicyDegradoPrestazionaleDate = new Date(Long.parseLong(tmpValue));
- }
- }
- else if(i==25){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.oldPolicyDegradoPrestazionaleRequestCounter = Long.parseLong(tmpValue);
- }
- }
- else if(i==26){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.oldPolicyDegradoPrestazionaleCounter = Long.parseLong(tmpValue);
- }
- }
-
- // data di registrazione/aggiornamento policy
- else if(i==27){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.updatePolicyDate = new Date(Long.parseLong(tmpValue));
- }
- }
-
- // data di configurazione gestore policy
- else if(i==28){
- String tmpValue = tmp[i].trim();
- if(tmpValue!=null && !"-".equals(tmpValue)){
- dati.gestorePolicyConfigDate = new Date(Long.parseLong(tmpValue));
- }
- }
- }
-
- if(dati.updatePolicyDate==null) {
- dati.updatePolicyDate = dati.creationDate; // per backward compatibility
- }
-
- return dati;
- }
-
- public static Long translateToKb(long counter) {
- return counter / 1024;
- }
- public static Long translateToSeconds(long counter) {
- return counter / 1000;
- }
-
- private static Date incrementDate(Date date,UnitaTemporale unitaTemporale,
- int intervallo, boolean consideraIntervalloAttuale) {
-
- int increment = 0;
- if(consideraIntervalloAttuale){
- if(intervallo>1){ // il fatto di riportare tutto allo ...59.999 vale già un intervallo se si deve considerare l'intervallo attuale.
- increment = (intervallo-1);
- }
- }
- else{
- increment = intervallo;
- }
-
- return DateUtils.incrementDate(date, unitaTemporale, increment);
- }
-
- private static Date decrementDate(Date date, UnitaTemporale unitaTemporale,
- int intervallo, boolean consideraIntervalloAttuale) {
-
- int increment = 0;
- if(consideraIntervalloAttuale){
- if(intervallo>1){ // il fatto di riportare tutto allo ...59.999 vale già un intervallo se si deve considerare l'intervallo attuale.
- increment = (intervallo-1);
- }
- }
- else{
- increment = intervallo;
- }
- if(increment!=0){
- increment = increment * (-1);
- }
-
- return DateUtils.incrementDate(date, unitaTemporale, increment);
- }
- }