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:
tchemit

Field Summary
protected  List<String> associationProperties
          list of association names available on the entity.
protected  Method[] childAddAllMethods
          cache of assocation addAll methods.
protected  Method[] childAddMethods
          cache of assocation add methods.
protected  Method[] childClearMethods
          cache of assocation clearmethods.
protected  Method[] childGetMethods
          cache of assocation get methods.
protected  Method[] childIsEmptyMethods
          cache of assocation isEmpty methods.
protected  Method[] childRemoveMethods
          cache of assocation remove methods.
protected  Method[] childSizeMethods
          cache of assocation size methods.
protected  TopiaEntityEnum contract
          the constant of the entity
protected  Method[] getMethods
          cache of getter methods.
protected  List<String> properties
          list of property names available on the entity.
protected  Method[] setMethods
          cache of setter methods.
 
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()
           
 Map<String,Object> getNaturalId(B bean)
          Pour obtenir un dictionnaire de la clef naturelle (clef métier) du bean donne.
 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
the constant of the entity


properties

protected List<String> properties
list of property names available on the entity.


associationProperties

protected List<String> associationProperties
list of association names available on the entity.


getMethods

protected Method[] getMethods
cache of getter methods.


setMethods

protected Method[] setMethods
cache of setter methods.


childGetMethods

protected Method[] childGetMethods
cache of assocation get methods.


childAddMethods

protected Method[] childAddMethods
cache of assocation add methods.


childAddAllMethods

protected Method[] childAddAllMethods
cache of assocation addAll methods.


childRemoveMethods

protected Method[] childRemoveMethods
cache of assocation remove methods.


childSizeMethods

protected Method[] childSizeMethods
cache of assocation size methods.


childIsEmptyMethods

protected Method[] childIsEmptyMethods
cache of assocation isEmpty methods.


childClearMethods

protected Method[] childClearMethods
cache of assocation clearmethods.

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

getNaturalId

public Map<String,Object> getNaturalId(B bean)
Pour obtenir un dictionnaire de la clef naturelle (clef métier) du bean donne.

Parameters:
bean - le bean a inspecter
Returns:
le dictionnaire de la clef naturel du bean
Since:
2.4.1

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-2012 CodeLutin. All Rights Reserved.