org.seasar.extension.dxo.converter.impl
クラス ConversionContextImpl

java.lang.Object
  拡張org.seasar.extension.dxo.converter.impl.ConversionContextImpl
すべての実装インタフェース:
ConversionContext

public class ConversionContextImpl
extends Object
implements ConversionContext

変換コンテキストの実装クラスです。

作成者:
koichik

フィールドの概要
protected  AnnotationReader annotationReader
          アノテーションリーダです。
protected  Map contextInfo
          コンテキスト情報です。
protected static Map contextInfoCache
          コンテキスト情報のキャッシュです。
protected  Map convertedObjects
          変換済みのオブジェクトです。
protected  ConverterFactory converterFactory
          コンバータファクトリです。
protected static Map convertersCache
          コンバータのキャッシュです。
protected static ThreadLocal dateFormatCache
          DateFormatのキャッシュです。
protected static Map datePropertyInfoCache
          日時プロパティ情報のキャッシュです。
protected  Class dxoClass
          このコンテキストを実行しているインターフェースまたはクラスです。
protected  Map evaluatedValues
          評価済みのオブジェクトです。
protected  boolean excludeNull
          変換先のJavaBeansにnullの値を設定しないことを示します。
protected static boolean initialized
          クラスが初期化済みであることを示します。
protected static String JAVA
          javaで始まるパッケージ名のプレフィックスです。
protected static String JAVAX
          javaxで始まるパッケージのプレフィクスです。
protected  Method method
          このコンテキストを実行しているメソッドです。
protected static Map nestedPropertyInfoCache
          ネストしたプロパティ情報のキャッシュです。
protected static Object NOT_FOUND
          キーに対応する値が存在しないことを示すオブジェクトです。
 
コンストラクタの概要
ConversionContextImpl(Class dxoClass, Method method, ConverterFactory converterFactory, AnnotationReader annotationReader, Object source)
          ConversionContextImplのインスタンスを構築します。
 
メソッドの概要
 void addConvertedObject(Object source, Object dest)
          変換済みのオブジェクトを変換コンテキストに追加します。
 void addEvaluatedValue(String name, Object value)
          評価済みのオブジェクトを追加します。
protected  Map createContextInfo(AnnotationReader reader)
          コンテキスト情報を作成して返します。
protected  DatePropertyInfo createDatePropertyInfo(Class srcClass, String prefix, String key)
          日時プロパティ情報を作成します。
protected  NestedPropertyInfo createNestedPropertyInfo(Class srcClass, String propertyName, String key)
          ネストしたプロパティ情報を作成します。
static void destroy()
          キャッシュを破棄し、クラスを未初期化状態にします。
protected  Map getContextInfo(AnnotationReader reader)
          コンテキスト情報を返します。
 Object getContextInfo(String key)
          コンテキスト情報からキーにマッピングされている値を返します。
 Object getConvertedObject(Object source)
          変換元オブジェクトから変換済みのオブジェクトがあればそれを返します。
 Converter getConverter(Class destClass, String destPropertyName)
          変換先クラスのdestPropertyNameで示されるプロパティにコンバータが指定されていれば返します。
 ConverterFactory getConverterFactory()
          コンバータファクトリを返します。
 DateFormat getDateFormat()
          コンテキスト情報から日付用のDateFormatを返します。
 DateFormat getDateFormat(String format)
          現在のスレッドでフォーマット文字列を扱うDateFormatを返します。
 DatePropertyInfo getDatePropertyInfo(Class srcClass, String propertyName)
          日時プロパティの情報を返します。
 Object getEvaluatedValue(String name)
          名前に対応する評価済みのオブジェクトを返します。
 NestedPropertyInfo getNestedPropertyInfo(Class srcClass, String propertyName)
          ネストしたプロパティの情報を返します。
 DateFormat getTimeFormat()
          コンテキスト情報から時刻用のDateFormatを返します。
 DateFormat getTimestampFormat()
          コンテキスト情報から日時用のDateFormatを返します。
 boolean hasEvalueatedValue(String name)
          名前に対応する評価済みのオブジェクトがあればtrueを返します。
static void initialize()
          クラスを初期化済みにします。
protected  boolean isBasicType(Class clazz)
          クラスがJavaBeansではない基本的な型か判定します。
 boolean isExcludeNull()
          変換先のJavaBeansにnullの値を設定しない場合はtrueを返します。
 boolean isIncludeNull()
          変換先のJavaBeansにnullの値を設定する場合はtrueを返します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

JAVA

protected static final String JAVA
javaで始まるパッケージ名のプレフィックスです。

関連項目:
定数フィールド値

JAVAX

protected static final String JAVAX
javaxで始まるパッケージのプレフィクスです。

関連項目:
定数フィールド値

NOT_FOUND

protected static final Object NOT_FOUND
キーに対応する値が存在しないことを示すオブジェクトです。


initialized

protected static boolean initialized
クラスが初期化済みであることを示します。


contextInfoCache

protected static final Map contextInfoCache
コンテキスト情報のキャッシュです。


convertersCache

