Java BeanUtils - Lazy DynaBeans
La description
Lazy DynaBeans est une implémentation de DynaBean, qui donne les caractéristiques de Lazy List et Lazy Map, ce qui relie les propriétés de DynaClass. Il existe quatre types de Lazy DynaBeans:
LazyDynaBean: Il spécifie DynaBean paresseux qui fournit des propriétés modifiées dynamiquement des noms et des types de données.
LazyDynaMap: Il donne une implémentation légère de DynaBean pour mapper en utilisant une carte paresseuse ou un système de liste.
LazyDynaList: Il fournit une liste pour DynaBean, Map ou POJOS (Plain Old Java Object qui spécifie la classe Java normale).
LazyDynaClass: Il implémente l'interface MutableDynaClass.
Voici les fonctionnalités de Lazy DynaBeans:
Lazy property addition: Il est utilisé par les haricots Lazy pour ajouter automatiquement une propriété à DynaClass lorsque la méthode set est appelée et il a la capacité d'ajouter ou de supprimer les propriétés de DynaClass.
Lazy List/Array growth: La liste ou le tableau Lazy s'agrandit automatiquement lorsqu'une propriété indexée n'est pas en mesure de prendre en charge l'index défini.
Lazy List/Array instantiation: Les méthodes de lecture et de définition des propriétés indexées des résultats de DynaBean dans une liste différée ou une instanciation de tableau, s'il n'y a pas d'existence d'une propriété indexée. Si une propriété indexée n'est pas définie, elle sera ajoutée automatiquement à DynaClass et l'implémentation par défaut de la liste sera instanciée.
Lazy Map instantiation: Les méthodes getter et setter de propriété mappée de DynaBean donnent une instanciation de carte différée, s'il n'y a pas de propriété mappée. Si la propriété mappée n'est pas définie, elle sera ajoutée automatiquement à DynaClass et l'implémentation de la carte par défaut sera instanciée.
Lazy Bean instantiation: Le LazyDynaBean instancie le bean en utilisant un constructeur vide par défaut, si la propriété DynaClass est définie comme DynaBean ou bean normal et n'existe pas dans le DynaBean.
LazyDynaBean
Il s'agit de l'implémentation du lazy bean standard qui spécifie le lazy DynaBean qui fournit des propriétés modifiées dynamiquement des noms et des types de données. Il implémente l' interface MutableDynaClass en s'associant à LazyDynaClass . Le code simple ci-dessous montre l'utilisation de LazyDynaBean en utilisant des getters ou des setters:
DynaBean dynaBean = new LazyDynaBean();
dynaBean.set("company", "Model"); // simple
dynaBean.set("customer", "fname", "Steve"); // mapped
dynaBean.set("customer", "lname", "Smith"); // mapped
dynaBean.set("address", 0, addressLine1); // indexed
dynaBean.set("address", 1, addressLine2); // indexed
LazyDynaMap
Il donne une implémentation légère de DynaBean à mapper en utilisant une carte paresseuse ou un système de liste et il ne s'associe pas aux propriétés de DynaClass. Il implémente lui-même l'interface DynaClass et obtient les informations de DynaClass à partir du contenu de la carte. LazyDynaMap crée sa propre carte en l'instanciant ou peut être générée autour d'une carte existante.
Le code ci-dessous montre la création d'une nouvelle carte:
DynaBean dynaBean = new LazyDynaBean();
DynaBean dynaBean = new LazyDynaMap(); // create DynaBean
dynaBean.set("company", "Model"); // simple
dynaBean.set("customer", "fname", "Steve"); // mapped
dynaBean.set("address", 0, addressLine1); // indexed
Map demoMap = dynaBean.getMap() // retrieve the Map
Le code ci-dessous montre l'utilisation de la carte existante dans DynaBean:
Map demoMap = .... // exisitng Map
DynaBean dynaBean = new LazyDynaMap(demoMap); // wrap Map in DynaBean
dynaBean.set("ford", "raptor"); // set properties
LazyDynaList
Il fournit une liste pour DynaBean, Map's ou POJOS (Plain Old Java Object qui spécifie la classe Java normale). Il y a deux points principaux de cette classe:
Il grandit et occupe automatiquement la liste avec DynaBean, java.util.Map ou POJOS pour spécifier le comportement de Lazy List.
Il fournit un moyen facile de mettre une collection ou un tableau dans la liste Lazy et un moyen facile de sortir de la Lazy List.
LazyDynaClass
Il implémente l' interface MutableDynaClass et étend BasicDynaClass . Il peut être utilisé comme DynaClass par défaut par LazyDynaBean et avec d'autres implémentations DynaBean. Il n'y a rien à voir avec le DynaClass lorsque vous utilisez le LazyDynaBean.
Le code ci-dessous crée la LazyDynaClass:
MutableDynaClass dynaClass = new LazyDynaClass(); // create DynaClass
dynaClass.add("price", java.lang.Integer.class); // add property
dynaClass.add("orders", OrderBean[].class); // add indexed property
dynaClass.add("orders", java.util.TreeMapp.class); // add mapped property
DynaBean dynaBean = new LazyDynaBean(dynaClass); // Create DynaBean with associated DynaClass
Le code ci-dessous crée le LazyDynaBean et obtient le DynaClass:
DynaBean dynaBean = new LazyDynaBean(); // Create LazyDynaBean
MutableDynaClass dynaClass =
(MutableDynaClass)dynaBean.getDynaClass(); // get DynaClass
dynaClass.add("price", java.lang.Integer.class); // add property
dynaClass.add("exBeans", myPackage.MyBean[].class); // add 'array' indexed property
dynaClass.add("exMap", java.util.TreeMapp.class); // add mapped property