Ajaxフレームワーク ユーザーズガイド |
目次 索引 |
付録A 環境定義ファイル |
データ型変換機能で利用するコンバータ設定は、conversion要素で定義します。
<acfConfig> ... <conversion> <!-- コンバータの定義 (複数回参照のための) --> <defConverter> <converterId>コンバータ・インスタンスの参照名</converterId> <[converter]>コンバータのインスタンス</[converter]> </defConverter> <defConverter>...</defConverter> <!-- コンバータ選択ルール --> <conversionRule> <type>データBeanの型名</type> <converterId>コンバータ・インスタンスの参照名</converterId> </conversionRule> <conversionRule>...</conversionRule> </conversion> ... </acfConfig> |
要素名 |
説明 |
子要素(注) |
---|---|---|
conversion |
トップレベルの要素 |
(defConverter)* |
defConverter |
コンバータのインスタンスに名前を付けます。 |
converterId |
conversionRule |
コンバータ選択のルールを1つ追加します。 |
type |
type |
Javaの型名(データBeanまたはJavaBeansの型名)を表します。 |
Java型名を表す文字列 |
[converter] (各コンバータ名の先頭を小文字にしたもの) |
コンバータの定義を表します。 |
(concreteType)? |
converterId |
コンバータの参照を表します。 |
コンバータのインスタンスの名前を表す文字列 |
concreteType |
コンバータが生成する具象型名を表します。 |
Java型名を表す文字列 |
child |
propertyに対応する子オブジェクト用の情報を指定します。 |
property |
property |
プロパティ名を表します。 |
プロパティ名を表す文字列 |
注) 子要素の表記について、以下に説明します。
- A B: AのあとにBを記述します。
- (A|B): AまたはBのどちらかを記述します。
- (A)*: Aを1回以上繰り返して記述するか、全く記述しません。
- (A)?: Aを1回記述するか、全く記述しません。
コンバータ固有の設定項目には、concreteTypeとchildの2種類があります。
以下の表に、各コンバータに子要素として設定可能な項目を示します。
コンバータ名 |
concreteType |
child |
||
---|---|---|---|---|
設定 |
省略値 |
設定 |
省略値 |
|
BooleanConverter |
△ |
boolean, Boolean |
× |
− |
ByteConverter |
△ |
byte, Byte |
× |
− |
ShortConverter |
△ |
short, Short |
× |
− |
IntegerConverter |
△ |
int, Integer |
× |
− |
LongConverter |
△ |
long, Long |
× |
− |
FloatConverter |
△ |
float, Float |
× |
− |
DoubleConverter |
△ |
double, Double |
× |
− |
CharacterConverter |
△ |
char, Character |
× |
− |
StringConverter |
△ |
String |
× |
− |
DateConverter |
△ |
java.util.Date |
× |
− |
BigIntegerConverter |
△ |
java.math.BigInteger |
× |
− |
BigDecimalConverter |
△ |
java.math.Decimal |
× |
− |
ArrayConverter |
○ |
ユーザ指定の配列型 |
○ |
property要素とtype要素の設定が必須。 |
CollectionConverter |
△ |
java.util.ArrayList |
○ |
property要素とtype要素の設定が必須。 |
MapConverter |
△ |
java.util.HashMap |
○ |
property要素とtype要素の設定が必須。 |
BeanConverter |
○ |
ユーザ指定のJavaBeanクラス |
△ |
各プロパティの型と対応するコンバータ |
○: 必須、△: 任意、×: 不可
注) 要素名は、コンバータ名の先頭を小文字にしたものです。
以下の表に、child要素を必要とするコンバータのchild要素の数、およびchild要素のpropertyに指定する値を示します。
コンバータ名 |
childの数 |
childのpropertyの値 |
---|---|---|
ArrayConverter |
1 |
"component" |
CollectionConverter |
1 |
"element" |
MapConverter |
1 |
"value" |
BeanConverter |
0〜n(注) |
JavaBeanに定義されているプロパティ名 |
注) nは、JavaBeanに定義されているプロパティの数です。
以下に、配列の要素がint型の、ArrayConverterの記述例を示します。
<conversionRule> <type>int[]</type> <arrayConverter> <concreteType>int[]</concreteType> <child> <property>component</property> <type>int</type> </child> </arrayConverter> </conversionRule> |
Java型情報の例
以下の例では、publicなどの修飾詞やsetter/getterを省略しています。
また、Java 5のgenericの記法を利用していますが、Java 1.4でも、設定の記述方法やコンバータの動作は変わりません。
package user.package; // RPC 公開サービス class ProjectBuilder { // 設定が不要な例 int getNumberOfProjects(); // 引数にコレクションが現れる例 Project build(Person leader, Collection<Person> persons); // 戻り値にコレクションが現れる例 Collection<Project> getProjects(); } // 単純な JavaBean class Person { String name; Date birthday; } // 複雑な JavaBean class Project { String name; Person leader; List<Person> persons; Map<String, Integer> nameToId; Map<String, Collection<Person>> nameToRelatedPersons; } |
コンバータ設定の例
上記の例のようなJavaクラスをデータ型変換機能で変換するには、環境定義ファイルに以下のように記述します。
目次 索引 |