Java BeanUtils - Lazy DynaBeans
Sự miêu tả
Lazy DynaBeans là một triển khai của DynaBean, mang lại các đặc điểm của Lazy List và Lazy Map, điều này kết nối các thuộc tính của DynaClass. Có bốn loại Lazy DynaBeans:
LazyDynaBean: Nó chỉ định lười biếng DynaBean cung cấp các thuộc tính được sửa đổi động của tên và kiểu dữ liệu.
LazyDynaMap: Nó cho phép triển khai DynaBean ở mức độ nhẹ để lập bản đồ bằng cách sử dụng hệ thống danh sách hoặc bản đồ lười biếng.
LazyDynaList: Nó cung cấp danh sách cho DynaBean, Map's hoặc POJOS (Plain Old Java Object chỉ định lớp java bình thường).
LazyDynaClass: Nó thực hiện giao diện MutableDynaClass.
Sau đây là các tính năng của Lazy DynaBeans:
Lazy property addition: Nó được Lazy bean sử dụng để tự động thêm thuộc tính vào DynaClass khi phương thức set được gọi và nó có khả năng thêm hoặc xóa các thuộc tính của DynaClass.
Lazy List/Array growth: Danh sách hoặc mảng Lazy sẽ tự động phát triển khi thuộc tính được lập chỉ mục không thể chứa chỉ mục đang được đặt.
Lazy List/Array instantiation: Các phương thức getter và setter thuộc tính được lập chỉ mục của DynaBean dẫn đến kết quả là danh sách lười biếng hoặc tức là mảng, nếu không có sự tồn tại của thuộc tính được lập chỉ mục. Nếu một thuộc tính được lập chỉ mục không được xác định, thì nó sẽ tự động được thêm vào DynaClass và việc triển khai Danh sách mặc định được khởi tạo.
Lazy Map instantiation: Các phương thức getter và setter thuộc tính được ánh xạ của DynaBean dẫn đến việc tạo bản đồ lười biếng, nếu không có sự tồn tại của thuộc tính được ánh xạ. Nếu thuộc tính được ánh xạ không được xác định, thì nó sẽ tự động được thêm vào DynaClass và việc triển khai Bản đồ mặc định được khởi tạo.
Lazy Bean instantiation: LazyDynaBean sẽ khởi tạo bean bằng cách sử dụng một hàm tạo rỗng mặc định, nếu thuộc tính DynaClass được định nghĩa là DynaBean hoặc bean thông thường và không tồn tại trong DynaBean.
LazyDynaBean
Nó là triển khai của lazy bean tiêu chuẩn chỉ định lười biếng DynaBean cung cấp các thuộc tính được sửa đổi động của tên và kiểu dữ liệu. Nó thực hiện giao diện MutableDynaClass bằng cách liên kết với LazyDynaClass . Đoạn mã đơn giản dưới đây hiển thị cách sử dụng LazyDynaBean bằng cách sử dụng getters hoặc setters:
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
Nó cho phép triển khai DynaBean ở mức độ nhẹ để lập bản đồ bằng cách sử dụng hệ thống danh sách hoặc bản đồ lười biếng và nó không liên kết với các thuộc tính của DynaClass. Bản thân nó thực hiện giao diện DynaClass và lấy thông tin của DynaClass từ nội dung bản đồ. LazyDynaMap tạo Bản đồ của riêng mình bằng cách khởi tạo nó hoặc có thể được tạo xung quanh Bản đồ hiện có.
Đoạn mã dưới đây cho thấy việc tạo bản đồ mới:
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
Đoạn mã dưới đây cho thấy việc sử dụng Bản đồ hiện có trong DynaBean:
Map demoMap = .... // exisitng Map
DynaBean dynaBean = new LazyDynaMap(demoMap); // wrap Map in DynaBean
dynaBean.set("ford", "raptor"); // set properties
LazyDynaList
Nó cung cấp danh sách cho DynaBean, Map's hoặc POJOS (Plain Old Java Object chỉ định lớp java bình thường). Có hai điểm chính của lớp này:
Nó tự động phát triển và chiếm giữ danh sách với DynaBean, java.util.Map hoặc POJOS để chỉ định hành vi Lazy List.
Nó cung cấp cách dễ dàng để đưa Bộ sưu tập hoặc Mảng vào danh sách Lười biếng và cách dễ dàng để thoát khỏi Danh sách lười biếng.
LazyDynaClass
Nó thực hiện giao diện MutableDynaClass và mở rộng BasicDynaClass . Nó có thể được sử dụng làm DynaClass mặc định của LazyDynaBean và với các triển khai DynaBean khác. Không có gì liên quan đến DynaClass khi bạn đang sử dụng LazyDynaBean.
Đoạn mã dưới đây tạo 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
Đoạn mã dưới đây tạo LazyDynaBean và lấy 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