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