Java-beanutils-dynamic-beans-lazy-dynabeans
Java BeanUtils-遅延DynaBeans
説明
レイジーダイナビーンズはダイナビーンの実装であり、レイジーリストとレイジーマップの特性を提供し、これによりダイナクラスのプロパティが接続されます。 Lazy DynaBeansには4つのタイプがあります。
- LazyDynaBean :名前とデータ型の動的に変更されたプロパティを提供するレイジーDynaBeanを指定します。
- LazyDynaMap :遅延マップまたはリストシステムを使用してマップするDynaBeanの軽量実装を提供します。
- LazyDynaList :DynaBean、Map、またはPOJOS(通常のJavaクラスを指定するプレーンオールドJavaオブジェクト)のリストを提供します。
- LazyDynaClass :MutableDynaClassインターフェイスを実装します。
Lazy DynaBeansの機能は次のとおりです。
- * Lazyプロパティの追加*:setメソッドが呼び出されたときに自動的にプロパティをDynaClassに追加するためにLazy Beanによって使用され、DynaClassのプロパティを追加または削除する機能があります。
- レイジーリスト/配列の成長:インデックス付きプロパティが設定されているインデックスに対応できない場合、レイジーリストまたは配列は自動的に成長します。
- 遅延リスト/配列のインスタンス化:インデックス付きプロパティが存在しない場合、DynaBeanのインデックス付きプロパティのgetterおよびsetterメソッドは、遅延リストまたは配列のインスタンス化になります。 インデックス付きプロパティが定義されていない場合、DynaClassに自動的に追加され、デフォルトのList実装がインスタンス化されます。
- レイジーマップのインスタンス化:マップされたプロパティが存在しない場合、DynaBeanのマップされたプロパティのgetterおよびsetterメソッドはレイジーマップのインスタンス化を行います。 マップされたプロパティが定義されていない場合、DynaClassに自動的に追加され、デフォルトのMap実装がインスタンス化されます。
- * Lazy Beanのインスタンス化*:_DynaClass_プロパティがDynaBeanまたは通常のBeanとして定義され、DynaBeanに存在しない場合、LazyDynaBeanはデフォルトの空のコンストラクターを使用してBeanをインスタンス化します。
LazyDynaBean
これは、名前とデータ型の動的に変更されたプロパティを提供するレイジーDynaBeanを指定する標準レイジーBeanの実装です。 _LazyDynaClass_と関連付けることにより、_MutableDynaClass_インターフェースを実装します。 以下の簡単なコードは、ゲッターまたはセッターを使用した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(通常のJavaクラスを指定するプレーンオールドJavaオブジェクト)のリストを提供します。 このクラスには2つの主要なポイントがあります。
- Lazy Listの動作を指定するために、DynaBean、java.util.Map、またはPOJOSでリストを自動的に拡張して占有します。
- コレクションまたは配列をレイジーリストに入れる簡単な方法と、レイジーリストから出てくる簡単な方法を提供します。
LazyDynaClass
_MutableDynaClass_インターフェースを実装し、_BasicDynaClass_を拡張します。 LazyDynaBeanおよび他のDynaBean実装でデフォルトのDynaClassとして使用できます。 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を取得します。
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