Java BeanUtils - Lazy DynaBeans

Descripción

Lazy DynaBeans es una implementación de DynaBean, que da las características de Lazy List y Lazy Map, esto conecta las propiedades de DynaClass. Hay cuatro tipos de Lazy DynaBeans:

  • LazyDynaBean: Especifica lazy DynaBean que proporciona propiedades modificadas dinámicamente de nombres y tipos de datos.

  • LazyDynaMap: Proporciona una implementación liviana de DynaBean para mapear mediante el uso de mapas perezosos o sistema de listas.

  • LazyDynaList: Proporciona una lista para DynaBean, Map's o POJOS (Plain Old Java Object que especifica la clase normal de Java).

  • LazyDynaClass: Implementa la interfaz MutableDynaClass.

Las siguientes son las características de Lazy DynaBeans:

  • Lazy property addition: Los Lazy beans lo utilizan para agregar propiedades a DynaClass automáticamente cuando se llama al método set y tiene la capacidad de agregar o eliminar las propiedades de DynaClass.

  • Lazy List/Array growth: La lista o matriz Lazy crecerá automáticamente cuando una propiedad indexada no pueda acomodar el índice que se está configurando.

  • Lazy List/Array instantiation: Los métodos getter y setter de propiedades indexadas de DynaBean dan como resultado una lista diferida o una instanciación de matriz, si no existe una propiedad indexada. Si una propiedad indexada no está definida, se agregará automáticamente a DynaClass y se creará una instancia de la implementación de List predeterminada.

  • Lazy Map instantiation: Los métodos getter y setter de propiedad mapeada de DynaBean dan como resultado una instanciación de mapa diferido, si no existe una propiedad mapeada. Si la propiedad asignada no está definida, se agregará automáticamente a DynaClass y se creará una instancia de la implementación predeterminada del mapa.

  • Lazy Bean instantiation: El LazyDynaBean instanciará el bean utilizando un constructor vacío predeterminado, si la propiedad DynaClass está definida como DynaBean o bean regular y no existe en DynaBean.

LazyDynaBean

Es la implementación del bean perezoso estándar que especifica el DynaBean perezoso que proporciona propiedades modificadas dinámicamente de nombres y tipos de datos. Implementa la interfaz MutableDynaClass asociándose con LazyDynaClass . El siguiente código simple muestra el uso de LazyDynaBean mediante getters o 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

Proporciona una implementación liviana de DynaBean para mapear utilizando un mapa diferido o un sistema de listas y no se asocia con las propiedades de DynaClass. Él mismo implementa la interfaz DynaClass y obtiene la información de DynaClass del contenido del mapa. LazyDynaMap crea su propio mapa al instanciarlo o se puede generar alrededor de un mapa existente.

El siguiente código muestra la creación de un nuevo mapa:

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

El siguiente código muestra el uso del mapa existente en DynaBean:

Map demoMap = ....                               // exisitng Map
 DynaBean dynaBean = new LazyDynaMap(demoMap);    // wrap Map in DynaBean
 dynaBean.set("ford", "raptor");                  // set properties

LazyDynaList

Proporciona una lista para DynaBean, Map's o POJOS (Plain Old Java Object que especifica la clase Java normal). Hay dos puntos principales de esta clase:

  • Crece automáticamente y ocupa la lista con DynaBean, java.util.Map o POJOS para especificar el comportamiento de Lazy List.

  • Proporciona una manera fácil de poner una colección o matriz en la lista Lazy y una manera fácil de salir de la lista Lazy.

LazyDynaClass

Implementa la interfaz MutableDynaClass y extiende BasicDynaClass . LazyDynaBean y otras implementaciones de DynaBean pueden utilizarlo como DynaClass predeterminado. No hay nada que ver con DynaClass cuando se utiliza LazyDynaBean.

El siguiente código crea 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

El siguiente código crea LazyDynaBean y obtiene 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