org.nuiton.topia.persistence.util
Class EntityOperator<B extends TopiaEntity>

java.lang.Object
  extended by org.nuiton.topia.persistence.util.EntityOperator<B>
Type Parameters:
B - type de l'entite

public class EntityOperator<B extends TopiaEntity>
extends Object

Un objet qui permet d'effecuter des operations de manipulation des donnees dans les entites du type donne. L'objet connait la liste des proprietes et des associations du type donne et permet de modifier ces valeurs : get(String, TopiaEntity) set(String, TopiaEntity,Object) copy(String, TopiaEntity,TopiaEntity) getChild(String, TopiaEntity, String) addChild(String, TopiaEntity, Object) removeChild(String, TopiaEntity, Object) ... D'autres methodes permettent d'effectuer des operations en lot (sur plusieurs proprietes en meme temps) sur les proprietes : copyProperties(TopiaEntity, TopiaEntity, boolean, String...) obtainProperties(TopiaEntity, String...) clearProperties(TopiaEntity, String...) Note : cet objet ne permet pas d'operation vers les bases.

Since:
2.2.0
Author:
chemit

Field Summary
protected  List<String> associationProperties
           
protected  Method[] childAddAllMethods
           
protected  Method[] childAddMethods
           
protected  Method[] childClearMethods
           
protected  Method[] childGetMethods
           
protected  Method[] childIsEmptyMethods
           
protected  Method[] childRemoveMethods
           
protected  Method[] childSizeMethods
           
protected  TopiaEntityEnum contract
           
protected  Method[] getMethods
           
protected  List<String> properties
           
protected  Method[] setMethods
           
 
Constructor Summary
protected EntityOperator(TopiaEntityEnum contract)
           
 
Method Summary
 void addAllChild(String name, B bean, Collection<?> childs)
          Ajoute toutes les entites d'association.
 void addChild(String name, B bean, Object child)
          Ajoute une entite d'association.
 void clearChild(String name, B bean)
          Retire toutes les entites d'association.
 void clearProperties(B from, String... properties)
          Met a null toutes les proprietes donnees.
 Object clone()
           
 void copy(String name, B from, B dst)
          Copie une propriete de src vers dst.
 void copyProperties(B from, B dst, boolean tech, String... properties)
          Recopie toutes les proprietes donnes depuis src vers dst.
 boolean equals(Object obj)
           
protected  void finalize()
           
 Object get(String name, B bean)
          Recupere la valeur de la propriete donnee.
 List<String> getAssociationProperties()
           
protected  Class<?> getAssociationPropertyType(int index)
           
 Class<?> getAssociationPropertyType(String name)
           
 Object getChild(String name, B bean, String topiaId)
          Recupere une entite d'association a partir de son id.
 Class<B> getClazz()
           
 List<String> getProperties()
           
protected  Collection<String> getProperties(String[] properties)
           
protected  Class<?> getPropertyType(int index)
           
 Class<?> getPropertyType(String name)
           
 int hashCode()
           
protected  void init()
           
protected  void init(Class<?> entityClass, Set<Class<?>> explored, List<String> properties, List<String> associationProperties, List<Method> getters, List<Method> setters, List<Method> childGetters, List<Method> childAdders, List<Method> childAddersAll, List<Method> childRemovers, List<Method> childSize, List<Method> childClearers, List<Method> childIsEmpty)
           
protected static void invoke(Method m, Object bean, Object... args)
           
protected static
<V> V
invokeWithResult(Method m, Object bean, Object... args)
           
 boolean isChildEmpty(String name, B bean)
          Test s'il existe des entites d'association pour la propriete donnee.
protected  B newInstance()
           
 Map<String,Object> obtainProperties(B from, String... properties)
          Obtenir dans un dictionnaire, les valeurs des proprietes donnees.
 void removeChild(String name, B bean, Object child)
          Retire une entite d'association.
 void set(String name, B bean, Object value)
          Positionner la valeur donne de la propriete donnee.
 void setNull(String name, B bean)
          Positionner la valeur nulle de la propriete donnee.
 int sizeChild(String name, B bean)
          Retourne le nombre d'entite d'association.
 String toString()
           
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

contract

protected final TopiaEntityEnum contract

properties

protected List<String> properties

associationProperties

protected List<String> associationProperties

getMethods

protected Method[] getMethods

setMethods

protected Method[] setMethods

childGetMethods

protected Method[] childGetMethods

childAddMethods

protected Method[] childAddMethods

childAddAllMethods

protected Method[] childAddAllMethods

childRemoveMethods

protected Method[] childRemoveMethods

childSizeMethods

protected Method[] childSizeMethods

childIsEmptyMethods

protected Method[] childIsEmptyMethods

childClearMethods

protected Method[] childClearMethods
Constructor Detail

EntityOperator

protected EntityOperator(TopiaEntityEnum contract)
Method Detail

get

public Object get(String name,
                  B bean)
Recupere la valeur de la propriete donnee. Note : cela apellera la methode getXXX().

Parameters:
name - le nom de la propriete
bean - l'instance a interroger
Returns:
la valeur de la propriete

set

public void set(String name,
                B bean,
                Object value)
Positionner la valeur donne de la propriete donnee. Note : cela apellera la methode setXXX(value).

