org.nuiton.topia.persistence
Class TopiaDAOImpl<E extends TopiaEntity>

java.lang.Object
  extended by org.nuiton.topia.persistence.TopiaDAOImpl<E>
Type Parameters:
E - le type de l'entite
All Implemented Interfaces:
TopiaDAO<E>

public class TopiaDAOImpl<E extends TopiaEntity>
extends Object
implements TopiaDAO<E>

Cette classe permet d'avoir un ensemble de méthode implantée de façon standard et plus spécifiquement pour Hibernate. Certains accès à Hibernate sont tout de même fait ici, car on a pris le choix de se baser entièrement sur hibernate pour la persistence, et il est ainsi possible d'accèder au meta information hibernate sur les classes lorque l'on en a besoin.

Author:
poussin

Field Summary
protected  TopiaContextImplementor context
           
protected  Class<E> entityClass
           
 
Constructor Summary
TopiaDAOImpl()
           
 
Method Summary
 void addTopiaEntityListener(TopiaEntityListener listener)
           
 void addTopiaEntityVetoable(TopiaEntityVetoable vetoable)
           
 void commitTransaction()
          Callback method when context was commit.
 E create(Map<String,Object> properties)
          Cette methode appelle fireVetoableCreate et fireOnCreated Si vous la surchargé, faites attention a appeler le super ou a appeler vous aussi ces deux methodes.
 E create(Object... properties)
          Construit une nouvelle instance de l'objet géré par ce DAO
 TopiaQuery createQuery()
          Crée une requete basé sur l'entité lié au DAO.
 TopiaQuery createQuery(String entityAlias)
          Crée une requête basé sur l'entité lié au DAO et lui assigne un alias valable dans la requête.
 void delete(E e)
           
 List<E> findAll()
           
 List<E> findAllByProperties(Map<String,Object> properties)
           
 List<E> findAllByProperties(String propertyName, Object value, Object... others)
           
 List<E> findAllByProperty(String propertyName, Object value)
           
 List<E> findAllByQuery(TopiaQuery query)
          Execute une requête basé sur l'entité du DAO.
 List<E> findAllContainsProperties(Map<String,Collection> properties)
          Find all entities with a specific rule : When the entity have a Collection type property, you want to find all entites where some values are contained in the collection type property.
 List<E> findAllContainsProperties(String propertyName, Collection values, Object... others)
          Cherche et renvoie toutes les entités trouvées dont la propriété propertyName contient values, ainsi de suite avec others.
 List<String> findAllIds()
          Recuperation de tous les ids en base pour le type d'entite du dao.
 Map<String,E> findAllMappedByQuery(TopiaQuery query)
          Execute une requête basé sur l'entité du DAO.
<K> Map<K,E>
findAllMappedByQuery(TopiaQuery query, String keyName, Class<K> keyClass)
          Execute une requête basé sur l'entité du DAO.
 List<E> findAllWithOrder(String... propertyNames)
           
 E findByPrimaryKey(Map<String,Object> keys)
          Recherche la classe en utilisant la cle naturelle, chaque champs de la cle naturelle est une entre de la map passe en argument.
 E findByPrimaryKey(Object... k)
          Recherche la classe en utilisant la cle naturelle, si la cle naturelle est composé de plusieurs champs alors les arguments passés doivent être dans l'ordre de declaration dans le fichier de mapping
 E findByProperties(Map<String,Object> properties)
           
 E findByProperties(String propertyName, Object value, Object... others)
           
 E findByProperty(String propertyName, Object value)
           
 E findByQuery(TopiaQuery query)
          Execute une requête basé sur l'entité du DAO.
 E findByTopiaId(String k)
           
 E findContainsProperties(Map<String,Collection> properties)
          Cherche et renvoie la première entité trouvée dont les propriétés en clé de Map contiennent toutes les valeurs de la Collection.
 E findContainsProperties(String propertyName, Collection values, Object... others)
          Cherche et renvoie la première entité trouvée dont la propriété propertyName contient values, ainsi de suite avec others.
 TopiaContextImplementor getContext()
           
 Class<E> getEntityClass()
          Return class of entity managed by this DAO
protected  Serializable getId(E e)
          Retourne l'id de l'entity
protected  Serializable getId(Map map)
          Retourne l'id de l'entity representer comme une map
 List<Permission> getRequestPermission(String topiaId, int actions)
          Retourne les permissions a verifier pour l'acces a l'entite pour le service Taas.
 void init(TopiaContextImplementor context, Class<E> entityClass)
          When TopiaContextImpl create the TopiaDAOHibernate, it must call this method just after
protected  E instanciateNew()
           
 void removeTopiaEntityListener(TopiaEntityListener listener)
           
 void removeTopiaEntityVetoable(TopiaEntityVetoable vetoable)
           
 void rollbackTransaction()
          Callback method when context was rollback.
 long size()
          Count number of existing entities using TopiaQuery.executeCount(org.nuiton.topia.TopiaContext) FIXME-FD20091224 change type to int like in 2.2.2 version
 E update(E e)
          Permet d'ajouter ou de mettre a jour un objet.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

entityClass

protected Class<E extends TopiaEntity> entityClass

context

protected TopiaContextImplementor context
Constructor Detail

TopiaDAOImpl

public TopiaDAOImpl()
Method Detail

getEntityClass

public Class<E> getEntityClass()
Description copied from interface: TopiaDAO
Return class of entity managed by this DAO

Specified by:
getEntityClass in interface TopiaDAO<E extends TopiaEntity>
Returns:
entity managed by this DAO

getId

protected Serializable getId(E e)
                      throws TopiaException
Retourne l'id de l'entity

Parameters:
e - l'entity
Returns:
l'id de l'entity ou null si pas trouvé
Throws:
TopiaException - Si une erreur survient durant la recherche

getId

protected Serializable getId(Map map)
                      throws TopiaException
Retourne l'id de l'entity representer comme une map

Parameters:
map - l'entity en representation map
Returns:
l'id de l'entity ou null si pas trouvé
Throws:
TopiaException - Si une erreur survient durant la recherche

init

public void init(TopiaContextImplementor context,
                 Class<E> entityClass)
          throws TopiaException
When TopiaContextImpl create the TopiaDAOHibernate, it must call this method just after

Specified by:
init in interface TopiaDAO<E extends TopiaEntity>
Parameters:
entityClass -
context - context
Throws:
TopiaException

getContext

public TopiaContextImplementor getContext()
Specified by:
getContext in interface TopiaDAO<E extends TopiaEntity>
Returns:
Returns the context.

instanciateNew

protected E instanciateNew()
                                        throws TopiaException
Throws:
TopiaException

commitTransaction

public void commitTransaction()
                       throws TopiaException
Callback method when context was commit. By default, the method does nothing

Specified by:
commitTransaction in interface TopiaDAO<E extends TopiaEntity>
Throws:
TopiaException

rollbackTransaction

public void rollbackTransaction()
                         throws TopiaException
Callback method when context was rollback. By default, the method does nothing

Specified by:
rollbackTransaction in interface TopiaDAO<E extends TopiaEntity>
Throws:
TopiaException

create

public E create(Object... properties)
                             throws TopiaException
Description copied from interface: TopiaDAO
Construit une nouvelle instance de l'objet géré par ce DAO

Specified by:
create in interface TopiaDAO<E extends TopiaEntity>
Parameters:
properties - la liste des propriétés que doit avoir l'objet créé les arguments vont par paire (propertyName, value)
Returns:
un nouvel objet
Throws:
TopiaException - si un problème est rencontré durant l'instanciation

findByPrimaryKey

public E findByPrimaryKey(Map<String,Object> keys)
                                       throws TopiaException
