shohaku.core.beans
クラス DefaultTypeTransformer

java.lang.Object
  拡張shohaku.core.beans.DefaultTypeTransformer
すべての実装インタフェース:
TypeTransformer

public class DefaultTypeTransformer
extends java.lang.Object
implements TypeTransformer

TypeTransformer のデフォルト実装を提供します。
この実装では、識別子をオブジェクトクラスで統一的に扱う為、プリミティブ型は対応するラッパクラスに変換して登録、削除、検索されます。


コンストラクタの概要
DefaultTypeTransformer()
          空のエントリで初期化します。
 
メソッドの概要
 FTransformer add(java.lang.Class clazz, FTransformer transformer)
          クラスを識別子として変換ファンクタを追加します。
 void clear()
          登録されているエントリをクリアします。
 boolean contains(java.lang.Class clazz)
          指定のクラスに対応するエントリがある場合は true を返却します。
protected  java.lang.Class entryClass(java.lang.Class clazz)
          指定のクラスから実際に登録するクラスを返却します。
 FTransformer find(java.lang.Class clazz)
          指定のクラスから推測される変換ファンクタを返却します。
protected  FTransformer findTransformer(java.lang.Class clazz)
          指定のクラスから推測される変換ファンクタを検索して返却します。
 FTransformer get(java.lang.Class clazz)
          指定のクラスに対応する変換ファンクタを返却します。
protected  LogFeature getLog()
          TypeTransformer.class を識別名とするログを返却します。
protected  java.util.Map getTable()
          クラスをキーとして変換ファンクタを保管するマップを返却します。
 java.util.Iterator getTypes()
          クラス型の要素を持つ反復子を生成して返却します。
protected  void init()
          コンストラクタから呼ばれる初期化のフックポイントです。
 FTransformer remove(java.lang.Class clazz)
          クラスに対応するエントリを削除します。
 int size()
          格納する変換ファンクタのエントリ数を返却します。
 java.lang.Object transform(java.lang.Class clazz, java.lang.Object o)
          指定のクラスから推測される変換ファンクタから変換を実行して結果を返却します。
 java.lang.Object transform(java.lang.Class clazz, java.lang.Object o, java.util.Map args)
          指定のクラスから推測される変換ファンクタから変換を実行して結果を返却します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

DefaultTypeTransformer

public DefaultTypeTransformer()
空のエントリで初期化します。

メソッドの詳細

add

public FTransformer add(java.lang.Class clazz,
                        FTransformer transformer)
クラスを識別子として変換ファンクタを追加します。
既にクラスが登録されている場合は変換ファンクタを上書きします。

パラメータ:
clazz - クラス
transformer - 変換ファンクタ
戻り値:
上書きされた場合は既存の変換ファンクタ、以外は null

clear

public void clear()
登録されているエントリをクリアします。


remove

public FTransformer remove(java.lang.Class clazz)
クラスに対応するエントリを削除します。

パラメータ:
clazz - クラス
戻り値:
実際に削除された場合は削除された変換ファンクタ、以外は null

size

public int size()
インタフェース TypeTransformer の記述:
格納する変換ファンクタのエントリ数を返却します。

定義:
インタフェース TypeTransformer 内の size
戻り値:
格納するエントリ数

getTypes

public java.util.Iterator getTypes()
インタフェース TypeTransformer の記述:
クラス型の要素を持つ反復子を生成して返却します。

定義:
インタフェース TypeTransformer 内の getTypes
戻り値:
クラスの反復子

contains

public boolean contains(java.lang.Class clazz)
インタフェース TypeTransformer の記述:
指定のクラスに対応するエントリがある場合は true を返却します。

定義:
インタフェース TypeTransformer 内の contains
パラメータ:
clazz - 検証するクラス
戻り値:
指定のクラスに対応するエントリがある場合は true

get

public FTransformer get(java.lang.Class clazz)
インタフェース TypeTransformer の記述:
指定のクラスに対応する変換ファンクタを返却します。
対応する変換ファンクタが発見出来ない場合は null が返ります。

定義:
インタフェース TypeTransformer 内の get
パラメータ:
clazz - クラス
戻り値:
指定のクラスに対応する変換ファンクタ

find

public FTransformer find(java.lang.Class clazz)
インタフェース TypeTransformer の記述:
指定のクラスから推測される変換ファンクタを返却します。
このメソッドはクラスから推測的に対応クラスを探します。
推測される変換ファンクタが発見出来ない場合は null が返ります。

定義:
インタフェース TypeTransformer 内の find
パラメータ:
clazz - クラス
戻り値:
指定のクラスから推測される変換ファンクタ

transform

public java.lang.Object transform(java.lang.Class clazz,
                                  java.lang.Object o)
インタフェース TypeTransformer の記述:
指定のクラスから推測される変換ファンクタから変換を実行して結果を返却します。
推測の規準は find(Class clazz) と同じ規準となります。
推測される変換ファンクタが発見出来ない場合は IllegalIdentifierException が返ります。
このメソッドは transform(clazz, o, java.util.Collections.EMPTY_MAP) と同意です。

定義:
インタフェース TypeTransformer 内の transform
パラメータ:
clazz - クラス
o - 変換対象のオブジェクト
戻り値:
変換ファンクタの処理結果

transform

public java.lang.Object transform(java.lang.Class clazz,
                                  java.lang.Object o,
                                  java.util.Map args)
インタフェース TypeTransformer の記述:
指定のクラスから推測される変換ファンクタから変換を実行して結果を返却します。
推測の規準は find(Class clazz) と同じ規準となります。
推測される変換ファンクタが発見出来ない場合は IllegalIdentifierException が返ります。

定義:
インタフェース TypeTransformer 内の transform
パラメータ:
clazz - クラス
o - 変換対象のオブジェクト
args - 変換パラメータ
戻り値:
変換ファンクタの処理結果

init

protected void init()
コンストラクタから呼ばれる初期化のフックポイントです。


findTransformer

protected FTransformer findTransformer(java.lang.Class clazz)
指定のクラスから推測される変換ファンクタを検索して返却します。
推測される変換ファンクタが発見出来ない場合は null が返ります。
継承クラスの拡張ポイントです。

パラメータ:
clazz - クラス
戻り値:
指定のクラスから推測される変換ファンクタ

entryClass

protected java.lang.Class entryClass(java.lang.Class clazz)
指定のクラスから実際に登録するクラスを返却します。
デフォルトでは指定のクラスがプリミティブ型の場合はラッパクラスを返却します。

パラメータ:
clazz - クラス
戻り値:
実際に登録するクラス

getLog

protected LogFeature getLog()
TypeTransformer.class を識別名とするログを返却します。

戻り値:
ログ

getTable

protected java.util.Map getTable()
クラスをキーとして変換ファンクタを保管するマップを返却します。

戻り値:
マップ