Ajaxフレームワーク ユーザーズガイド
目次 索引 前ページ次ページ

付録A 環境定義ファイル

A.6 コンバータ設定の定義(conversion)

データ型変換機能で利用するコンバータ設定は、conversion要素で定義します。

記述形式

<acfConfig>
  ...
  <conversion>
    <!-- コンバータの定義 (複数回参照のための) -->
    <defConverter>
      <converterId>コンバータ・インスタンスの参照名</converterId>
      <[converter]>コンバータのインスタンス</[converter]>
    </defConverter>
    <defConverter>...</defConverter>

    <!-- コンバータ選択ルール -->
    <conversionRule>
      <type>データBeanの型名</type>
      <converterId>コンバータ・インスタンスの参照名</converterId>
    </conversionRule>
    <conversionRule>...</conversionRule>
  </conversion>
  ...
</acfConfig>

要素の内容

要素名

説明

子要素(注)

conversion

トップレベルの要素
すべての記述が含まれます。

(defConverter)*
(conversionRule)*

defConverter

コンバータのインスタンスに名前を付けます。
同一コンバータを複数回参照することができます。
converterIdは参照するための名前を表し、[converter]が対応する定義を表します。

converterId
[converter]

conversionRule

コンバータ選択のルールを1つ追加します。
状況(type)に対して、コンバータのインスタンス([converter]またはconverterId)を対応付けます。

type
([converter] | converterId)

type

Javaの型名(データBeanまたはJavaBeansの型名)を表します。

Java型名を表す文字列

[converter]

(各コンバータ名の先頭を小文字にしたもの)

コンバータの定義を表します。
子要素の組合せは、コンバータによって異なります。詳細は、“コンバータ固有の設定項目”を参照してください。

(concreteType)?
(child)*

converterId

コンバータの参照を表します。

コンバータのインスタンスの名前を表す文字列

concreteType

コンバータが生成する具象型名を表します。

Java型名を表す文字列

child

propertyに対応する子オブジェクト用の情報を指定します。
typeには、子オブジェクトの型を指定します。
[converter]またはconverterIdには、コンバータを指定します。

property
(type)?
([converter] | converterId)?

property

プロパティ名を表します。

プロパティ名を表す文字列

注) 子要素の表記について、以下に説明します。

コンバータ固有の設定項目

コンバータ固有の設定項目には、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要素の設定が必須。
[converter]またはconverterIdによるコンバータの指定はできません。

CollectionConverter

java.util.ArrayList

property要素とtype要素の設定が必須。
[converter]またはconverterIdによるコンバータの指定はできません。

MapConverter

java.util.HashMap

property要素とtype要素の設定が必須。
[converter]またはconverterIdによるコンバータの指定はできません。

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クラスをデータ型変換機能で変換するには、環境定義ファイルに以下のように記述します。


目次 索引 前ページ次ページ

Copyright 2009 FUJITSU LIMITED