Description copied from interface: TopiaDAO
Recherche la classe en utilisant la cle naturelle, chaque champs de la cle naturelle est une entre de la map passe en argument.

Specified by:
findByPrimaryKey in interface TopiaDAO<E extends TopiaEntity>
Parameters:
keys - la liste des champs de la cle naturelle avec leur valeur
Returns:
l'entite trouvé
Throws:
TopiaException

findByPrimaryKey

public E findByPrimaryKey(Object... k)
                                       throws TopiaException
Description copied from interface: TopiaDAO
Recherche la classe en utilisant la cle naturelle, si la cle naturelle est composé de plusieurs champs alors les arguments passés doivent être dans l'ordre de declaration dans le fichier de mapping

Specified by:
findByPrimaryKey in interface TopiaDAO<E extends TopiaEntity>
Parameters:
k - l'objet cle naturelle de la classe
Returns:
l'entité trouvé
Throws:
TopiaException

findByProperties

public E findByProperties(String propertyName,
                          Object value,
                          Object... others)
                                       throws TopiaException
Specified by:
findByProperties in interface TopiaDAO<E extends TopiaEntity>
others - les autres proprietes doivent aller par 2 propertyName, value
Returns:
l'entité trouvé
Throws:
TopiaException

findAllByProperties

public List<E> findAllByProperties(String propertyName,
                                   Object value,
                                   Object... others)
                                                throws TopiaException
Specified by:
findAllByProperties in interface TopiaDAO<E extends TopiaEntity>
others - les autres proprietes doivent aller par 2 propertyName, value
Returns:
l'entité trouvé
Throws:
TopiaException

findContainsProperties

public E findContainsProperties(Map<String,Collection> properties)
                                             throws TopiaException
Description copied from interface: TopiaDAO
Cherche et renvoie la première entité trouvée dont les propriétés en clé de Map contiennent toutes les valeurs de la Collection.

Specified by:
findContainsProperties in interface TopiaDAO<E extends TopiaEntity>
Returns:
l'entité trouvé
Throws:
TopiaException

findContainsProperties

public E findContainsProperties(String propertyName,
                                Collection values,
                                Object... others)
                                             throws TopiaException
Description copied from interface: TopiaDAO
Cherche et renvoie la première entité trouvée dont la propriété propertyName contient values, ainsi de suite avec others.

Specified by:
findContainsProperties in interface TopiaDAO<E extends TopiaEntity>
Returns:
l'entité trouvé
Throws:
TopiaException

findAllContainsProperties

public List<E> findAllContainsProperties(Map<String,Collection> properties)
                                                      throws TopiaException
Find all entities with a specific rule : When the entity have a Collection type property, you want to find all entites where some values are contained in the collection type property. Example entity parameter : private Collection historicalDates; You want some dates to be contained in historicalDates. Collection myDates... myDates.add(date1) ... Map properties = new HashMap(); properties.put("historicalDates",myDates); findAllContainsProperties(properties);

Specified by:
findAllContainsProperties in interface TopiaDAO<E extends TopiaEntity>
Parameters:
properties -
Returns:
the list of entities corresponding to the request
Throws:
TopiaException - if any pb

findAllContainsProperties

public List<E> findAllContainsProperties(String propertyName,
                                         Collection values,
                                         Object... others)
                                                      throws TopiaException
Description copied from interface: TopiaDAO
Cherche et renvoie toutes les entités trouvées dont la propriété propertyName contient values, ainsi de suite avec others.

Specified by:
findAllContainsProperties in interface TopiaDAO<E extends TopiaEntity>
Returns:
l'entité trouvé
Throws:
TopiaException

findAllByProperty

public List<E> findAllByProperty(String propertyName,
                                 Object value)
                                              throws TopiaException
Specified by:
findAllByProperty in interface TopiaDAO<E extends TopiaEntity>
Throws:
TopiaException

findByProperty

public E findByProperty(String propertyName,
                        Object value)
                                     throws TopiaException
