Class EntityOperator<B extends TopiaEntity>
java.lang.Object
org.nuiton.topia.persistence.util.EntityOperator<B>
- Type Parameters:
B- type de l'entite
public class EntityOperator<B extends TopiaEntity>
extends java.lang.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 <chemit@codelutin.com>
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<java.lang.String>associationPropertieslist of association names available on the entity.protected java.lang.reflect.Method[]childAddAllMethodscache of assocationaddAllmethods.protected java.lang.reflect.Method[]childAddMethodscache of assocationaddmethods.protected java.lang.reflect.Method[]childClearMethodscache of assocationclearmethods.protected java.lang.reflect.Method[]childGetMethodscache of assocationgetmethods.protected java.lang.reflect.Method[]childIsEmptyMethodscache of assocationisEmptymethods.protected java.lang.reflect.Method[]childRemoveMethodscache of assocationremovemethods.protected java.lang.reflect.Method[]childSizeMethodscache of assocationsizemethods.protected TopiaEntityEnumcontractthe constant of the entityprotected java.lang.reflect.Method[]getMethodscache of getter methods.protected java.util.Set<java.lang.String>naturalIdsOnNotNullsPropertieslist of property names available on the entity used in a natural ids or marked as not-null.protected java.util.List<java.lang.String>propertieslist of property names available on the entity.protected java.lang.reflect.Method[]setMethodscache of setter methods.protected static java.lang.IntegerZERODeprecated.protected static java.lang.ByteZEROBDeprecated.protected static java.lang.CharacterZEROCDeprecated.protected static java.lang.DoubleZERODDeprecated.protected static java.lang.FloatZEROFDeprecated.protected static java.lang.LongZEROLDeprecated. -
Constructor Summary
Constructors Modifier Constructor Description protectedEntityOperator(TopiaEntityEnum contract) -
Method Summary
Modifier and Type Method Description voidaddAllChild(java.lang.String name, B bean, java.util.Collection<?> childs)Ajoute toutes les entites d'association.voidaddChild(java.lang.String name, B bean, java.lang.Object child)Ajoute une entite d'association.voidclearChild(java.lang.String name, B bean)Retire toutes les entites d'association.voidclearProperties(B from, java.lang.String... properties)Met a null toutes les proprietes donnees.java.lang.Objectclone()voidcopy(java.lang.String name, B from, B dst)Copie une propriete de src vers dst.voidcopyProperties(B from, B dst, boolean tech, java.lang.String... properties)Recopie toutes les proprietes donnes depuis src vers dst.booleanequals(java.lang.Object obj)protected voidfinalize()java.lang.Objectget(java.lang.String name, B bean)Recupere la valeur de la propriete donnee.java.util.List<java.lang.String>getAssociationProperties()protected java.lang.Class<?>getAssociationPropertyType(int index)java.lang.Class<?>getAssociationPropertyType(java.lang.String name)java.lang.ObjectgetChild(java.lang.String name, B bean, java.lang.String topiaId)Recupere une entite d'association a partir de son id.java.lang.Class<B>getClazz()java.util.Map<java.lang.String,java.lang.Object>getNaturalId(B bean)Pour obtenir un dictionnaire de la clef naturelle (clef métier) dubeandonne.java.lang.String[]getNaturalIdsOnNotNullsProperties()Get all properties from a natural id or marked as not-null.java.util.Map<java.lang.String,java.lang.Object>getNaturalIsdAndNotNulls(B bean)Pour obtenir un dictionnaire des propriétés marqués not-null et la clef naturelle dubeandonne.java.util.Map<java.lang.String,java.lang.Object>getNotNull(B bean)Pour obtenir un dictionnaire des propriétés marqués not-null dubeandonne.static java.lang.ObjectgetNullValue(java.lang.Class<?> type)Deprecated.since 2.6 (there is some other library which does itjava.util.List<java.lang.String>getProperties()protected java.util.Collection<java.lang.String>getProperties(java.lang.String[] properties)protected java.lang.Class<?>getPropertyType(int index)java.lang.Class<?>getPropertyType(java.lang.String name)inthashCode()protected voidinit()protected voidinit(java.lang.Class<?> entityClass, java.util.Set<java.lang.Class<?>> explored, java.util.List<java.lang.String> properties, java.util.List<java.lang.String> associationProperties, java.util.List<java.lang.reflect.Method> getters, java.util.List<java.lang.reflect.Method> setters, java.util.List<java.lang.reflect.Method> childGetters, java.util.List<java.lang.reflect.Method> childAdders, java.util.List<java.lang.reflect.Method> childAddersAll, java.util.List<java.lang.reflect.Method> childRemovers, java.util.List<java.lang.reflect.Method> childSize, java.util.List<java.lang.reflect.Method> childClearers, java.util.List<java.lang.reflect.Method> childIsEmpty)protected static voidinvoke(java.lang.reflect.Method m, java.lang.Object bean, java.lang.Object... args)protected static <V> VinvokeWithResult(java.lang.reflect.Method m, java.lang.Object bean, java.lang.Object... args)booleanisChildEmpty(java.lang.String name, B bean)Test s'il existe des entites d'association pour la propriete donnee.protected BnewInstance()java.util.Map<java.lang.String,java.lang.Object>obtainProperties(B from, java.lang.String... properties)Obtenir dans un dictionnaire, les valeurs des proprietes donnees.voidremoveChild(java.lang.String name, B bean, java.lang.Object child)Retire une entite d'association.voidset(java.lang.String name, B bean, java.lang.Object value)Positionner la valeur donne de la propriete donnee.voidsetNull(java.lang.String name, B bean)Positionner la valeur nulle de la propriete donnee.intsizeChild(java.lang.String name, B bean)Retourne le nombre d'entite d'association.java.lang.StringtoString()
-
Field Details
-
contract
the constant of the entity -
properties
protected java.util.List<java.lang.String> propertieslist of property names available on the entity. -
naturalIdsOnNotNullsProperties
protected java.util.Set<java.lang.String> naturalIdsOnNotNullsPropertieslist of property names available on the entity used in a natural ids or marked as not-null.- Since:
- 2.6.9
-
associationProperties
protected java.util.List<java.lang.String> associationPropertieslist of association names available on the entity. -
getMethods
protected java.lang.reflect.Method[] getMethodscache of getter methods. -
setMethods
protected java.lang.reflect.Method[] setMethodscache of setter methods. -
childGetMethods
protected java.lang.reflect.Method[] childGetMethodscache of assocationgetmethods. -
childAddMethods
protected java.lang.reflect.Method[] childAddMethodscache of assocationaddmethods. -
childAddAllMethods
protected java.lang.reflect.Method[] childAddAllMethodscache of assocationaddAllmethods. -
childRemoveMethods
protected java.lang.reflect.Method[] childRemoveMethodscache of assocationremovemethods. -
childSizeMethods
protected java.lang.reflect.Method[] childSizeMethodscache of assocationsizemethods. -
childIsEmptyMethods
protected java.lang.reflect.Method[] childIsEmptyMethodscache of assocationisEmptymethods. -
childClearMethods
protected java.lang.reflect.Method[] childClearMethodscache of assocationclearmethods. -
ZERO
@Deprecated protected static final java.lang.Integer ZERODeprecated. -
ZEROC
@Deprecated protected static final java.lang.Character ZEROCDeprecated. -
ZEROF
@Deprecated protected static final java.lang.Float ZEROFDeprecated. -
ZEROL
@Deprecated protected static final java.lang.Long ZEROLDeprecated. -
ZEROD
@Deprecated protected static final java.lang.Double ZERODDeprecated. -
ZEROB
@Deprecated protected static final java.lang.Byte ZEROBDeprecated.
-
-
Constructor Details
-
Method Details
-
get
Recupere la valeur de la propriete donnee. Note : cela apellera la methodegetXXX().- Parameters:
name- le nom de la proprietebean- l'instance a interroger- Returns:
- la valeur de la propriete
-
set
Positionner la valeur donne de la propriete donnee. Note : cela apellera la methodesetXXX(value).- Parameters:
name- le nom de la proprietebean- l'instance a mettre a jourvalue- la valeur a positionner
-
getNaturalId
Pour obtenir un dictionnaire de la clef naturelle (clef métier) dubeandonne.- Parameters:
bean- le bean a inspecter- Returns:
- le dictionnaire de la clef naturel du bean
- Since:
- 2.4.1
- See Also:
TopiaEntityEnum.getNaturalIds()
-
getNotNull
Pour obtenir un dictionnaire des propriétés marqués not-null dubeandonne.- Parameters:
bean- le bean a inspecter- Returns:
- le dictionnaire des propriétés marquées not-null du bean
- Since:
- 2.6.9
- See Also:
TopiaEntityEnum.getNotNulls()
-
getNaturalIdsOnNotNullsProperties
public java.lang.String[] getNaturalIdsOnNotNullsProperties()Get all properties from a natural id or marked as not-null.- Returns:
- all property names froma natural id or marked as not-null
- Since:
- 2.6.9
-
getNaturalIsdAndNotNulls
Pour obtenir un dictionnaire des propriétés marqués not-null et la clef naturelle dubeandonne. Cette methode est utilisée pour faire un dao.create, pour s'assurer que tout ce qui ne doit pas pas être à null est bien fourni à la création de l'objet, sinon on obtient des erreurs.- Parameters:
bean- le bean a inspecter- Returns:
- le dictionnaire des propriétés marquées not-null + la clef naturelle du bean
- Since:
- 2.6.9
- See Also:
TopiaEntityEnum.getNotNulls(),TopiaEntityEnum.getNaturalIds()
-
copy
Copie une propriete de src vers dst. Note : cela apellera la methodesetXXX(value).- Parameters:
name- le nom de la proprietefrom- l'instance a interrogerdst- l'instance a mettre a jour
-
setNull
Positionner la valeur nulle de la propriete donnee. Note : cela apellera la methodesetXXX(nullValue).- Parameters:
name- le nom de la proprietebean- l'instance a mettre a jour
-
getNullValue
@Deprecated public static java.lang.Object getNullValue(java.lang.Class<?> type)Deprecated.since 2.6 (there is some other library which does itObtains the null value for the given type (works too with primitive types).- Parameters:
type- the type to test- Returns:
- the
nullvalue or default value for primitive types - Since:
- 1.1.5
- See Also:
Defaults
-
getChild
Recupere une entite d'association a partir de son id. Note : cela apellera la methodegetXXXByTopiaId(topiaId).- Parameters:
name- le nom de la propriete d'associationbean- l'instance a interrogertopiaId- l'id de l'entite recherchee- Returns:
- l'entite
-
isChildEmpty
Test s'il existe des entites d'association pour la propriete donnee. Note : cela apellera la methodeisXXXEmpty().- Parameters:
name- le nom de la propriete d'associationbean- l'instance a interroger- Returns:
truesi pas d'entite d'association
-
addChild
Ajoute une entite d'association. Note : cela apellera la methodeaddXXX(child).- Parameters:
name- le nom de la propriete d'associationbean- l'instance a mettre a jourchild- l'entite a ajouter
-
addAllChild
Ajoute toutes les entites d'association. Note : cela apellera la methodeaddXXX(child).- Parameters:
name- le nom de la propriete d'associationbean- l'instance a mettre a jourchilds- les entites a ajouter
-
removeChild
Retire une entite d'association. Note : cela apellera la methoderemoveXXX(child).- Parameters:
name- le nom de la propriete d'associationbean- l'instance a mettre a jourchild- l'entite a retirer
-
sizeChild
Retourne le nombre d'entite d'association. Note : cela apellera la methodesizeXXX(childs).- Parameters:
name- le nom de la propriete d'associationbean- l'instance a mettre a jour- Returns:
- le nombre d'entite d'associaotion
-
clearChild
Retire toutes les entites d'association. Note : cela apellera la methodeclearXXX(childs).- Parameters:
name- le nom de la propriete d'associationbean- l'instance a mettre a jour
-
copyProperties
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 interrogerdst- l'entite a mettre a jourtech- un drapeau pour recopier aussi les infos techniquesproperties- les proprietes a recopier
-
obtainProperties
public java.util.Map<java.lang.String,java.lang.Object> obtainProperties(B from, java.lang.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 scanneproperties- les proprietes a retenir (vide si on les veut toutes)- Returns:
- le dictionnaire des valeurs des proprietes
-
clearProperties
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 scanneproperties- les proprietes a retenir (vide si on les veut toutes)
-
getProperties
public java.util.List<java.lang.String> getProperties() -
getAssociationProperties
public java.util.List<java.lang.String> getAssociationProperties() -
getPropertyType
public java.lang.Class<?> getPropertyType(java.lang.String name) -
getAssociationPropertyType
public java.lang.Class<?> getAssociationPropertyType(java.lang.String name) -
getClazz
-
equals
public boolean equals(java.lang.Object obj)- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()- Overrides:
hashCodein classjava.lang.Object
-
clone
public java.lang.Object clone()- Overrides:
clonein classjava.lang.Object
-
finalize
protected void finalize() throws java.lang.Throwable- Overrides:
finalizein classjava.lang.Object- Throws:
java.lang.Throwable
-
toString
public java.lang.String toString()- Overrides:
toStringin classjava.lang.Object
-
getProperties
protected java.util.Collection<java.lang.String> getProperties(java.lang.String[] properties) -
getPropertyType
protected java.lang.Class<?> getPropertyType(int index) -
getAssociationPropertyType
protected java.lang.Class<?> getAssociationPropertyType(int index) -
newInstance
-
init
protected void init() -
invoke
protected static void invoke(java.lang.reflect.Method m, java.lang.Object bean, java.lang.Object... args) -
invokeWithResult
protected static <V> V invokeWithResult(java.lang.reflect.Method m, java.lang.Object bean, java.lang.Object... args) -
init
protected void init(java.lang.Class<?> entityClass, java.util.Set<java.lang.Class<?>> explored, java.util.List<java.lang.String> properties, java.util.List<java.lang.String> associationProperties, java.util.List<java.lang.reflect.Method> getters, java.util.List<java.lang.reflect.Method> setters, java.util.List<java.lang.reflect.Method> childGetters, java.util.List<java.lang.reflect.Method> childAdders, java.util.List<java.lang.reflect.Method> childAddersAll, java.util.List<java.lang.reflect.Method> childRemovers, java.util.List<java.lang.reflect.Method> childSize, java.util.List<java.lang.reflect.Method> childClearers, java.util.List<java.lang.reflect.Method> childIsEmpty) throws java.beans.IntrospectionException- Throws:
java.beans.IntrospectionException
-