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

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

public class ConversionContextImpl
extends java.lang.Object
implements ConversionContext

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

作成者:
koichik

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

フィールドの詳細

JAVA

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

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

JAVAX

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

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

NOT_FOUND

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


initialized

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


contextInfoCache

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


convertersCache

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


nestedPropertyInfoCache

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


datePropertyInfoCache

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


dateFormatCache

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


dxoClass

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


method

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


converterFactory

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


annotationReader

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


contextInfo

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


evaluatedValues

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


convertedObjects

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


excludeNull

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


excludeWhitespace

protected boolean excludeWhitespace
変換先のJavaBeansに空白(スペース,復帰,改行,タブ文字のみ)の値を設定しないことを示します。


sourcePrefix

protected java.lang.String sourcePrefix
変換元JavaBeansのプロパティのprefixです。


destPrefix

protected java.lang.String destPrefix
変換先JavaBeansのプロパティのprefixです。

コンストラクタの詳細

ConversionContextImpl

public ConversionContextImpl(java.lang.Class dxoClass,
                             java.lang.reflect.Method method,
                             ConverterFactory converterFactory,
                             AnnotationReader annotationReader,
                             java.lang.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(java.lang.Class destClass,
                              java.lang.String destPropertyName)
インタフェース ConversionContext の記述:
変換先クラスのdestPropertyNameで示されるプロパティにコンバータが指定されていれば返します。 コンバータが指定されていない場合はnullを返します。

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

getConvertedObject

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

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

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

addConvertedObject

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

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

getContextInfo

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

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

getDateFormat

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

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

getTimeFormat

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

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

getTimestampFormat

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

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

hasEvalueatedValue

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

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

getEvaluatedValue

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

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

addEvaluatedValue

public void addEvaluatedValue(java.lang.String name,
                              java.lang.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

isExcludeWhitespace

public boolean isExcludeWhitespace()
インタフェース ConversionContext の記述:
変換先のJavaBeansに空白(スペース,復帰,改行,タブ文字のみ)の値を設定しない場合はtrueを返します。

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

定義:
インタフェース ConversionContext 内の isExcludeWhitespace
戻り値:
変換先のJavaBeansに空白(スペース,復帰,改行,タブ文字のみ)の値を設定しない場合はtrue、そうでない場合はfalse

isIncludeWhitespace

public boolean isIncludeWhitespace()
インタフェース ConversionContext の記述:
変換先のJavaBeansに空白(スペース,復帰,改行,タブ文字のみ)の値を設定する場合はtrueを返します。

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

定義:
インタフェース ConversionContext 内の isIncludeWhitespace
戻り値:
変換先のJavaBeansに空白(スペース,復帰,改行,タブ文字のみ)の値を設定する場合はtrue、そうでない場合はfalse

getNestedPropertyInfo

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

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

getDatePropertyInfo

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

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

getDateFormat

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

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

getSourcePrefix

public java.lang.String getSourcePrefix()
インタフェース ConversionContext の記述:
変換元JavaBeansのプロパティのprefixを返します。

定義:
インタフェース ConversionContext 内の getSourcePrefix
戻り値:
変換先JavaBeansのプロパティのprefix

getSourcePropertyName

public java.lang.String getSourcePropertyName(java.lang.String destPropertyName)
インタフェース ConversionContext の記述:
コピー先のプロパティ名からコピー元のプロパティ名を求めて返します。

SOURCE_PREFIX定数アノテーションまたは@SourcePrefixアノテーションで コピー元プロパティのprefixが指定されている場合は、コピー先プロパティ名にprefixを付加した名前を返します。

prefixが'_'以外の文字で終了している場合は、コピー先プロパティ名をキャピタライズしてからprefixを付加します。

定義:
インタフェース ConversionContext 内の getSourcePropertyName
パラメータ:
destPropertyName - コピー先プロパティ名
戻り値:
コピー元のプロパティ名

getContextInfo

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

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

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

createContextInfo

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

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

createNestedPropertyInfo

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

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

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

isBasicType

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

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

createDatePropertyInfo

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

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

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


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