edu.uoc.tcfj2ee_gatd.controlador
Class FiltreAbs

java.lang.Object
  extended by edu.uoc.tcfj2ee_gatd.controlador.FiltreAbs
Direct Known Subclasses:
FiltreClients, FiltrePeticions, FiltreTecnics

public abstract class FiltreAbs
extends java.lang.Object

Generalització d'un filtre que restringeix el llistat d'un tipus d'entitats.

Ofereix algunes facilitats per a muntar frases JPQL a les seves descendents.

Author:
Jordi Tejero

Constructor Summary
FiltreAbs()
          Constructor.
 
Method Summary
protected  java.lang.String getEnumStr(java.lang.Enum<?> element)
          Dona la cadena que representa un element de tipus enumerat E, amb el nom de la seva classe, T, i el del element.
abstract  java.lang.String getJPQL()
          A implementar per les classes descents, donarà la frase JPQL corresponent a l'aplicació del filtre al conjunt de tots els usuaris de la classe
protected  com.sun.istack.logging.Logger getLogger()
          Accessor de lectura de l'atribut logger
protected  java.lang.String getSentencia()
          Dona la sentència JPQL muntada
protected abstract  void ini()
          Funció d'inialització, implementada per les classes descendents.
 void neteja()
          Neteja el filtre, cridant la funció d'inicialització.
protected  FiltreAbs netejaJPQL()
          Neteja la sentència JPQL, eliminant les clàusules SELECT i WHERE.
protected  FiltreAbs posaAnd(java.lang.CharSequence fragment)
          Afegeix una restricció AND a la clàusula WHERE
protected  FiltreAbs posaAnd(java.lang.String atribut, java.lang.Enum<?> element)
          Afegiment condicionat d'una restricció que demana igualtat d'un atribut amb un element E d'un tipus enumerat T.
protected  FiltreAbs posaAnd(java.lang.String atribut, java.lang.String cadena)
          Afegiment condicionat d'una restricció AND a la clàusula WHERE, del tipus [atribut] = '[cadena]'.
protected  FiltreAbs posaAndIn(java.lang.String atribut, java.lang.Iterable<java.lang.String> valors)
          Afegit condicionat d'una restricció que demana que un atribut prengui un valor entre un seguit de valors cadena.
protected  FiltreAbs posaAndLike(java.lang.String atribut, java.lang.String patro)
          Afegiment condicionat d'una restricció al filtre, que demana que un atribut A de text, encaixi en un patró LIKE d'SQL, P.
protected  FiltreAbs posaAndNo(java.lang.String atribut, java.lang.Enum<?> element)
          Afegiment condicionat d'una restricció que demana desigualtat d'un atribut amb un element E d'un tipus enumerat T.
protected  FiltreAbs posaSelect(java.lang.String fragment)
          Afegeix un fragment a la clàusula SELECT
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FiltreAbs

public FiltreAbs()
Constructor. Crea l'objete i l'inicialitza

Method Detail

netejaJPQL

protected FiltreAbs netejaJPQL()
Neteja la sentència JPQL, eliminant les clàusules SELECT i WHERE. Els atributs que determinen les condicions romanen.

Returns:
this

getSentencia

protected java.lang.String getSentencia()
Dona la sentència JPQL muntada

Returns:
la concatenació de les clàusules SELECT i WHERE, separades per un salt de línia

posaSelect

protected FiltreAbs posaSelect(java.lang.String fragment)
Afegeix un fragment a la clàusula SELECT

Parameters:
fragment - el fragment a afegir

posaAnd

protected FiltreAbs posaAnd(java.lang.CharSequence fragment)
Afegeix una restricció AND a la clàusula WHERE

Parameters:
fragment - fragment JPQL que dona la condició
Returns:
this

posaAnd

protected FiltreAbs posaAnd(java.lang.String atribut,
                            java.lang.String cadena)
Afegiment condicionat d'una restricció AND a la clàusula WHERE, del tipus [atribut] = '[cadena]'. Si [cadena] es null o la cadena buida, el mètode no té cap efecte.

Parameters:
atribut - el nom de l'atribut sobre el que s'imposa la condició
cadena - el valor que ha de prendre l'atribut. Si és null o "", no s'afegeix cap restricció al filtre.
Returns:
this

posaAnd

protected FiltreAbs posaAnd(java.lang.String atribut,
                            java.lang.Enum<?> element)
Afegiment condicionat d'una restricció que demana igualtat d'un atribut amb un element E d'un tipus enumerat T.

En concret, afegeix a la clàusula WHERE de la sentència, un condició AND del tipus [atribut] = [nom canònic de T].[nom d'E].

Si E es null el mètode no té cap efecte.

Parameters:
atribut - el nom de l'atribut sobre el que s'imposa la condició
element - l'element de tipus enumerat, E. Si és null, no s'afegeix cap restricció al filtre.
Returns:
this

posaAndNo

protected FiltreAbs posaAndNo(java.lang.String atribut,
                              java.lang.Enum<?> element)
Afegiment condicionat d'una restricció que demana desigualtat d'un atribut amb un element E d'un tipus enumerat T.

En concret, afegeix a la clàusula WHERE de la sentència, un condició AND del tipus [atribut] <> [nom canònic de T].[nom d'E].

Si E es null el mètode no té cap efecte.

Parameters:
atribut - el nom de l'atribut sobre el que s'imposa la condició
element - l'element de tipus enumerat, E. Si és null, no s'afegeix cap restricció al filtre.
Returns:
this

getEnumStr

protected java.lang.String getEnumStr(java.lang.Enum<?> element)
Dona la cadena que representa un element de tipus enumerat E, amb el nom de la seva classe, T, i el del element.

Útil per a muntar condicions JPQL.

Parameters:
element - el element de tipus enumerat E
Returns:
cadena del tipus [nom canònic de T].[nom d'E]

posaAndIn

protected FiltreAbs posaAndIn(java.lang.String atribut,
                              java.lang.Iterable<java.lang.String> valors)
Afegit condicionat d'una restricció que demana que un atribut prengui un valor entre un seguit de valors cadena.

Si atribut == null o valors == null, no afegeix cap restricció al filtre.

Parameters:
atribut - el nom de l'atribut
valors - el seguit de valors cadena
Returns:
this

posaAndLike

protected FiltreAbs posaAndLike(java.lang.String atribut,
                                java.lang.String patro)
Afegiment condicionat d'una restricció al filtre, que demana que un atribut A de text, encaixi en un patró LIKE d'SQL, P.

Si P != null, afegeix a la clàusula WHERE una condició AND del tipus [A] LIKE [P].

Si P == null o P == "", la funció no té cap efecte.

Parameters:
atribut - el nom, A, de l'atribut que ha d'encaixar en el patró
patro - el patró LIKE, P.
Returns:
this

getLogger

protected com.sun.istack.logging.Logger getLogger()
Accessor de lectura de l'atribut logger

Returns:
el valor de l'atribut logger

neteja

public void neteja()
Neteja el filtre, cridant la funció d'inicialització. Els atributs de la subclasse que determinen les condicions que imposa el filtre, hauràn estat anul·lats.


getJPQL

public abstract java.lang.String getJPQL()
A implementar per les classes descents, donarà la frase JPQL corresponent a l'aplicació del filtre al conjunt de tots els usuaris de la classe

Returns:
sentència JPQL que troba els usuaris que passen el filtre

ini

protected abstract void ini()
Funció d'inialització, implementada per les classes descendents.

Invocada pel constructor i per la funció de neteja del filtre