edu.uoc.tcfj2ee_gatd.controlador.usuaris
Class ControladorUsuaris<U extends Usuari>

java.lang.Object
  extended by edu.uoc.tcfj2ee_gatd.controlador.EJBControlador
      extended by edu.uoc.tcfj2ee_gatd.controlador.usuaris.ControladorUsuaris<U>
Type Parameters:
U - el tipus dels usuaris administrats
Direct Known Subclasses:
ControladorClient, ControladorTecnics, ControladorTotsClients

public abstract class ControladorUsuaris<U extends Usuari>
extends EJBControlador

Controlador MVC genèric, que gestiona els usuaris d'una classe dada.

Conté el "bean" usuari que editen les pàgines JSF.

S'encarrega d'escriure els missatges a les pàgines. En particular, els deguts a les excepcions.

Author:
Jordi Tejero

Field Summary
(package private)  GestorUsuaris gUsuaris
          El gestor d'usuaris
 
Constructor Summary
ControladorUsuaris(java.lang.Class<U> classe)
          Constructor.
 
Method Summary
 java.lang.String accepta()
          Accepta els possibles canvis fets a l'usuari actual, actualitzant les seves dades al gestor de persistència.
 java.lang.String baixa()
          Dona de baixa l'usuari actual com a donat de baixa i escriu un missatge amb el resultat de l'operació
protected  void carrega(java.lang.String nomUsuari)
          Carrega un usuari pel seu nom d'idem.
protected  boolean fesAlta()
          Mira de donar d'alta l'usuari actual.
 java.lang.String filtra()
          Navegació web.
 U getActual()
          Accés a l'usuari actual.
 java.lang.String getBisClauAcces()
          Publica la repetició de la clau d'accés
abstract  FiltreAbs getFiltre()
          FiltreAbs que dona la sentència SQL font de la llista d'usuaris.
 java.util.List<javax.faces.model.SelectItem> getItemsTipusDI()
          Crea una llista de SelectItem amb tots els tipus de document d'identitad contemplats per l'aplicació.
 java.util.List<javax.faces.model.SelectItem> getItemsTipusDIMesTots()
          Crea una llista de SelectItem amb tots els tipus de document d'identitat contemplats, mes un, el primer, per a indicar "qualsevol tipus de document d'identitat".
protected  java.util.List<U> getLlista()
          Publica la llista d'usuaris, per a ús de les classes derivades.
 java.lang.String getNomUsuari()
          Dona el nom d'usuari de l'actual
 java.lang.Iterable<U> getSequencia()
          Publica la seqüència dels usuaris.
protected  ControladorSessio getSessio()
          Publica el controlador de sessió, per a ús de les classes derivades
 java.lang.String netejaFiltre()
          Navegació web.
 java.lang.String recarrega()
          Recarrega l'usuari actual i resta a la mateixa pàgina
(package private)  void setActual(U actual)
          Estableix l'usuari actual i actualitza en conseqüència la repetició de la seva clau d'accés.
 void setBisClauAcces(java.lang.String bisClauAccess)
          Estableix la repetició de la clau d'accés
 void setNomUsuari(java.lang.String nomUsuari)
          Estableix l'usuari actual a partir d'un nom d'usuari.
 void setSessio(ControladorSessio sessio)
          Permet la injecció del controlador de sessió
protected  boolean validaActual()
          Valida les dades de l'usuari actual.
 
Methods inherited from class edu.uoc.tcfj2ee_gatd.controlador.EJBControlador
getLogger, getMsg, getMsg1, pintaError, pintaError, pintaError, pintaError, pintaError, pintaInfo, pintaInfo, pintaInfoComp
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

gUsuaris

GestorUsuaris gUsuaris
El gestor d'usuaris

Constructor Detail

ControladorUsuaris

ControladorUsuaris(java.lang.Class<U> classe)
             throws GATDExcepcioUsuaris
Constructor. Crea un nou usuari actual i una nova llista d'usuaris, de la classe que s'indiqui

Parameters:
classe - la classe dels usuaris que gestionarà el controlador
Throws:
GATDExcepcioUsuaris - si s'ha produït un error al crear l'usuari actual
Method Detail

getFiltre

public abstract FiltreAbs getFiltre()
FiltreAbs que dona la sentència SQL font de la llista d'usuaris.

A implementar per les classes descendents.

Returns:
el filtre

setSessio

public void setSessio(ControladorSessio sessio)
Permet la injecció del controlador de sessió

Parameters:
sessio - el controlador de sessió

getSessio

protected ControladorSessio getSessio()
Publica el controlador de sessió, per a ús de les classes derivades

