|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object org.seasar.kuina.dao.internal.builder.AbstractCommandBuilder
public abstract class AbstractCommandBuilder
コマンド
を作成するビルダの抽象クラスです.
フィールドの概要 | |
---|---|
protected NamingConvention |
convention
命名規約 |
protected DaoHelper |
daoHelper
Daoヘルパー |
protected EntityManagerProvider |
entityManagerProvider
エンティティ・マネージャ・プロバイダ |
protected static boolean |
initialized
キャッシュが初期化済みであることを示します |
protected Pattern |
methodNamePattern
メソッド名の正規表現パターン |
protected static ConcurrentMap<Class<?>,Map<TypeVariable<?>,Type>> |
typeVariableMapCache
パラメータ化された型が持つ型変数をキー、型引数を値とする Map のキャッシュ |
コンストラクタの概要 | |
---|---|
AbstractCommandBuilder()
インスタンスを構築します。 |
メソッドの概要 | |
---|---|
protected Class<?>[] |
getActualParameterClasses(Class<?> daoClass,
Method method)
メソッド引数の実際の型の配列を返します。 |
protected Class<?> |
getActualReturnClass(Class<?> daoClass,
Method method)
メソッド戻り値の実際の型を返します。 |
protected ParameterBinder |
getBinderForNamedParameter(Class<?> type,
String name,
Annotation[] annotations)
Named Parameterをバインドする ParameterBinder を作成して返します. |
protected ParameterBinder |
getBinderForPositionalParameter(Class<?> type,
int position,
Annotation[] annotations)
Positional Parameterをバインドする ParameterBinder を作成して返します. |
protected ParameterBinder[] |
getBinders(Method method,
BeanDesc beanDesc)
パラメータをバインドする ParameterBinder の配列を作成して返します. |
protected ParameterBinder[] |
getBindersForNamedParameter(Method method,
String[] parameterNames)
Named Parameterをバインドする ParameterBinder の配列を作成して返します. |
protected ParameterBinder[] |
getBindersForPositionalParameter(Method method)
Positional Parameterをバインドする ParameterBinder の配列を作成して返します. |
protected String[] |
getQueryNames(Class<?> daoClass,
Method method)
Named Queryの名前の候補を配列で返します. |
protected Class<?> |
getTargetClass(Class<?> daoClass,
Method method)
操作対象のエンティティクラスを返します. |
protected Class<?> |
getTargetClassFromDaoName(Class<?> daoClass)
Daoのクラス名から操作対象となるエンティティクラスを求めて返します. |
protected TemporalType |
getTemporalType(Annotation[] annotations)
アノテーションで指定された時制を返します. |
protected Map<TypeVariable<?>,Type> |
getTypeVariableMap(Class<?> clazz)
クラスの定義に使用されている,パラメータ化された型(クラスまたはインタフェース)が持つ型変数をキー,型引数を値とする Map を返します. |
protected static void |
initialize()
クラスを初期化します。 |
boolean |
isExists(Class<?> daoClass,
String queryName)
指定された名前のNamed Queryが存在すれば true を返します. |
protected boolean |
isMatched(Method method)
テスト対象のメソッドの名前が正規表現パターンとマッチする場合に true を返します. |
void |
setMethodNamePattern(String methodNamePattern)
メソッド名の正規表現パターンを文字列で設定します. |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
インタフェース org.seasar.kuina.dao.internal.CommandBuilder から継承されたメソッド |
---|
build |
フィールドの詳細 |
---|
protected static final ConcurrentMap<Class<?>,Map<TypeVariable<?>,Type>> typeVariableMapCache
Map
のキャッシュ
protected static boolean initialized
protected NamingConvention convention
protected DaoHelper daoHelper
protected EntityManagerProvider entityManagerProvider
protected Pattern methodNamePattern
コンストラクタの詳細 |
---|
public AbstractCommandBuilder()
メソッドの詳細 |
---|
protected static void initialize()
S2コンテナの終了時にキャッシュを破棄するよう構成します。
public void setMethodNamePattern(String methodNamePattern)
methodNamePattern
- メソッド名の正規表現パターン文字列protected boolean isMatched(Method method)
true
を返します.
method
- テスト対象のメソッド
true
protected Class<?> getTargetClass(Class<?> daoClass, Method method)
操作対象のエンティティクラスは次の順で検索します.
TargetEntity
アノテーションが付けられていればそのvalue
要素の値TargetEntity
アノテーションが付けられていればそのvalue
要素の値
操作対象となるエンティティクラスが見つからない場合はnull
を返します.
daoClass
- Daoクラスmethod
- Daoのメソッド
protected Class<?> getTargetClassFromDaoName(Class<?> daoClass)
操作対象のエンティティは,Daoのクラス名からDaoのサフィックスを取り除いてエンティティのサフィックスを付加したものをエンティティクラスの単純名とし,
ルートパッケージ.
Daoのサブパッケージ名.
エンティティの単純名
という名前のクラスが見つかればそれを操作対象のエンティティクラスとして返します.
操作対象となるエンティティクラスが見つからない場合はnull
を返します.
daoClass
- Daoクラス
protected ParameterBinder[] getBinders(Method method, BeanDesc beanDesc)
ParameterBinder
の配列を作成して返します.
method
- DaoのメソッドbeanDesc
- DaoクラスのBeanDesc
ParameterBinder
の配列protected ParameterBinder[] getBindersForNamedParameter(Method method, String[] parameterNames)
ParameterBinder
の配列を作成して返します.
method
- DaoのメソッドparameterNames
- Daoメソッドの引数名の配列
ParameterBinder
の配列protected ParameterBinder getBinderForNamedParameter(Class<?> type, String name, Annotation[] annotations)
ParameterBinder
を作成して返します.
type
- 引数の型name
- 引数の名前annotations
- 引数に付けられたアノテーションの配列
ParameterBinder
protected ParameterBinder[] getBindersForPositionalParameter(Method method)
ParameterBinder
の配列を作成して返します.
method
- Daoのメソッド
ParameterBinder
の配列protected ParameterBinder getBinderForPositionalParameter(Class<?> type, int position, Annotation[] annotations)
ParameterBinder
を作成して返します.
type
- 引数の型position
- 引数の位置annotations
- 引数に付けられたアノテーションの配列
ParameterBinder
protected TemporalType getTemporalType(Annotation[] annotations)
annotations
の中にTemporalSpec
アノテーションが含まれていれば, そのvalue
要素の値を返します.
annotations
の中にTemporalSpec
アノテーションが含まれていなければTemporalType.DATE
を返します.
annotations
- アノテーションの配列
protected String[] getQueryNames(Class<?> daoClass, Method method)
次の順でNamed Queryの候補を作成します.
QueryName
アノテーションが指定されていれば,そのvalue
要素で指定された名前.
Daoのメソッド名.
Daoのメソッド名.
Daoのメソッド名
daoClass
- Daoクラスmethod
- Daoのメソッド
public boolean isExists(Class<?> daoClass, String queryName)
true
を返します.
Named Queryが存在するかチェックするためにEntityManager.createNamedQuery(String)
を呼び出します.
Named Queryが存在しない場合,EntityManager
は例外をスローし,JPA実装によってはトランザクションを
ロールバックしてしまうため,トランザクション特性をREQUIRES_NEW
にしています.
daoClass
- DaoクラスqueryName
- Named Queryの名前
true
protected Map<TypeVariable<?>,Type> getTypeVariableMap(Class<?> clazz)
Map
を返します.
clazz
- クラス
Map
protected Class<?>[] getActualParameterClasses(Class<?> daoClass, Method method)
daoClass
- Daoクラスmethod
- Daoメソッド
protected Class<?> getActualReturnClass(Class<?> daoClass, Method method)
daoClass
- Daoクラスmethod
- Daoメソッド
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |