Java BeanUtils - Lazy DynaBeans
Beschreibung
Lazy DynaBeans ist eine Implementierung von DynaBean, die die Eigenschaften von Lazy List und Lazy Map enthält und die Eigenschaften von DynaClass verbindet. Es gibt vier Arten von Lazy DynaBeans:
LazyDynaBean: Es gibt Lazy DynaBean an, das dynamisch geänderte Eigenschaften von Namen und Datentypen bereitstellt.
LazyDynaMap: Es ermöglicht eine einfache Implementierung von DynaBean für die Zuordnung mithilfe eines Lazy Map- oder Listensystems.
LazyDynaList: Es enthält eine Liste für DynaBean, Map's oder POJOS (einfaches altes Java-Objekt, das die normale Java-Klasse angibt).
LazyDynaClass: Es implementiert die MutableDynaClass-Schnittstelle.
Im Folgenden sind die Funktionen von Lazy DynaBeans aufgeführt:
Lazy property addition: Wird von den Lazy Beans verwendet, um DynaClass automatisch Eigenschaften hinzuzufügen, wenn die set-Methode aufgerufen wird, und kann die Eigenschaften von DynaClass hinzufügen oder entfernen.
Lazy List/Array growth: Die Lazy-Liste oder das Lazy-Array wird automatisch vergrößert, wenn eine indizierte Eigenschaft den festgelegten Index nicht aufnehmen kann.
Lazy List/Array instantiation: Die Getter- und Setter-Methoden für indizierte Eigenschaften von DynaBean führen zu einer verzögerten Listen- oder Array-Instanziierung, wenn keine indizierte Eigenschaft vorhanden ist. Wenn eine indizierte Eigenschaft nicht definiert ist, wird sie automatisch zur DynaClass hinzugefügt und die Standardlistenimplementierung instanziiert.
Lazy Map instantiation: Die Getter- und Setter-Methoden für zugeordnete Eigenschaften von DynaBean führen zu einer verzögerten Karteninstanziierung, wenn keine zugeordneten Eigenschaften vorhanden sind. Wenn keine zugeordnete Eigenschaft definiert ist, wird sie automatisch zu DynaClass hinzugefügt und die standardmäßige Map-Implementierung instanziiert.
Lazy Bean instantiation: Die LazyDynaBean instanziiert die Bean mithilfe eines leeren Standardkonstruktors, wenn die DynaClass- Eigenschaft als DynaBean oder reguläre Bean definiert ist und in der DynaBean nicht vorhanden ist.
LazyDynaBean
Es handelt sich um die Implementierung einer Standard-Lazy-Bean, die die Lazy-DynaBean angibt, die dynamisch geänderte Eigenschaften von Namen und Datentypen bereitstellt. Es implementiert die MutableDynaClass- Schnittstelle durch Zuordnung zur LazyDynaClass . Der folgende einfache Code zeigt die Verwendung von LazyDynaBean mithilfe von Gettern oder Setzern:
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
Es bietet eine einfache Implementierung von DynaBean für die Zuordnung mithilfe eines Lazy Map- oder Listensystems und ist nicht mit den Eigenschaften von DynaClass verknüpft. Es selbst implementiert die DynaClass-Schnittstelle und bezieht die Informationen von DynaClass aus dem Karteninhalt. LazyDynaMap erstellt eine eigene Karte durch Instanziieren oder kann um eine vorhandene Karte herum generiert werden.
Der folgende Code zeigt die Erstellung einer neuen Karte:
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
Der folgende Code zeigt die Verwendung der vorhandenen Karte in DynaBean:
Map demoMap = .... // exisitng Map
DynaBean dynaBean = new LazyDynaMap(demoMap); // wrap Map in DynaBean
dynaBean.set("ford", "raptor"); // set properties
LazyDynaList
Es enthält eine Liste für DynaBean, Map's oder POJOS (einfaches altes Java-Objekt, das die normale Java-Klasse angibt). Es gibt zwei Hauptpunkte dieser Klasse:
Es wächst automatisch und belegt die Liste mit DynaBean, java.util.Map oder POJOS, um das Verhalten der Lazy List anzugeben.
Es bietet eine einfache Möglichkeit, eine Sammlung oder ein Array in die Lazy-Liste aufzunehmen und die Lazy-Liste zu verlassen.
LazyDynaClass
Es implementiert die MutableDynaClass- Schnittstelle und erweitert die BasicDynaClass . Es kann von LazyDynaBean und anderen DynaBean-Implementierungen als Standard-DynaClass verwendet werden. Mit der DynaClass hat nichts zu tun, wenn Sie die LazyDynaBean verwenden.
Der folgende Code erstellt die 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
Der folgende Code erstellt die LazyDynaBean und ruft die DynaClass ab:
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