Specified by:
findByProperty in interface TopiaDAO<E extends TopiaEntity>
Throws:
TopiaException

addTopiaEntityListener

public void addTopiaEntityListener(TopiaEntityListener listener)
Specified by:
addTopiaEntityListener in interface TopiaDAO<E extends TopiaEntity>

addTopiaEntityVetoable

public void addTopiaEntityVetoable(TopiaEntityVetoable vetoable)
Specified by:
addTopiaEntityVetoable in interface TopiaDAO<E extends TopiaEntity>

removeTopiaEntityListener

public void removeTopiaEntityListener(TopiaEntityListener listener)
Specified by:
removeTopiaEntityListener in interface TopiaDAO<E extends TopiaEntity>

removeTopiaEntityVetoable

public void removeTopiaEntityVetoable(TopiaEntityVetoable vetoable)
Specified by:
removeTopiaEntityVetoable in interface TopiaDAO<E extends TopiaEntity>

create

public E create(Map<String,Object> properties)
                             throws TopiaException
Cette methode appelle fireVetoableCreate et fireOnCreated Si vous la surchargé, faites attention a appeler le super ou a appeler vous aussi ces deux methodes.

Specified by:
create in interface TopiaDAO<E extends TopiaEntity>
Parameters:
properties - la liste des propriétés que doit avoir l'objet créé
Returns:
un nouvel objet
Throws:
TopiaException - si un problème est rencontré durant l'instanciation

update

public E update(E e)
                             throws TopiaException
Description copied from interface: TopiaDAO
Permet d'ajouter ou de mettre a jour un objet. Cela permet d'ajouter par exemple un objet provenant d'un autre context mais du meme type de DAO

Specified by:
update in interface TopiaDAO<E extends TopiaEntity>
Parameters:
e - l'entite a ajouter ou mettre a jour
Returns:
l'entity passé en paramètre.
Throws:
TopiaException

delete

public void delete(E e)
            throws TopiaException
Specified by:
delete in interface TopiaDAO<E extends TopiaEntity>
Throws:
TopiaException

findByTopiaId

public E findByTopiaId(String k)
                                    throws TopiaException
Specified by:
findByTopiaId in interface TopiaDAO<E extends TopiaEntity>
Throws:
TopiaException

findAll

public List<E> findAll()
                                    throws TopiaException
Specified by:
findAll in interface TopiaDAO<E extends TopiaEntity>
Throws:
TopiaException

findAllIds

public List<String> findAllIds()
                        throws TopiaException
Description copied from interface: TopiaDAO
Recuperation de tous les ids en base pour le type d'entite du dao.

Specified by:
findAllIds in interface TopiaDAO<E extends TopiaEntity>
Returns:
la liste de tous les ids
Throws:
TopiaException - si pb en base

createQuery

public TopiaQuery createQuery()
Description copied from interface: TopiaDAO
Crée une requete basé sur l'entité lié au DAO. Résultat attendu : "FROM Entity"

Specified by:
createQuery in interface TopiaDAO<E extends TopiaEntity>
Returns:
une nouvelle TopiaQuery vide. (uniquement avec le From sur le type d'entité)

createQuery

public TopiaQuery createQuery(String entityAlias)
Description copied from interface: TopiaDAO
Crée une requête basé sur l'entité lié au DAO et lui assigne un alias valable dans la requête. Résultat attendu : "FROM Entity AS entityAlias"

Specified by:
createQuery in interface TopiaDAO<E extends TopiaEntity>
Parameters:
entityAlias - alias permettant de manipuler l'entité dans la requête
Returns:
une nouvelle TopiaQuery

findByQuery

public E findByQuery(TopiaQuery query)
                                  throws TopiaException
Description copied from interface: TopiaDAO
Execute une requête basé sur l'entité du DAO. Permet de récupérer une entité correspondant à la requête.

Specified by:
findByQuery in interface TopiaDAO<E extends TopiaEntity>
Parameters:
query - la requête
Returns:
l'entité correspondant à la recherche ou null si aucune entité n'a été trouvée
Throws:
TopiaException
See Also:
TopiaQuery.executeToEntity(org.nuiton.topia.TopiaContext, java.lang.Class)

findAllByQuery

public List<E> findAllByQuery(TopiaQuery query)
                                           throws TopiaException
Description copied from interface: TopiaDAO
Execute une requête basé sur l'entité du DAO. Permet de récupérer une liste d'entités correspondant à la requête.

Specified by:
findAllByQuery in interface TopiaDAO<E extends TopiaEntity>
Parameters:
query - la requête
Returns:
la liste d'entités correspondant à la recherche
Throws:
TopiaException
See Also:
TopiaQuery.executeToEntityList(org.nuiton.topia.TopiaContext, java.lang.Class)

findAllMappedByQuery

public Map<String,E> findAllMappedByQuery(TopiaQuery query)
                                                       throws TopiaException
Description copied from interface: TopiaDAO
Execute une requête basé sur l'entité du DAO. Permet de récupérer une map d'entités correspondant à la requête. La clé de la map étant le topiaId de l'entité.

Specified by:
findAllMappedByQuery in interface TopiaDAO<E extends TopiaEntity>
Parameters:
query - la requête
Returns:
la map d'entités correspondant à la recherche
Throws:
TopiaException
See Also:
TopiaQuery.executeToEntityMap(org.nuiton.topia.TopiaContext, java.lang.Class)

findAllMappedByQuery

public <K> Map<K,E> findAllMappedByQuery(TopiaQuery query,
                                         String keyName,
                                         Class<K> keyClass)
                                                  throws TopiaException
Description copied from interface: TopiaDAO
Execute une requête basé sur l'entité du DAO. Permet de récupérer une map d'entités correspondant à la requête. Le type et le nom de la propriété utilisé comme clé de la map doit être passé en argument.

Specified by:
findAllMappedByQuery in interface TopiaDAO<E extends TopiaEntity>
Type Parameters:
K - type de la clé de la map
Parameters:
query - la requête
keyName - nom de la propriété de l'entité utilisée comme clé
keyClass - type de la propriété de l'entité utilisée comme clé
Returns:
la map d'entités correspondant à la recherche
Throws:
TopiaException
See Also:
TopiaQuery.executeToEntityMap(org.nuiton.topia.TopiaContext, java.lang.Class)

findAllWithOrder

public List<E> findAllWithOrder(String... propertyNames)
                                             throws TopiaException
Specified by:
findAllWithOrder in interface TopiaDAO<E extends TopiaEntity>
Throws:
TopiaException

size

public long size()
          throws TopiaException
Count number of existing entities using TopiaQuery.executeCount(org.nuiton.topia.TopiaContext) FIXME-FD20091224 change type to int like in 2.2.2 version

Specified by:
size in interface TopiaDAO<E extends TopiaEntity>
Returns:
a long for the number of entities in database
Throws:
TopiaException

findByProperties

public E findByProperties(Map<String,Object> properties)
                                       throws TopiaException
Specified by:
findByProperties in interface TopiaDAO<E extends TopiaEntity>
Throws:
TopiaException

findAllByProperties

public List<E> findAllByProperties(Map<String,Object> properties)
                                                throws TopiaException
Specified by:
findAllByProperties in interface TopiaDAO<E extends TopiaEntity>
Throws:
TopiaException

getRequestPermission

public List<Permission> getRequestPermission(String topiaId,
                                             int actions)
                                      throws TopiaException
Description copied from interface: TopiaDAO
Retourne les permissions a verifier pour l'acces a l'entite pour le service Taas.

Specified by:
getRequestPermission in interface TopiaDAO<E extends TopiaEntity>
Parameters:
topiaId - topiaId d'une entite
Returns:
la liste des permissions
Throws:
TopiaException


Copyright © 2004-2010 CodeLutin. All Rights Reserved.