Lazy DynaBeans — это реализация DynaBean, которая дает характеристики Lazy List и Lazy Map, которая связывает свойства DynaClass. Существует четыре типа ленивых DynaBeans:
-
LazyDynaBean : определяет ленивый DynaBean, который предоставляет динамически изменяемые свойства имен и типов данных.
-
LazyDynaMap : упрощенная реализация DynaBean для отображения с помощью отложенной карты или системы списков.
-
LazyDynaList : предоставляет список для DynaBean, Map или POJOS (простой старый Java-объект, который определяет нормальный класс Java).
-
LazyDynaClass : он реализует интерфейс MutableDynaClass.
LazyDynaBean : определяет ленивый DynaBean, который предоставляет динамически изменяемые свойства имен и типов данных.
LazyDynaMap : упрощенная реализация DynaBean для отображения с помощью отложенной карты или системы списков.
LazyDynaList : предоставляет список для DynaBean, Map или POJOS (простой старый Java-объект, который определяет нормальный класс Java).
LazyDynaClass : он реализует интерфейс MutableDynaClass.
Ниже приведены особенности Lazy DynaBeans:
-
Ленивое добавление свойства : оно используется компонентами Lazy для автоматического добавления свойства в DynaClass при вызове метода set и имеет возможность добавлять или удалять свойства DynaClass.
-
Рост Lazy List / Array : список или массив Lazy будет автоматически увеличиваться, когда индексированное свойство не может вместить заданный индекс.
-
Создание отложенного списка / массива : методы получения и установки индексированных свойств DynaBean приводят к созданию отложенного списка или массива, если индексированное свойство не существует. Если индексированное свойство не определено, оно будет автоматически добавлено в DynaClass и будет реализована реализация List по умолчанию.
-
Создание отложенной карты : Методы получения и установки сопоставленных свойств DynaBean приводят к созданию отложенной карты, если не существует сопоставленного свойства. Если сопоставленное свойство не определено, то оно будет автоматически добавлено в DynaClass и будет реализована реализация Map по умолчанию.
-
Создание экземпляров Lazy Bean : LazyDynaBean создает экземпляр компонента с использованием пустого конструктора по умолчанию, если свойство DynaClass определено как DynaBean или обычный компонент и не существует в DynaBean.
Ленивое добавление свойства : оно используется компонентами Lazy для автоматического добавления свойства в DynaClass при вызове метода set и имеет возможность добавлять или удалять свойства DynaClass.
Рост Lazy List / Array : список или массив Lazy будет автоматически увеличиваться, когда индексированное свойство не может вместить заданный индекс.
Создание отложенного списка / массива : методы получения и установки индексированных свойств DynaBean приводят к созданию отложенного списка или массива, если индексированное свойство не существует. Если индексированное свойство не определено, оно будет автоматически добавлено в DynaClass и будет реализована реализация List по умолчанию.
Создание отложенной карты : Методы получения и установки сопоставленных свойств DynaBean приводят к созданию отложенной карты, если не существует сопоставленного свойства. Если сопоставленное свойство не определено, то оно будет автоматически добавлено в DynaClass и будет реализована реализация Map по умолчанию.
Создание экземпляров Lazy Bean : LazyDynaBean создает экземпляр компонента с использованием пустого конструктора по умолчанию, если свойство DynaClass определено как DynaBean или обычный компонент и не существует в DynaBean.
LazyDynaBean
Это реализация стандартного ленивого бина, который определяет ленивый DynaBean, который обеспечивает динамически изменяемые свойства имен и типов данных. Он реализует интерфейс MutableDynaClass , связываясь с LazyDynaClass . Приведенный ниже простой код демонстрирует использование LazyDynaBean с использованием методов получения или установки:
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
Это дает облегченную реализацию DynaBean для отображения с помощью отложенной карты или системы списков и не ассоциируется со свойствами DynaClass. Он сам реализует интерфейс DynaClass и получает информацию о DynaClass из содержимого карты. LazyDynaMap создает свою собственную карту путем ее создания или может быть сгенерирован вокруг существующей карты.
Код ниже показывает создание новой карты:
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
Приведенный ниже код показывает использование существующей карты в DynaBean:
Map demoMap = .... // exisitng Map DynaBean dynaBean = new LazyDynaMap(demoMap); // wrap Map in DynaBean dynaBean.set("ford", "raptor"); // set properties
LazyDynaList
Он предоставляет список для DynaBean, Map или POJOS (Plain Old Java Object, который определяет нормальный класс Java). Есть два основных момента этого класса:
-
Он автоматически увеличивается и занимает список с помощью DynaBean, java.util.Map или POJOS, чтобы указать поведение Lazy List.
-
Он предоставляет простой способ добавить коллекцию или массив в список Lazy и простой способ выйти из списка Lazy.
Он автоматически увеличивается и занимает список с помощью DynaBean, java.util.Map или POJOS, чтобы указать поведение Lazy List.
Он предоставляет простой способ добавить коллекцию или массив в список Lazy и простой способ выйти из списка Lazy.
LazyDynaClass
Он реализует интерфейс MutableDynaClass и расширяет BasicDynaClass . Он может использоваться в качестве DynaClass по умолчанию LazyDynaBean и с другими реализациями DynaBean. При использовании LazyDynaBean нет ничего общего с DynaClass.
Приведенный ниже код создает класс 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
Приведенный ниже код создает LazyDynaBean и получает DynaClass: