ssbm.presentation.filters
Class Filter

java.lang.Object
  extended by ssbm.presentation.filters.Filter
All Implemented Interfaces:
java.lang.Comparable<Filter>
Direct Known Subclasses:
CurrencyFilter, DateFilter, EmptyFieldFilter, TextContentFilter, TextEqualityFilter, TextLengthFilter

abstract class Filter
extends java.lang.Object
implements java.lang.Comparable<Filter>

Questa classe rappresenta un generico filtro dei dati riportati in una schermata dell’interfaccia utente e da inviare al server per l’elaborazione.
La generalità della classe è garantita dall'esistenza dei seguenti metodi astratti:

Author:
Salvatore Piccione

Field Summary
protected  boolean fieldsChanged
          Flag booleano che indica se i campi filtrati sono stati modificati.
protected  FieldsContainer fieldsTable
          Il dizionario dei campi da filtrare.
protected  FieldMetadata[] metadataList
          Elenco dei metadati dei campi della schermata corrente che ospitano dei dati aventi un tipo gestito da questo filtro.
 
Constructor Summary
protected Filter()
          Inizializza i campi d'esemplare in modo tale che rappresentino un filtro privo del dizionario di campi da filtrare.
 
Method Summary
private  FieldMetadata[] buildMetadataList()
          Restituisce l'elenco di metadati relativi ai campi di fieldsTable che hanno un tipo gestito da questo filtro.
 int compareTo(Filter that)
          Confronta questa istanza con un'altra.
 boolean equals(java.lang.Object obj)
           
(package private) abstract  boolean execute()
          Esegue il filtraggio dei dati contenuti nei campi gestiti da questo filtro.
(package private) abstract  int getPriority()
          Restituisce la priorità di esecuzione di un filtro.
(package private)  FieldsContainer getResult()
          Restituisce il dizionario dei campi filtrati.
(package private) abstract  java.util.Set<DataTypes> getTypesSet()
          Restituisce l'insieme dei tipi di dati gestiti da questo filtro.
(package private)  boolean isExecutable()
          Stabilisce se questo filtro è pronto per essere eseguito.
(package private)  void setFieldsTable(FieldsContainer fieldsToBeChecked)
          Imposta il dizionario dei campi da filtrare e popola l'elenco dei metadati dei filtri che hanno un tipo gestito da questo filtro.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fieldsTable

protected FieldsContainer fieldsTable
Il dizionario dei campi da filtrare.


fieldsChanged

protected boolean fieldsChanged
Flag booleano che indica se i campi filtrati sono stati modificati.


metadataList

protected FieldMetadata[] metadataList
Elenco dei metadati dei campi della schermata corrente che ospitano dei dati aventi un tipo gestito da questo filtro.

Constructor Detail

Filter

protected Filter()
Inizializza i campi d'esemplare in modo tale che rappresentino un filtro privo del dizionario di campi da filtrare.

Method Detail

setFieldsTable

void setFieldsTable(FieldsContainer fieldsToBeChecked)
              throws java.lang.IllegalArgumentException
Imposta il dizionario dei campi da filtrare e popola l'elenco dei metadati dei filtri che hanno un tipo gestito da questo filtro.
Il dizionario dei campi è utilizzato come copia attiva: le eventuali modifiche apportate durante il filtraggio riguardano direttamente l'esemplare passato come parametro.

Parameters:
fieldsToBeChecked - il dizionario dei campi da filtrare.
Throws:
java.lang.IllegalArgumentException - se fieldsToBeChecked è null.

buildMetadataList

private FieldMetadata[] buildMetadataList()
Restituisce l'elenco di metadati relativi ai campi di fieldsTable che hanno un tipo gestito da questo filtro.

Returns:
l'elenco dei metadati dei campi che hanno un tipo gestito da questo filtro.

execute

abstract boolean execute()
                  throws FiltrationException
Esegue il filtraggio dei dati contenuti nei campi gestiti da questo filtro.

Returns:
true se il filtraggio ha modificato il contenuto dei campi, false altrimenti.
Throws:
FiltrationException - nel caso in cui il filtraggio rilevi degli errori nei dati o se non sono stati impostati il dizionario dei campi e l'elenco dei metadati di riferimento.
See Also:
isExecutable(), setFieldsTable(FieldsContainer)

getPriority

abstract int getPriority()
Restituisce la priorità di esecuzione di un filtro.
Ciascuna sottoclasse di Filter deve avere una priorità diversa dalle altre sottoclassi. Le istanze di una stessa sottoclasse devono avere la stessa priorità.
Data una sottoclasse F con priorità x:La priorità deve essere un NUMERO INTERO NON NEGATIVO.

Returns:
la priorità di esecuzione.

getTypesSet

abstract java.util.Set<DataTypes> getTypesSet()
Restituisce l'insieme dei tipi di dati gestiti da questo filtro.
Tutte le istanze di una sottoclasse di Filter devono restituire un insieme con lo stesso contenuto. L'insieme non è modificabile.

Returns:
l'insieme dei tipi di dati ai quali si applica il filtro.

getResult

FieldsContainer getResult()
Restituisce il dizionario dei campi filtrati.

Returns:
il dizionario dei campi filtrati.

compareTo

public int compareTo(Filter that)
Confronta questa istanza con un'altra. Il confronto consiste in questa semplice sottrazione:
this.getPriority() - that.getPriority().

Specified by:
compareTo in interface java.lang.Comparable<Filter>
Parameters:
that - l'istanza con la quale confrontare questa.
Returns:
un numero
  • minore di 0 se this.getPriority() < that.getPriority();
  • maggiore di 0 se this.getPriority() > that.getPriority();
  • uguale a 0 se this.getPriority() == that.getPriority();

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object

isExecutable

boolean isExecutable()
Stabilisce se questo filtro è pronto per essere eseguito.

Returns:
true se fieldsTable e metadataList sono entrambi diversi da null, false altrimenti.