edu.uoc.tcfj2ee_gatd.model.usuaris
Class GestorUsuaris

java.lang.Object
  extended by edu.uoc.tcfj2ee_gatd.model.comu.EJBGestor
      extended by edu.uoc.tcfj2ee_gatd.model.usuaris.GestorUsuaris

public class GestorUsuaris
extends EJBGestor

Session Bean que implementa la lògica de negoci del package

Author:
Jordi Tejero

Constructor Summary
GestorUsuaris()
           
 
Method Summary
<E extends Usuari>
E
actualitza(E usuari)
          Actualitza un usuari al gestor de persistència.
<U extends Usuari>
U
alta(U nou)
          Persistència d'un nou usuari.
 DistrictePostal altaDP(java.lang.String codi)
          Alta d'un districte postal donat pel seu codi.
 void baixa(Usuari u)
          Dona de baixa un usuari.
<U extends Usuari>
U
cerca(java.lang.Class<U> cla, java.lang.String nomUsuari)
          Cerca un usuari d'una classe dada, pel seu nom
 Seu cercaSeu(java.lang.String codiSeu)
          Cerca una seu pel seu codi
 int comptaTecnicsActius(Seu seu)
          Compta el nombre de tècnics actius que hi ha a una seu
 DistrictePostal donamDP(java.lang.String codi)
          Troba un districte postal pel seu codi.
 java.lang.Iterable<Seu> getSeus()
          Dona la seqüència de totes les seus d'alta
 java.util.List<DistrictePostal> llistaDP()
          Dona la llista de tots els districtes postals
 void modificaSituacioTecnics(java.lang.String[] marcats, long[] versions)
          Implementació del cas d'ús "Modifica Situació Tècnics".
<U extends Usuari>
U
troba(java.lang.Class<U> k, java.lang.String nomUsuari)
          Cerca un usuari pel seu nom d'usuari, amb exigència d'existència
 
Methods inherited from class edu.uoc.tcfj2ee_gatd.model.comu.EJBGestor
alta, getEM, getLogger, llista, llistaNominal
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GestorUsuaris

public GestorUsuaris()
Method Detail

altaDP

public DistrictePostal altaDP(java.lang.String codi)
Alta d'un districte postal donat pel seu codi. No l'assigna a cap seu

Parameters:
codi - el codi postal
Returns:
el nou districte postal

donamDP

public DistrictePostal donamDP(java.lang.String codi)
                        throws GATDExcepcioExecucio
Troba un districte postal pel seu codi. Si no existeix, el dona d'alta sense assignar-li cap seu

Parameters:
codi - el codi postal
Returns:
el districte postal
Throws:
GATDExcepcioExecucio - si codi es null

troba

public <U extends Usuari> U troba(java.lang.Class<U> k,
                                  java.lang.String nomUsuari)
                       throws GATDExcepcioUsuaris
Cerca un usuari pel seu nom d'usuari, amb exigència d'existència

Parameters:
nomUsuari - el nom d'usuari de l'usuari
Returns:
l'usuari amb el nom cercat
Throws:
GATDExcepcioUsuaris - si no hi ha cap usuari amb el nom cercat

llistaDP

public java.util.List<DistrictePostal> llistaDP()
Dona la llista de tots els districtes postals

Returns:
la llista del districtes

alta

public <U extends Usuari> U alta(U nou)
                      throws GATDExcepcioUsuaris
Persistència d'un nou usuari. Si ja existia un amb el mateix nom, excepció.

Parameters:
nou - usuari a persistir
Returns:
el mateix usuari nou
Throws:
GATDExcepcioUsuaris - si ja existeix un usuari amb el mateix nom que nou, o amb el mateix document d'identitat

baixa

public void baixa(Usuari u)
           throws GATDExcepcioUsuaris
Dona de baixa un usuari. Estableix la seva data de baixa i el guarda al gestor de persistència

Parameters:
u - l'usuari a donar de baixa
Throws:
GATDExcepcioUsuaris - cas d'error

cerca

public <U extends Usuari> U cerca(java.lang.Class<U> cla,
                                  java.lang.String nomUsuari)
Cerca un usuari d'una classe dada, pel seu nom

Type Parameters:
U - tipus de la classe de l'usuari
Parameters:
cla - la classe de l'usuari que es cerca
nomUsuari - el nom d'usuari, N. Pot ser null
Returns:
l'usuari U de tipus E, amb U.nomUsuari == N, o null si nomUsuari == null o si cap usuari de classe E té nom N

cercaSeu

public Seu cercaSeu(java.lang.String codiSeu)
Cerca una seu pel seu codi

Parameters:
codiSeu - el codi de la seu a cercar
Returns:
la seu amb el codi cercat, o null si cap seu no el té.

actualitza

public <E extends Usuari> E actualitza(E usuari)
                            throws GATDExcepcioUsuaris
Actualitza un usuari al gestor de persistència.

Si l'usuari ha estat marcat com a baixa, li esborrem la clau d'accés per a que no pugui entrar.

Si l'usuari ha estat actualitzar al gestor de persistència després d'haver estat recuperat, es produirà una excepció.

Parameters:
usuari - l'usuari a actualitzar
Returns:
L'usuari de tipus E, administrat
Throws:
GATDExcepcioUsuaris - si s'ha produït un conflicte d'edicions o s'ha intentat donar a l'usuari un document d'identitat que es d'un altre

modificaSituacioTecnics

public void modificaSituacioTecnics(java.lang.String[] marcats,
                                    long[] versions)
                             throws GATDExcepcioUsuaris
Implementació del cas d'ús "Modifica Situació Tècnics".

Commuta la situació d'activitat d'una col·leció de tècnics, donada pels seus noms d'usuari.

Verifica que tots son de la mateixa seu i que un cop fet el canvi, la seu tindrà al menys un tècnic actiu.

Les peticions pendents dels tècnics de la col·lecció que passin a situació d'inactivitat, seran reassignades.

Per a evitar actuar sobre tècnics que puguin haver estat modificats (per exemple, donats de baixa o activats/desactivats) després d'haver-se carregat el llistat, es comprova el número de versió d'entitat de cada un.

Parameters:
marcats - array amb els noms dels tècnics marcats per a commutar la situació.
versions - array amb els números de versió d'entitat que esperem tinguin els tècnics
Throws:
GATDExcepcioUsuaris - en qualsevol d'aquest casos:
  1. L'array de noms de tècnics es buit
  2. Algun dels noms no es correspon amb cap tècnic
  3. Algun dels tècnics no té el número de versió d'entitat esperat (conflicte d'edicions)
  4. Hi ha tècnics de més d'una seu
  5. Algun tècnic no està d'alta
  6. Si la seu comuna es quedaria sense tècnics actius
La operació queda marcada per a fer "rollback".

comptaTecnicsActius

public int comptaTecnicsActius(Seu seu)
Compta el nombre de tècnics actius que hi ha a una seu

Parameters:
seu - la seu
Returns:
el nombre de tècnics d'alta en situació d'activitat

getSeus

public java.lang.Iterable<Seu> getSeus()
Dona la seqüència de totes les seus d'alta

Returns:
Iterable que recorre totes les seus que no son de baixa