7.21. 汎用ユーティリティ

本フレームワークで提供している、汎用的に利用できるユーティリティクラスを以下に示す。

クラス名 モジュール名 概要
DateUtil nablarch-core 日付に関する機能を提供する
FileUtil nablarch-core ファイルの取り扱いに関する機能を提供する
ObjectUtil nablarch-core オブジェクトの取り扱いに関する機能を提供する
StringUtil nablarch-core 文字列に関する機能を提供する
BeanUtil nablarch-core-beans Java Beansクラスに関する機能を提供する。プロパティを扱う際の型変換ルールについては BeanUtilの型変換ルール を参照。
Base64Util nablarch-fw Base64エンコーディングに関する機能を提供する
BinaryUtil nablarch-fw-web-extension バイナリに関する機能を提供する

7.21.1. BeanUtilの型変換ルール

BeanUtil では、Java BeansオブジェクトやMapオブジェクトから 別のJava Beansオブジェクトにデータ移行する際にプロパティの型変換を行っている。

なお、MapオブジェクトからJava Beansオブジェクトにデータ移行する場合、 Mapオブジェクトのキーに . が含まれていればそのプロパティをネストオブジェクトとして扱う。

型変換ルールについては、 nablarch.core.beans.converter パッケージ配下に配置されている Converter 実装クラスをそれぞれ参照すること。

7.21.1.1. 型変換ルールを追加する

型変換ルールを追加するには、以下の手順が必要となる。

  1. Converter の実装クラスを作成し、Converter#convert に変換処理を実装する。
  2. ConversionManager の実装クラスを作成する。 今回は標準の型変換ルールに追加でルールを設定するため、 ConversionManager をプロパティとして持つ、 ConversionManager の実装クラスを作成する。
public class SampleConversionManager implements ConversionManager {

    private ConversionManager delegateManager;

    @Override
    public Map<Class<?>, Converter<?>> getConverters() {
        Map<Class<?>, Converter<?>> converters = new HashMap<Class<?>, Converter<?>>();

        // 標準のコンバータ
        converters.putAll(delegateManager.getConverters());

        // 今回作成したコンバータ
        converters.put(BigInteger.class, new CustomConverter());

        return Collections.unmodifiableMap(converters);
    }

    public void setDelegateManager(ConversionManager delegateManager) {
        this.delegateManager = delegateManager;
    }
}
  1. コンポーネント設定ファイルに、 ConversionManager の実装クラスを設定する。

    ポイント
    • コンポーネント名は conversionManager とすること。
    <component name="conversionManager" class="sample.SampleConversionManager">
      <property name="delegateManager">
        <component class="nablarch.core.beans.BasicConversionManager" />
      </property>
    </component>