Java BeanUtils - Lazy DynaBeans

Descrizione

Lazy DynaBeans è un'implementazione di DynaBean, che fornisce le caratteristiche di Lazy List e Lazy Map che collega le proprietà di DynaClass. Esistono quattro tipi di Lazy DynaBeans:

  • LazyDynaBean: Specifica il DynaBean pigro che fornisce proprietà modificate dinamicamente di nomi e tipi di dati.

  • LazyDynaMap: Fornisce un'implementazione leggera di DynaBean per la mappatura utilizzando una mappa lenta o un sistema di elenchi.

  • LazyDynaList: Fornisce un elenco di DynaBean, Map o POJOS (Plain Old Java Object che specifica la normale classe java).

  • LazyDynaClass: Implementa l'interfaccia MutableDynaClass.

Le seguenti sono le caratteristiche di Lazy DynaBeans:

  • Lazy property addition: Viene utilizzato dai Lazy Bean per aggiungere automaticamente proprietà a DynaClass quando viene chiamato il metodo set e ha la capacità di aggiungere o rimuovere le proprietà di DynaClass.

  • Lazy List/Array growth: L'elenco o l'array Lazy crescerà automaticamente quando una proprietà indicizzata non è in grado di ospitare l'indice impostato.

  • Lazy List/Array instantiation: I metodi getter e setter della proprietà indicizzata dei risultati di DynaBean in una lazy list o nella creazione di istanze di array, se non esiste una proprietà indicizzata. Se una proprietà indicizzata non è definita, verrà aggiunta automaticamente a DynaClass e verrà creata un'istanza dell'implementazione List predefinita.

  • Lazy Map instantiation: I metodi getter e setter delle proprietà mappate dei DynaBean danno come risultato un'istanza lazy map, se non esiste alcuna proprietà mappata. Se la proprietà mappata non è definita, verrà aggiunta automaticamente a DynaClass e verrà creata un'istanza dell'implementazione della mappa predefinita.

  • Lazy Bean instantiation: LazyDynaBean istanzia il bean utilizzando un costruttore vuoto predefinito, se la proprietà DynaClass è definita come DynaBean o bean normale e non esiste in DynaBean.

LazyDynaBean

È l'implementazione del lazy bean standard che specifica il lazy DynaBean che fornisce proprietà modificate dinamicamente di nomi e tipi di dati. Implementa l' interfaccia MutableDynaClass associandosi a LazyDynaClass . Il semplice codice seguente mostra l'utilizzo di LazyDynaBean utilizzando getter o setter:

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

Fornisce un'implementazione leggera di DynaBean per mappare utilizzando una mappa lenta o un sistema di elenchi e non si associa alle proprietà di DynaClass. Essa stessa implementa l'interfaccia DynaClass e ottiene le informazioni di DynaClass dai contenuti della mappa. LazyDynaMap crea la propria mappa istanziandola o può essere generata attorno a una mappa esistente.

Il codice seguente mostra la creazione di una nuova mappa:

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

Il codice seguente mostra l'uso della mappa esistente in DynaBean:

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

LazyDynaList

Fornisce un elenco di DynaBean, Map o POJOS (Plain Old Java Object che specifica la normale classe java). Ci sono due punti principali di questa classe:

  • Cresce automaticamente e occupa l'elenco con DynaBean, java.util.Map o POJOS per specificare il comportamento Lazy List.

  • Fornisce un modo semplice per inserire una raccolta o un array nell'elenco pigro e un modo semplice per uscire dall'elenco pigro.

LazyDynaClass

Implementa l' interfaccia MutableDynaClass ed estende BasicDynaClass . Può essere utilizzato come DynaClass predefinito da LazyDynaBean e con altre implementazioni DynaBean. Non c'è nulla da fare con DynaClass quando si utilizza LazyDynaBean.

Il codice seguente crea 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

Il codice seguente crea il LazyDynaBean e ottiene 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