Java BeanUtils - Lazy DynaBeans
Descrição
Lazy DynaBeans é uma implementação de DynaBean, que fornece as características de Lazy List e Lazy Map, que conecta as propriedades de DynaClass. Existem quatro tipos de Lazy DynaBeans:
LazyDynaBean: Especifica DynaBean preguiçoso que fornece propriedades modificadas dinamicamente de nomes e tipos de dados.
LazyDynaMap: Fornece implementação leve de DynaBean para mapear usando mapa preguiçoso ou sistema de lista.
LazyDynaList: Fornece uma lista para DynaBean, Map's ou POJOS (Plain Old Java Object que especifica a classe java normal).
LazyDynaClass: Implementa a interface MutableDynaClass.
A seguir estão os recursos do Lazy DynaBeans:
Lazy property addition: É usado pelos beans Lazy para adicionar propriedade ao DynaClass automaticamente quando o método set é chamado e tem a capacidade de adicionar ou remover as propriedades do DynaClass.
Lazy List/Array growth: A lista ou matriz Lazy aumentará automaticamente quando uma propriedade indexada não for capaz de acomodar o índice que está sendo definido.
Lazy List/Array instantiation: Os métodos getter e setter de propriedade indexada dos resultados de DynaBean em lista preguiçosa ou instanciação de array, se não houver uma propriedade indexada. Se uma propriedade indexada não for definida, ela será adicionada automaticamente ao DynaClass e a implementação de Lista padrão instanciada.
Lazy Map instantiation: Os métodos getter e setter da propriedade mapeada dos resultados do DynaBean na instanciação do mapa lento, se não houver nenhuma propriedade mapeada. Se a propriedade mapeada não for definida, ela será adicionada automaticamente ao DynaClass e a implementação do Mapa padrão instanciada.
Lazy Bean instantiation: O LazyDynaBean irá instanciar o bean usando um construtor vazio padrão, se a propriedade DynaClass for definida como DynaBean ou bean regular e não existir no DynaBean.
LazyDynaBean
É a implementação do lazy bean padrão que especifica o lazy DynaBean que fornece propriedades modificadas dinamicamente de nomes e tipos de dados. Ele implementa a interface MutableDynaClass associando-se a LazyDynaClass . O código simples abaixo mostra o uso de LazyDynaBean usando getters ou 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
Fornece implementação leve de DynaBean para mapear usando mapa preguiçoso ou sistema de lista e não se associa com propriedades de DynaClass. Ele próprio implementa a interface DynaClass e obtém as informações de DynaClass do conteúdo do mapa. LazyDynaMap cria seu próprio mapa instanciando-o ou pode ser gerado em torno de um mapa existente.
O código abaixo mostra a criação de um novo mapa:
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 código a seguir mostra o uso do mapa existente no DynaBean:
Map demoMap = .... // exisitng Map
DynaBean dynaBean = new LazyDynaMap(demoMap); // wrap Map in DynaBean
dynaBean.set("ford", "raptor"); // set properties
LazyDynaList
Ele fornece uma lista para DynaBean, Map's ou POJOS (Plain Old Java Object que especifica a classe java normal). Existem dois pontos principais desta classe:
Ele cresce automaticamente e ocupa a lista com DynaBean, java.util.Map ou POJOS para especificar o comportamento da Lista Preguiçosa.
Ele fornece uma maneira fácil de colocar uma Coleção ou Array na lista Lazy e uma maneira fácil de sair da Lista Lazy.
LazyDynaClass
Ele implementa a interface MutableDynaClass e estende a BasicDynaClass . Ele pode ser usado como DynaClass padrão por LazyDynaBean e com outras implementações DynaBean. Não há nada a ver com o DynaClass quando você está usando o LazyDynaBean.
O código a seguir cria a 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 código a seguir cria o LazyDynaBean e obtém a 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