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