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 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 Details

    • contract

      protected final TopiaEntityEnum contract
      the constant of the entity
    • properties

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

      protected Set<String> naturalIdsOnNotNullsProperties
      list of property names available on the entity used in a natural ids or marked as not-null.
      Since:
      2.6.9
    • 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.
    • ZERO

      @Deprecated protected static final Integer ZERO
      Deprecated.
    • ZEROC

      @Deprecated protected static final Character ZEROC
      Deprecated.
    • ZEROF

      @Deprecated protected static final Float ZEROF
      Deprecated.
    • ZEROL

      @Deprecated protected static final Long ZEROL
      Deprecated.
    • ZEROD

      @Deprecated protected static final Double ZEROD
      Deprecated.
    • ZEROB

      @Deprecated protected static final Byte ZEROB
      Deprecated.
  • Constructor Details

  • Method Details

    • 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
      See Also:
    • getNotNull

      public Map<String,Object> getNotNull(B bean)
      Pour obtenir un dictionnaire des propriétés marqués not-null du bean donne.
      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:
    • getNaturalIdsOnNotNullsProperties

      public 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

      public Map<String,Object> getNaturalIsdAndNotNulls(B bean)
      Pour obtenir un dictionnaire des propriétés marqués not-null et la clef naturelle du bean donne. 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:
    • 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
    • getNullValue

      @Deprecated public static Object getNullValue(Class<?> type)
      Deprecated.
      since 2.6 (there is some other library which does it
      Obtains the null value for the given type (works too with primitive types).
      Parameters:
      type - the type to test
      Returns:
      the null value or default value for primitive types
      Since:
      1.1.5
      See Also:
      • Defaults
    • 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