Parameters:
name - le nom de la propriete
bean - l'instance a mettre a jour
value - la valeur a positionner

copy

public void copy(String name,
                 B from,
                 B dst)
Copie une propriete de src vers dst. Note : cela apellera la methode setXXX(value).

Parameters:
name - le nom de la propriete
from - l'instance a interroger
dst - l'instance a mettre a jour

setNull

public void setNull(String name,
                    B bean)
Positionner la valeur nulle de la propriete donnee. Note : cela apellera la methode setXXX(nullValue).

Parameters:
name - le nom de la propriete
bean - l'instance a mettre a jour

getChild

public Object getChild(String name,
                       B bean,
                       String topiaId)
Recupere une entite d'association a partir de son id. Note : cela apellera la methode getXXXByTopiaId(topiaId).

Parameters:
name - le nom de la propriete d'association
bean - l'instance a interroger
topiaId - l'id de l'entite recherchee
Returns:
l'entite

isChildEmpty

public boolean isChildEmpty(String name,
                            B bean)
Test s'il existe des entites d'association pour la propriete donnee. Note : cela apellera la methode isXXXEmpty().

Parameters:
name - le nom de la propriete d'association
bean - l'instance a interroger
Returns:
true si pas d'entite d'association

addChild

public void addChild(String name,
                     B bean,
                     Object child)
Ajoute une entite d'association. Note : cela apellera la methode addXXX(child).

Parameters:
name - le nom de la propriete d'association
bean - l'instance a mettre a jour
child - l'entite a ajouter

addAllChild

public void addAllChild(String name,
                        B bean,
                        Collection<?> childs)
Ajoute toutes les entites d'association. Note : cela apellera la methode addXXX(child).

Parameters:
name - le nom de la propriete d'association
bean - l'instance a mettre a jour
childs - les entites a ajouter

removeChild

public void removeChild(String name,
                        B bean,
                        Object child)
Retire une entite d'association. Note : cela apellera la methode removeXXX(child).

Parameters:
name - le nom de la propriete d'association
bean - l'instance a mettre a jour
child - l'entite a retirer

sizeChild

public int sizeChild(String name,
                     B bean)
Retourne le nombre d'entite d'association. Note : cela apellera la methode sizeXXX(childs).

Parameters:
name - le nom de la propriete d'association
bean - l'instance a mettre a jour
Returns:
le nombre d'entite d'associaotion

clearChild

public void clearChild(String name,
                       B bean)
Retire toutes les entites d'association. Note : cela apellera la methode clearXXX(childs).

Parameters:
name - le nom de la propriete d'association
bean - l'instance a mettre a jour

copyProperties

public void copyProperties(B from,
                           B dst,
                           boolean tech,
                           String... properties)
Recopie toutes les proprietes donnes depuis src vers dst. Note : si aucune propriete n'est donnee, on utilise toutes les proprietes connues par l'operateur.

Parameters:
from - l'entite a interroger
dst - l'entite a mettre a jour
tech - un drapeau pour recopier aussi les infos techniques
properties - les proprietes a recopier

obtainProperties

public Map<String,Object> obtainProperties(B from,
                                           String... properties)
Obtenir dans un dictionnaire, les valeurs des proprietes donnees. Si aucune proropiete n'est donne, alors on utilise toutes les proprietes connu par l'operateur.

Parameters:
from - l'object a scanne
properties - les proprietes a retenir (vide si on les veut toutes)
Returns:
le dictionnaire des valeurs des proprietes

clearProperties

public void clearProperties(B from,
                            String... properties)
Met a null toutes les proprietes donnees. Si aucune proropiete n'est donnee, alors on utilise toutes les proprietes connu par l'operateur.

Parameters:
from - l'object a scanne
properties - les proprietes a retenir (vide si on les veut toutes)

getProperties

public List<String> getProperties()

getAssociationProperties

public List<String> getAssociationProperties()

getPropertyType

public Class<?> getPropertyType(String name)

getAssociationPropertyType

public Class<?> getAssociationPropertyType(String name)

getClazz

public Class<B> getClazz()

equals

public boolean equals(Object obj)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

clone

public Object clone()
Overrides:
clone in class Object

finalize

protected void finalize()
                 throws Throwable
Overrides:
finalize in class Object
Throws:
Throwable

toString

public String toString()
Overrides:
toString in class Object

getProperties

protected Collection<String> getProperties(String[] properties)

getPropertyType

protected Class<?> getPropertyType(int index)

getAssociationPropertyType

protected Class<?> getAssociationPropertyType(int index)

newInstance

protected B newInstance()

init

protected void init()

invoke

protected static void invoke(Method m,
                             Object bean,
                             Object... args)

invokeWithResult

protected static <V> V invokeWithResult(Method m,
                                        Object bean,
                                        Object... args)

init

protected void init(Class<?> entityClass,
                    Set<Class<?>> explored,
                    List<String> properties,
                    List<String> associationProperties,
                    List<Method> getters,
                    List<Method> setters,
                    List<Method> childGetters,
                    List<Method> childAdders,
                    List<Method> childAddersAll,
                    List<Method> childRemovers,
                    List<Method> childSize,
                    List<Method> childClearers,
                    List<Method> childIsEmpty)
             throws IntrospectionException
Throws:
IntrospectionException


Copyright © 2004-2010 CodeLutin. All Rights Reserved.