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