Package it.rol.bean

Class MeasureBean

java.lang.Object
it.rol.bean.CodeBean
it.rol.bean.MeasureBean
All Implemented Interfaces:
Serializable

public class MeasureBean extends CodeBean

Classe che serve a rappresentare una misura di prevenzione (o mitigazione) del rischio corruttivo. Created on Tue 19 Mar 2024 02:11:05 PM CET

Author:
Giovanroberto Torre
See Also:
  • Constructor Details

    • MeasureBean

      public MeasureBean()

      Override del Costruttore di Default

      Inizializza le variabili di classe a valori convenzionali

    • MeasureBean

      public MeasureBean(CodeBean o) throws AttributoNonValorizzatoException

      Costruttore parametrizzato.

      Parameters:
      o - oggetto di cui propagare gli attributi
      Throws:
      AttributoNonValorizzatoException - se un dato obbligatorio non e' stato valorizzato nel parametro
  • Method Details

    • compareTo

      public int compareTo(MeasureBean o)
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class CodeBean
    • getCodice

      public String getCodice()
      Restituisce il codice della misura
      Returns:
      codice - codice della misura
    • setCodice

      public void setCodice(String codice)
      Imposta il codice di una misura
      Parameters:
      codice - - codice misura da impostare
    • getOnerosa

      public String getOnerosa()
      Risponde alla domanda: "Comporta spese?"
      Returns:
      comportaSpese - risposta alla sostenibilità economica
    • setOnerosa

      public void setOnerosa(String comportaSpese)
      Imposta la specificità economica della misura
      Parameters:
      comportaSpese - risposta in merito all'onerosità della misura
    • getOnerosa

      public String getOnerosa(String comportaSpese)
      Trasforma il valore convenzionale "ND" ricevuto in un'etichetta piú esplicita, lasciando inalterati gli altri valori.
      Parameters:
      comportaSpese - la risposta alla domanda "Comporta spese?" memorizzata nel db
      Returns:
      String - stringa ben formattata in caso il valore sia una sigla convenzionale
    • getUso

      public int getUso()
      Restituisce il numero di volte in cui la misura è stata applicata ai rischi nel contesto dei rispettivi processi (nella rilevazione corrente).
      Returns:
      int - byte castato a int rappresentante la "popolarità" della misura
    • setUso

      public void setUso(int uso)
      Imposta il numero di volte che la misura corrente è stata applicata a rischi nella rilevazione corrente
      Parameters:
      uso - la "popolarità" della misura
    • getDataUltimaModifica

      public Date getDataUltimaModifica()
      Restituisce la data dell'ultima modifica della misura
      Returns:
      java.util.Date - data dell'ultima modifica
    • setDataUltimaModifica

      public void setDataUltimaModifica(Date dataUltimaModifica)
      Imposta la data dell'ultima della misura
      Parameters:
      dataUltimaModifica - data ultima modifica da impostare
    • getOraUltimaModifica

      public Time getOraUltimaModifica()
      Restituisce l'ora dell'ultima modifica di una misura
      Returns:
      java.sql.Time - ora dell'ultima modifica
    • setOraUltimaModifica

      public void setOraUltimaModifica(Time oraUltimaModifica)
      Imposta l'ora dell'ultima modifica di una misura
      Parameters:
      oraUltimaModifica - ora ultima modifica da impostare
    • getAutoreUltimaModifica

      public int getAutoreUltimaModifica()
      Restituisce l'autore dell'ultima modifica di una misura
      Returns:
      int - autore ultima modifica
    • setAutoreUltimaModifica

      public void setAutoreUltimaModifica(int autoreUltimaModifica)
      Imposta l'autore dell'ultima modifica di una misura
      Parameters:
      autoreUltimaModifica - autore ultima modifica da impostare
    • getCarattere

      public CodeBean getCarattere() throws AttributoNonValorizzatoException
      Restituisce un oggetto CodeBean che rappresenta il carattere della misura
      Returns:
      carattere - carattere della misura
      Throws:
      AttributoNonValorizzatoException - eccezione che viene sollevata se questo oggetto viene usato e non è stato valorizzato (è un dato obbligatorio)
    • setCarattere

      public void setCarattere(CodeBean carattere)
      Imposta il carattere con l'oggetto CodeBean passato
      Parameters:
      carattere - - il carattere della misura
    • getRilevazione

      public CodeBean getRilevazione() throws AttributoNonValorizzatoException
      Restituisce un oggetto CodeBean che rappresenta la rilevazione della misura
      Returns:
      rilevazione - rilevazione che ha rilevato la misura
      Throws:
      AttributoNonValorizzatoException - eccezione che viene sollevata se questo oggetto viene usato e rilevazione non è stato valorizzato (è un dato obbligatorio)
    • setRilevazione

      public void setRilevazione(CodeBean rilevazione)
      Imposta rilevazione con l'oggetto CodeBean passato
      Parameters:
      rilevazione - - rilevazione del processo da impostare
    • getTipologie

      public ArrayList<CodeBean> getTipologie()
      Restituisce il vettore contenente i tipi della misura
      Returns:
      tipologie - ArrayList contenente le tipologie della misura
    • setTipologie

      public void setTipologie(ArrayList<CodeBean> tipologie)
      Imposta le tipologie della misura
      Parameters:
      tipologie - - ArrayList da impostare
    • getCapofila

      public ArrayList<DepartmentBean> getCapofila()
      Restituisce il vettore contenente le strutture capofila. La vera capofila è l'ultima dell'elenco; quelle che la precedono sono i suoi ascendenti.
      Returns:
      strutture - ArrayList contenente le strutture capofila
    • setCapofila

      public void setCapofila(ArrayList<DepartmentBean> capofila)
      Imposta le strutture capofila
      Parameters:
      capofila - - ArrayList da impostare
    • getStruttura

      public DepartmentBean getStruttura(ItemBean struttura)
      Trasforma una struttura, che può essere o di tipo capofila o di tipo gregaria (cioè può essere stata associata alla misura come sua struttura capofila o sua struttura gregaria), da ItemBean a DepartmentBean.
      1. Se la struttura ricevuta in argomento sotto forma di ItemBean è una capofila, allora la struttura di tipo DepartmentBean restituita conterrà internamente tutta la gerarchia sottostante. La gerarchia viene ricostruita a partire dagli attributi valorizzati opportunamente dell'ItemBean ricevuto.
      2. Se invece la struttura ricevuta è gregaria (anche detta "struttura coinvolta" o "struttura associata"), allora la struttura restituita corrisponderà ad una semplice conversione di tipo, con relativo travaso semplice dei valori degli attributi.
      Parameters:
      struttura - - struttura destrutturata da travasare
      Returns:
      DepartmentBean - struttura travasata, contenente anche la gerarchia delle strutture figlie se capofila
    • getCapofila

      public ArrayList<DepartmentBean> getCapofila(DepartmentBean capofilaTree)
      Trasforma una struttura capofila contenente al proprio interno la gerarchia delle strutture figlie, in una lista ordinata di tipo vettoriale, in cui ogni nodo viene collocato allo stesso livello. Dal punto di vista del registro delle misure, l'ultima foglia, quindi l'ultimo elemento della lista, è l'elemento piú significativo,la "reale" capofila, rappresentando i nodi precedenti soltanto la memorizzazione della sua gerarchia.
      Parameters:
      capofilaTree - - la struttura gerarchica di struttura capofila
      Returns:
      ArrayList<DepartmentBean> - la struttura capofila in cui i nodi sono stati trasformati in elementi di una lista
    • getCapofila2

      public ArrayList<DepartmentBean> getCapofila2()
      Restituisce il vettore contenente le strutture capofila aggiuntive
      Returns:
      strutture - ArrayList contenente le strutture capofila aggiuntive
    • setCapofila2

      public void setCapofila2(ArrayList<DepartmentBean> capofila2)
      Imposta le strutture che sono capofila aggiuntive
      Parameters:
      capofila2 - - ArrayList da impostare
    • getCapofila3

      public ArrayList<DepartmentBean> getCapofila3()
      Restituisce il vettore contenente le strutture capofila opzionali
      Returns:
      strutture - ArrayList contenente le strutture capofila opzionali
    • setCapofila3

      public void setCapofila3(ArrayList<DepartmentBean> capofila3)
      Imposta le strutture che sono capofila opzionali
      Parameters:
      capofila3 - - ArrayList da impostare
    • getGregarie

      public ArrayList<DepartmentBean> getGregarie()
      Restituisce il vettore contenente le strutture gregarie
      Returns:
      strutture - ArrayList contenente le strutture gregarie
    • setGregarie

      public void setGregarie(ArrayList<DepartmentBean> gregarie)
      Imposta le strutture che partecipano alla misura in qualità di gregarie
      Parameters:
      gregarie - - ArrayList da impostare
    • getObiettivo

      public String getObiettivo()
      Restituisce l'obiettivo della misura
      Returns:
      obiettivo - Stringa contenente i dettagli dell'obiettivo che la misura intende realizzare
    • setObiettivo

      public void setObiettivo(String obiettivo)
      Imposta l'obiettivo della misura
      Parameters:
      obiettivo - - obiettivo della misura, da impostare
    • getRuolo

      public String getRuolo()
      Restituisce un'informazione relativa a un ruolo (p.es. un ruolo rivestito dalla misura oppure il ruolo rivestito da una struttura collegata alla misura nei confronti della misura stessa).
      Returns:
      ruolo - Stringa contenente i dettagli di un ruolo
    • setRuolo

      public void setRuolo(String ruolo)
      Imposta un ruolo correlato alla misura corrente
      Parameters:
      ruolo - - ruolo attinente alla misura, da impostare
    • isDettagli

      public boolean isDettagli()
      Restituisce true se la misura corrente è sottoposta a monitoraggio, ovvero se sono presenti i dettagli relativi al monitoraggio per la misura considerata.
      Returns:
      dettagli - true se la misura e' sottoposta a monitoraggio, false altrimenti
    • setDettagli

      public void setDettagli(boolean dettagli)
      Imposta il flag specificante se la misura ha dettagli di monitoraggio associati.
      Parameters:
      dettagli - - flag specificante la presenza di dettagli relativi al monitoraggio
    • getDataMonitoraggio

      public Date getDataMonitoraggio()
      Restituisce la data di ultima modifica dei DETTAGLI del monitoraggio collegati alla misura corrente. Se i dettagli non sono stati mai aggiornati, la data è quella di inserimento dei dettagli; altrimenti, la data è quella dell'ultimo aggiornamento dei dettagli stessi. Se i dettagli non sono mai stati inseriti, la data è quella di inserimento/ultima modifica della misura stessa.
      Returns:
      dataMonitoraggio - la data di inserimento o ultima modifica dei DETTAGLI del monitoraggio
    • setDataMonitoraggio

      public void setDataMonitoraggio(Date dataMonitoraggio)
      Imposta la data di monitoraggio, che coincide con la data di ultima modifica della misura. ATTENZIONE: i dettagli del monitoraggio sono un prerequisito per la misurazione ma non hanno niente altro a che vedere con la misurazione stessa. L'oggetto che incapsula i dati della misurazione è MeasurementBean non questo MeasureBean, che incapsula i dati della misura.
      Parameters:
      dataMonitoraggio - - data in cui sono stati inseriti i dettagli del monitoraggio, da impostare
    • getDataScadenza

      public Date getDataScadenza()
      Restituisce la data di scadenza della misura
      Returns:
      java.util.Date - data di scadenza della misura
    • setDataScadenza

      public void setDataScadenza(Date dataScadenza)
      Imposta la data di scadenza della misura
      Parameters:
      dataScadenza - data scadenza da impostare
    • getFasi

      public ArrayList<ActivityBean> getFasi()
      Restituisce l'elenco delle fasi di attuazione
      Returns:
      fasi - le fasi di attuazione della misura
    • setFasi

      public void setFasi(ArrayList<ActivityBean> fasi)
      Imposta lista delle fasi di attuazione della misura
      Parameters:
      fasi - - le fasi da impostare
    • getTotIndicatori

      public byte getTotIndicatori()
      Conta quanti indicatori in totale insistono sulle varie fasi di attuazione della misura corrente
      Returns:
      totIndicatori - un intero piccolo rappresentante il numero di indicatori complessivo della misura
    • getTotMisurazioni

      public byte getTotMisurazioni()
      Conta quante misurazioni in totale sono effettuate sugli indicatori collegati alle varie fasi di attuazione della misura corrente
      Returns:
      totMisurazioni - un intero piccolo rappresentante il numero di misurazioni applicate agli indicatori delle fasi della misura
    • getMonitorata

      public boolean getMonitorata()
      Verifica se ogni indicatore collegato ad ogni fase ha ricevuto almeno una misurazione.
      1. Se questo è vero, allora la misura corrente può essere considerata "monitorata" e il metodo restituisce 'true';
      2. altrimenti, se almeno un indicatore non ha ricevuto alcuna misurazione, la misura non può essere considerata "monitorata" e il presente metodo restituisce 'false'.
      La definizione di "misura monitorata" è ben formalizzata:
      una /misura monitorata/ è una misura di mitigazione suddivisa in fasi di attuazione, su cui è stato applicato almeno un indicatore che è stato misurato almeno una volta.
      In altri termini:
      Per definire una misura di mitigazione come misura monitorata è necessario e sufficiente che sia stato inserito almeno un indicatore su una delle fasi della misura e che lo stesso sia stato misurato almeno una volta.
      Nel contesto di una misura, potrebbero quindi esservi anche alcune fasi prive di indicatori e ciò nonostante la misura, se gli altri indicatori hanno ricevuto almeno una misurazione, sarà considerata "monitorata"; ciò per via del fatto che non sempre tutte le fasi di una misura hanno un indicatore associato, proprio da regole di business.
      Come si vede, non è possibile trarre conclusioni sulla completezza del monitoraggio di una misura confrontando banalmente se il totale degli indicatori (getTotIndicatori()) è uguale al totale delle misurazioni (getTotMisurazioni()) perché un numero di misurazioni elevato non garantisce che tutti gli indicatori siano stati misurati (p.es., una misura potrebbe avere: 3 fasi, 2 indicatori e 2 misurazioni fatte solo sul primo indicatore; il fatto che il numero di misurazioni in questo caso sia uguale al numero di indicatori non implica che tutti gli indicatori abbiano ricevuto una misurazione). Alcuni casi d'uso:
      • Misura A ha 2 fasi, a1 e a2; solo a1 ha un indicatore e questo ha ricevuto una misurazione: la misura A risulta "monitorata".
      • Misura B ha 3 fasi, b1, b2 e b3; tutte e 3 le fasi hanno un indicatore ciascuno, quindi i1 per b1, i2 per b2, i3 per b3; i1 e i2 hanno ricevuto rispettivamente 1 e 2 misurazioni, mentre i3 non ha ricevuto misurazioni: la misura risulta "non monitorata".
      • Misura C ha 2 fasi ma nessun indicatore: la misura risulta "non misurabile", perché potrebbe anche essere corretto non prevedere indicatori su una misura in presenza di situazioni particolari (p.es. "verifica sul pantouflage" che potrebbe restare a lungo dotata di dettagli ma priva di indicatori in quanto non facilmente misurabile. Siccome il metodo restituisce soltanto un valore boolean, non è possibile discriminare tra "misura non monitorata" e "misura non misurabile" (o "non monitorabile"), ma possono essere sviluppati ulteriori strati di codice per intercettare a monte questo caso. (Per ulteriori dettagli, v. analisi dei requisiti).

      ATTENZIONE: questo calcolo indica solo se la misura ha misurazioni, non se i target sono stati raggiunti, quindi permette solo di stabilire se la misura è monitorata, non se è stata applicata. Pertanto, ha un'utilità relativa e il calcolo delle misure applicate deve essere effettuato tramite diverso e pi&uagrave; raffinato algoritmo.
      Returns:
      boolean - se vero la misura è monitorata, se falso è non monitorata