Java BeanUtils - Lazy DynaBeans

Deskripsi

Lazy DynaBeans merupakan implementasi dari DynaBean yang memberikan ciri Lazy List dan Lazy Map ini menghubungkan properti DynaClass. Ada empat jenis Lazy DynaBeans:

  • LazyDynaBean: Ini menentukan DynaBean malas yang menyediakan properti nama dan tipe data yang dimodifikasi secara dinamis.

  • LazyDynaMap: Ini memberi implementasi ringan DynaBean untuk memetakan dengan menggunakan peta malas atau sistem daftar.

  • LazyDynaList: Ini menyediakan daftar untuk DynaBean, Map's atau POJOS (Objek Java Lama Biasa yang menentukan kelas java normal).

  • LazyDynaClass: Ini mengimplementasikan antarmuka MutableDynaClass.

Berikut ini adalah fitur-fitur Lazy DynaBeans:

  • Lazy property addition: Digunakan oleh kacang Lazy untuk menambahkan properti ke DynaClass secara otomatis saat metode set dipanggil dan memiliki kemampuan untuk menambah atau menghapus properti DynaClass.

  • Lazy List/Array growth: Daftar atau larik Lazy akan bertambah secara otomatis saat properti yang diindeks tidak dapat mengakomodasi indeks yang disetel.

  • Lazy List/Array instantiation: Metode pengambil dan penyetel properti yang diindeks dari hasil DynaBean dalam daftar malas atau instance array, jika tidak ada properti yang diindeks. Jika properti terindeks tidak ditentukan, maka properti tersebut akan ditambahkan secara otomatis ke DynaClass dan implementasi Daftar default dibuat.

  • Lazy Map instantiation: Metode pengambil dan penyetel properti yang dipetakan dari hasil DynaBean dalam pembuatan instance peta malas, jika tidak ada keberadaan properti yang dipetakan. Jika properti yang dipetakan tidak ditentukan, maka properti itu akan ditambahkan secara otomatis ke DynaClass dan implementasi Map default dibuat.

  • Lazy Bean instantiation: LazyDynaBean akan membuat instance kacang menggunakan konstruktor kosong default, jika properti DynaClass didefinisikan sebagai DynaBean atau kacang biasa dan tidak ada di DynaBean.

LazyDynaBean

Ini adalah implementasi dari lazy bean standar yang menentukan Lazy DynaBean yang menyediakan properti nama dan tipe data yang dimodifikasi secara dinamis. Ini mengimplementasikan antarmuka MutableDynaClass dengan mengaitkan dengan LazyDynaClass . Kode sederhana di bawah ini menunjukkan penggunaan LazyDynaBean dengan menggunakan getter atau 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

Ini memberikan implementasi ringan DynaBean untuk memetakan dengan menggunakan peta malas atau sistem daftar dan tidak terkait dengan properti DynaClass. Itu sendiri mengimplementasikan antarmuka DynaClass dan memperoleh informasi DynaClass dari konten peta. LazyDynaMap membuat Mapnya sendiri dengan membuat instance-nya atau dapat dibuat di sekitar Map yang ada.

Kode di bawah ini menunjukkan pembuatan peta baru:

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

Kode di bawah ini menunjukkan penggunaan Map yang ada di DynaBean:

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

LazyDynaList

Ini menyediakan daftar untuk DynaBean, Map's atau POJOS (Objek Java Lama Biasa yang menentukan kelas java normal). Ada dua poin utama dari kelas ini:

  • Ini secara otomatis tumbuh dan menempati daftar dengan DynaBean, java.util.Map atau POJOS untuk menentukan perilaku Daftar Malas.

  • Ini memberikan cara mudah untuk memasukkan Koleksi atau Array ke dalam daftar Malas dan cara mudah untuk keluar dari Daftar Malas.

LazyDynaClass

Ini mengimplementasikan antarmuka MutableDynaClass dan memperluas BasicDynaClass . Ini bisa digunakan sebagai DynaClass default oleh LazyDynaBean dan dengan implementasi DynaBean lainnya. Tidak ada hubungannya dengan DynaClass saat Anda menggunakan LazyDynaBean.

Kode di bawah ini membuat 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

Kode di bawah ini membuat LazyDynaBean dan mendapatkan 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