Returns:
el valor de l'atribut sessio

getNomUsuari

public java.lang.String getNomUsuari()
Dona el nom d'usuari de l'actual

Returns:
el nom d'usuari de this.actual, o null si aquest és null

setNomUsuari

public void setNomUsuari(java.lang.String nomUsuari)
Estableix l'usuari actual a partir d'un nom d'usuari. Evita recarregar l'usuari actual.

El cerca al gestor de persistència. De trobar-lo, el referencia amb this.actual. De no trobar-lo, referencia un de nou.

En qualsevol cas, estableix la copia de seva clau d'accés.

Parameters:
nomUsuari - el nom d'usuari

carrega

protected void carrega(java.lang.String nomUsuari)
Carrega un usuari pel seu nom d'idem. Si no el troba al gestor de persistència, en crea un de nou amb el nom indicat

En qualsevol cas, l'usuari actual ha estat modificat.

Parameters:
nomUsuari - el nom d'usuari. Pot ser null, amb la qual cosa es crearà un de nou.

recarrega

public java.lang.String recarrega()
Recarrega l'usuari actual i resta a la mateixa pàgina

Returns:
null

getActual

public U getActual()
Accés a l'usuari actual.

Returns:
l'usuari actual

setActual

void setActual(U actual)
Estableix l'usuari actual i actualitza en conseqüència la repetició de la seva clau d'accés.

Parameters:
usuari - el nou usuari

getBisClauAcces

public java.lang.String getBisClauAcces()
Publica la repetició de la clau d'accés

Returns:
el valor de l'atribut bisClauAcces

setBisClauAcces

public void setBisClauAcces(java.lang.String bisClauAccess)
Estableix la repetició de la clau d'accés

Parameters:
bisClauAcces - el nou valor de l'atribut bisClauAcces

getSequencia

public java.lang.Iterable<U> getSequencia()
Publica la seqüència dels usuaris. Si no existeix, la crea a partir del filtre

Returns:
Iterable que recorre la llista d'usuaris.

getItemsTipusDI

public java.util.List<javax.faces.model.SelectItem> getItemsTipusDI()
Crea una llista de SelectItem amb tots els tipus de document d'identitad contemplats per l'aplicació.

Returns:
la llista creada

getItemsTipusDIMesTots

public java.util.List<javax.faces.model.SelectItem> getItemsTipusDIMesTots()
Crea una llista de SelectItem amb tots els tipus de document d'identitat contemplats, mes un, el primer, per a indicar "qualsevol tipus de document d'identitat".

Returns:
la llista creada

getLlista

protected java.util.List<U> getLlista()
Publica la llista d'usuaris, per a ús de les classes derivades. Si no existeix, la crea a partir del filtre

Returns:
La llista d'usuaris.

filtra

public java.lang.String filtra()
Navegació web. Aplicació de filtre i recarregar la pàgina actual.

Returns:
null

netejaFiltre

public java.lang.String netejaFiltre()
Navegació web. Neteja el filtre i recarrega la pàgina actual amb el llistat sense filtrar.

Returns:
null

accepta

public java.lang.String accepta()
Accepta els possibles canvis fets a l'usuari actual, actualitzant les seves dades al gestor de persistència.

Si s'ha produït un conflicte d'edicions, escriu un missatge d'error.

Si té èxit, escriu un missatge informatiu.

Returns:
null per ha indicar que es torni ha carregar la fitxa amb les dades actualitzades, llevat si s'ha canviat l'idioma, en que es torna la URI de la pàgina actual, per a fer que es regeneri.

validaActual

protected boolean validaActual()
Valida les dades de l'usuari actual. Si no son vàlides, afegeix missatges d'error als components JSF corresponents.

Verifica que:

  1. El nom d'usuari i la clau fan servir sols caràcters del conjunt [a-zA-Z_0-9#]. Altres donen problemes per a fer "login".
  2. La clau d'accés coincideix amb la seva repetició.

Returns:
true si i sols les dades entrades passen les verficacions anteriors.

fesAlta

protected boolean fesAlta()
Mira de donar d'alta l'usuari actual. Si ja hi havia un usuar amb el mateix nom o document d'identitat, mostra un missatge d'error i retorna null.

Returns:
true si i sols si l'usuari s'ha donat d'alta normalment

baixa

public java.lang.String baixa()
Dona de baixa l'usuari actual com a donat de baixa i escriu un missatge amb el resultat de l'operació

Returns:
null, per a la romandre a la mateixa pàgina, tret si el usuari donat de baixa és el de la sessió, que va a la pàgina de comiat.