protected static Map convertersCache
コンバータのキャッシュです。


nestedPropertyInfoCache

protected static final Map nestedPropertyInfoCache
ネストしたプロパティ情報のキャッシュです。


datePropertyInfoCache

protected static final Map datePropertyInfoCache
日時プロパティ情報のキャッシュです。


dateFormatCache

protected static final ThreadLocal dateFormatCache
DateFormatのキャッシュです。


dxoClass

protected Class dxoClass
このコンテキストを実行しているインターフェースまたはクラスです。


method

protected Method method
このコンテキストを実行しているメソッドです。


converterFactory

protected ConverterFactory converterFactory
コンバータファクトリです。


annotationReader

protected AnnotationReader annotationReader
アノテーションリーダです。


contextInfo

protected Map contextInfo
コンテキスト情報です。


evaluatedValues

protected Map evaluatedValues
評価済みのオブジェクトです。


convertedObjects

protected Map convertedObjects
変換済みのオブジェクトです。


excludeNull

protected boolean excludeNull
変換先のJavaBeansにnullの値を設定しないことを示します。

コンストラクタの詳細

ConversionContextImpl

public ConversionContextImpl(Class dxoClass,
                             Method method,
                             ConverterFactory converterFactory,
                             AnnotationReader annotationReader,
                             Object source)
ConversionContextImplのインスタンスを構築します。

パラメータ:
dxoClass - Dxoインターフェースまたはクラス
method - Dxoのメソッド
converterFactory - コンバータファクトリ
annotationReader - アノテーションリーダ
source - 変換元のオブジェクト
メソッドの詳細

initialize

public static void initialize()
クラスを初期化済みにします。


destroy

public static void destroy()
キャッシュを破棄し、クラスを未初期化状態にします。


getConverterFactory

public ConverterFactory getConverterFactory()
インタフェース ConversionContext の記述:
コンバータファクトリを返します。

定義:
インタフェース ConversionContext 内の getConverterFactory
戻り値:
コンバータファクトリ

getConverter

public Converter getConverter(Class destClass,
                              String destPropertyName)
インタフェース ConversionContext の記述:
変換先クラスのdestPropertyNameで示されるプロパティにコンバータが指定されていれば返します。 コンバータが指定されていない場合はnullを返します。

定義:
インタフェース ConversionContext 内の getConverter
パラメータ:
destClass - 変換先のクラス
destPropertyName - 変換先クラスのプロパティ名
戻り値:
コンバータ

getConvertedObject

public Object getConvertedObject(Object source)
インタフェース ConversionContext の記述:
変換元オブジェクトから変換済みのオブジェクトがあればそれを返します。 変換済みのオブジェクトがない場合はnullを返します。

このメソッドは、 循環を含むオブジェクトグラフの変換で無限ループになることを防ぐために使用されます。 このメソッドがnullを返した場合は変換元の変換を行い、 変換したオブジェクトをConversionContext.addConvertedObject(Object, Object)によりコンテキストに登録します。 次に同じソースオブジェクトでこのメソッドが呼び出された場合は変換済みのオブジェクトが返されます。

定義:
インタフェース ConversionContext 内の getConvertedObject
パラメータ:
source - 変換元のオブジェクト
戻り値:
変換済みのオブジェクト

addConvertedObject

public void addConvertedObject(Object source,
                               Object dest)
インタフェース ConversionContext の記述:
変換済みのオブジェクトを変換コンテキストに追加します。

定義:
インタフェース ConversionContext 内の addConvertedObject
パラメータ:
source - 変換元のオブジェクト
dest - 変換済みのオブジェクト

getContextInfo

public Object getContextInfo(String key)
インタフェース ConversionContext の記述:
コンテキスト情報からキーにマッピングされている値を返します。

定義:
インタフェース ConversionContext 内の getContextInfo
パラメータ:
key - キー
戻り値:
値。キーにマッピングされている値がない場合はnull
関連項目:
DxoConstants

getDateFormat

public DateFormat getDateFormat()
インタフェース ConversionContext の記述:
コンテキスト情報から日付用のDateFormatを返します。

定義:
インタフェース ConversionContext 内の getDateFormat
戻り値:
日付用のDateFormat。コンテキスト情報に日付用のフォーマットが指定されていない場合はnull
関連項目:
DxoConstants

getTimeFormat

public DateFormat getTimeFormat()
インタフェース ConversionContext の記述:
コンテキスト情報から時刻用のDateFormatを返します。

定義:
インタフェース ConversionContext 内の getTimeFormat
戻り値:
時刻用のDateFormat。コンテキスト情報に時刻用のフォーマットが指定されていない場合はnull
関連項目:
DxoConstants

getTimestampFormat

public DateFormat getTimestampFormat()
インタフェース ConversionContext の記述:
コンテキスト情報から日時用のDateFormatを返します。

定義:
インタフェース ConversionContext 内の getTimestampFormat
戻り値:
日時用のDateFormat。コンテキスト情報に日時用のフォーマットが指定されていない場合はnull
関連項目:
DxoConstants

hasEvalueatedValue

public boolean hasEvalueatedValue(String name)
インタフェース ConversionContext の記述:
名前に対応する評価済みのオブジェクトがあればtrueを返します。

定義:
インタフェース ConversionContext 内の hasEvalueatedValue
パラメータ:
name - 名前
戻り値:
評価済みのオブジェクトがあればtrue、そうでない場合はfalse

getEvaluatedValue

public Object getEvaluatedValue(String name)
インタフェース ConversionContext の記述:
名前に対応する評価済みのオブジェクトを返します。 評価結果がnullの場合もあります。

定義:
インタフェース ConversionContext 内の getEvaluatedValue
パラメータ:
name - 名前
戻り値:
評価済みのオブジェクト

addEvaluatedValue

public void addEvaluatedValue(String name,
                              Object value)
インタフェース ConversionContext の記述:
評価済みのオブジェクトを追加します。

定義:
インタフェース ConversionContext 内の addEvaluatedValue
パラメータ:
name - 名前
value - 評価済みのオブジェクト

isIncludeNull

public boolean isIncludeNull()
インタフェース ConversionContext の記述:
変換先のJavaBeansにnullの値を設定する場合はtrueを返します。

この値はConversionContext.isExcludeNull()の否定です。

定義:
インタフェース ConversionContext 内の isIncludeNull
戻り値:
変換先のJavaBeansにnullの値を設定する場合はtrue、そうでない場合はfalse

isExcludeNull

public boolean isExcludeNull()
インタフェース ConversionContext の記述:
変換先のJavaBeansにnullの値を設定しない場合はtrueを返します。

この値はDxoインターフェースのDxoConstants.EXCLUDE_NULLアノテーションに trueが指定された場合にのみtrueとなります。 その場合、変換元のプロパティがnullだと変換先のプロパティには値を設定しません。

定義:
インタフェース ConversionContext 内の isExcludeNull
戻り値:
変換先のJavaBeansにnullの値を設定しない場合はtrue、そうでない場合はfalse

getNestedPropertyInfo

public NestedPropertyInfo getNestedPropertyInfo(Class srcClass,
                                                String propertyName)
インタフェース ConversionContext の記述:
ネストしたプロパティの情報を返します。 該当するプロパティが存在しない場合はnullを返します。

定義:
インタフェース ConversionContext 内の getNestedPropertyInfo
パラメータ:
srcClass - 変換元のクラス
propertyName - 変換元のプロパティ名
戻り値:
ネストしたプロパティの情報

getDatePropertyInfo

public DatePropertyInfo getDatePropertyInfo(Class srcClass,
                                            String propertyName)
インタフェース ConversionContext の記述:
日時プロパティの情報を返します。 該当するプロパティが存在しない場合はnullを返します。

定義:
インタフェース ConversionContext 内の getDatePropertyInfo
パラメータ:
srcClass - 変換元のクラス
propertyName - プロパティ名
戻り値:
日時プロパティの情報

getDateFormat

public DateFormat getDateFormat(String format)
インタフェース ConversionContext の記述:
現在のスレッドでフォーマット文字列を扱うDateFormatを返します。

定義:
インタフェース ConversionContext 内の getDateFormat
パラメータ:
format - フォーマット文字列
戻り値:
フォーマット文字列を持つDateFormat

getContextInfo

protected Map getContextInfo(AnnotationReader reader)
コンテキスト情報を返します。

コンテキスト情報がキャッシュにあればそれを返します。 キャッシュにない場合はコンテキスト情報緒を作成して返します。

パラメータ:
reader - アノテーションリーダ
戻り値:
コンテキスト情報

createContextInfo

protected Map createContextInfo(AnnotationReader reader)
コンテキスト情報を作成して返します。

パラメータ:
reader - アノテーションリーダ
戻り値:
コンテキスト情報

createNestedPropertyInfo

protected NestedPropertyInfo createNestedPropertyInfo(Class srcClass,
                                                      String propertyName,
                                                      String key)
ネストしたプロパティ情報を作成します。

作成されたネストしたプロパティ情報はキャッシュに登録されます。

パラメータ:
srcClass - 変換元のクラス
propertyName - プロパティ名
key - ネストしたプロパティ情報のキャッシュのキー
戻り値:
ネストしたプロパティ情報

isBasicType

protected boolean isBasicType(Class clazz)
クラスがJavaBeansではない基本的な型か判定します。

パラメータ:
clazz - クラス
戻り値:
クラスがJavaBeansではない基本的な型ならtrue、そうでない場合はfalse

createDatePropertyInfo

protected DatePropertyInfo createDatePropertyInfo(Class srcClass,
                                                  String prefix,
                                                  String key)
日時プロパティ情報を作成します。

作成された日時プロパティ情報はキャッシュに登録されます。

パラメータ:
srcClass - 変換元のクラス
prefix - プロパティ名の接頭辞
key - 日時プロパティ情報のキャッシュのキー
戻り値:
日時プロパティ情報


Copyright © 2004-2007 The Seasar Foundation. All Rights Reserved.