Учебники

Java BeanUtils — Ленивый DynaBeans

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: