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