org.seasar.kuina.dao.internal.builder
クラス AbstractQueryCommandBuilder

java.lang.Object
  上位を拡張 org.seasar.kuina.dao.internal.builder.AbstractCommandBuilder
      上位を拡張 org.seasar.kuina.dao.internal.builder.AbstractQueryCommandBuilder
すべての実装されたインタフェース:
CommandBuilder
直系の既知のサブクラス:
AbstractDynamicQueryCommandBuilder, ConditionalQueryCommandBuilder, ExampleQueryCommandBuilder, FindAllQueryCommandBuilder, NamedQueryCommandBuilder, SqlCommandBuilder

public abstract class AbstractQueryCommandBuilder
extends AbstractCommandBuilder

問い合わせを実行するコマンドを作成するビルダの抽象クラスです.

作成者:
koichik

フィールドの概要
protected  Pattern firstResultPattern
          firstResultを指定する引数名の正規表現パターン
protected  Pattern maxResultsPattern
          maxResultsを指定する引数名の正規表現パターン
protected  Pattern orderbyPattern
          orderbyを指定する引数名の正規表現パターン
 
クラス org.seasar.kuina.dao.internal.builder.AbstractCommandBuilder から継承されたフィールド
convention, daoHelper, entityManagerProvider, initialized, methodNamePattern, typeVariableMapCache
 
コンストラクタの概要
AbstractQueryCommandBuilder()
          インスタンスを構築します。
 
メソッドの概要
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  int getFirstResultParameter(String[] parameterNames, Annotation[][] annotations)
          引数及び引数に付けられたアノテーションの配列から,firstResultを指定する引数のインデックスを返します.
protected  int getMaxResultsParameter(String[] parameterNames, Annotation[][] annotations)
          引数及び引数に付けられたアノテーションの配列から,maxResultsを指定する引数のインデックスを返します.
protected  int getOrderbyParameter(String[] parameterNames, Annotation[][] annotations)
          引数及び引数に付けられたアノテーションの配列から,orderbyを指定する引数のインデックスを返します.
protected  Class<?> getResultClass(Class<?> daoClass, Method method)
          メソッドの戻り値型がListならその要素型を,それ以外の場合は戻り値型を返します.
protected  Class<?> getTargetClass(Class<?> daoClass, Method method)
          操作対象のエンティティクラスを返します.
protected  boolean isFirstResult(String name, Annotation[] annotations)
          引数がfirstResult指定ならtrueを返します.
protected  boolean isMaxResults(String name, Annotation[] annotations)
          引数がmaxResults指定ならtrueを返します.
protected  boolean isOrderby(String name, Annotation[] annotations)
          引数がorderby指定ならtrueを返します.
protected  boolean isResultList(Method method)
          Daoの問い合わせメソッドがListを返す場合はtrueを返します.
 void setFirstResultPattern(String firstResultPattern)
          firstResultを指定する引数名の正規表現パターンを文字列で設定します.
 void setMaxResultsPattern(String maxResultsPattern)
          maxResultsを指定する引数名の正規表現パターンを文字列で設定します.
 void setOrderbyPattern(String orderbyPattern)
          orderbyを指定する引数名の正規表現パターンを文字列で設定します.
 
クラス org.seasar.kuina.dao.internal.builder.AbstractCommandBuilder から継承されたメソッド
getActualParameterClasses, getActualReturnClass, getBinders, getBindersForNamedParameter, getBindersForPositionalParameter, getQueryNames, getTargetClassFromDaoName, getTemporalType, getTypeVariableMap, initialize, isExists, isMatched, setMethodNamePattern
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース org.seasar.kuina.dao.internal.CommandBuilder から継承されたメソッド
build
 

フィールドの詳細

orderbyPattern

protected Pattern orderbyPattern
orderbyを指定する引数名の正規表現パターン


firstResultPattern

protected Pattern firstResultPattern
firstResultを指定する引数名の正規表現パターン


maxResultsPattern

protected Pattern maxResultsPattern
maxResultsを指定する引数名の正規表現パターン

コンストラクタの詳細

AbstractQueryCommandBuilder

public AbstractQueryCommandBuilder()
インスタンスを構築します。

メソッドの詳細

setOrderbyPattern

public void setOrderbyPattern(String orderbyPattern)
orderbyを指定する引数名の正規表現パターンを文字列で設定します.

パラメータ:
orderbyPattern - orderbyを指定する引数名の正規表現パターン

setFirstResultPattern

public void setFirstResultPattern(String firstResultPattern)
firstResultを指定する引数名の正規表現パターンを文字列で設定します.

パラメータ:
firstResultPattern - firstResultを指定する引数名の正規表現パターン

setMaxResultsPattern

public void setMaxResultsPattern(String maxResultsPattern)
maxResultsを指定する引数名の正規表現パターンを文字列で設定します.

パラメータ:
maxResultsPattern - maxResultsを指定する引数名の正規表現パターン

isResultList

protected boolean isResultList(Method method)
Daoの問い合わせメソッドがListを返す場合はtrueを返します.

パラメータ:
method - Daoの問い合わせメソッド
戻り値:
Daoの問い合わせメソッドがListを返す場合はtrue

getTargetClass

protected Class<?> getTargetClass(Class<?> daoClass,
                                  Method method)
操作対象のエンティティクラスを返します.

DaoのメソッドがエンティティクラスまたはそのListを返す場合はそのクラスを返します. それ以外の場合は親クラスのメソッドに委譲します.

オーバーライド:
クラス AbstractCommandBuilder 内の getTargetClass
パラメータ:
daoClass - Daoクラス
method - Daoのメソッド
戻り値:
操作対象のエンティティクラス
関連項目:
AbstractCommandBuilder.getTargetClass(Class, Method)

getResultClass

protected Class<?> getResultClass(Class<?> daoClass,
                                  Method method)
メソッドの戻り値型がListならその要素型を,それ以外の場合は戻り値型を返します.

パラメータ:
daoClass - Daoクラス
method - メソッド
戻り値:
メソッドの戻り値型がListならその要素型を,それ以外の場合は戻り値型

getBinderForNamedParameter

protected ParameterBinder getBinderForNamedParameter(Class<?> type,
                                                     String name,
                                                     Annotation[] annotations)
クラス AbstractCommandBuilder の記述:
Named ParameterをバインドするParameterBinderを作成して返します.

オーバーライド:
クラス AbstractCommandBuilder 内の getBinderForNamedParameter
パラメータ:
type - 引数の型
name - 引数の名前
annotations - 引数に付けられたアノテーションの配列
戻り値:
パラメータをバインドするParameterBinder

getBinderForPositionalParameter

protected ParameterBinder getBinderForPositionalParameter(Class<?> type,
                                                          int position,
                                                          Annotation[] annotations)
クラス AbstractCommandBuilder の記述:
Positional ParameterをバインドするParameterBinderを作成して返します.

オーバーライド:
クラス AbstractCommandBuilder 内の getBinderForPositionalParameter
パラメータ:
type - 引数の型
position - 引数の位置
annotations - 引数に付けられたアノテーションの配列
戻り値:
パラメータをバインドするParameterBinder

isOrderby

protected boolean isOrderby(String name,
                            Annotation[] annotations)
引数がorderby指定ならtrueを返します.

引数にOrderbyアノテーションが付けられているか, 引数名がorderbyPatternにマッチすれば, その引数はorderby指定です.

パラメータ:
name - 引数名
annotations - 引数に付けられたアノテーションの配列
戻り値:
引数がorderby指定ならtrue

getOrderbyParameter

protected int getOrderbyParameter(String[] parameterNames,
                                  Annotation[][] annotations)
引数及び引数に付けられたアノテーションの配列から,orderbyを指定する引数のインデックスを返します.

配列にorderby指定が含まれていない場合は-1を返します.

パラメータ:
parameterNames - 引数名の配列
annotations - 引数に付けられたアノテーションの配列の配列
戻り値:
引数及び引数に付けられたアノテーションの配列から,orderbyを指定する引数のインデックス

isFirstResult

protected boolean isFirstResult(String name,
                                Annotation[] annotations)
引数がfirstResult指定ならtrueを返します.

引数にFirstResultアノテーションが付けられているか, 引数名がfirstResultPatternにマッチすれば, その引数はfirstResult指定です.

パラメータ:
name - 引数名
annotations - 引数に付けられたアノテーションの配列
戻り値:
引数がfirstResult指定ならtrue

getFirstResultParameter

protected int getFirstResultParameter(String[] parameterNames,
                                      Annotation[][] annotations)
引数及び引数に付けられたアノテーションの配列から,firstResultを指定する引数のインデックスを返します.

配列にfirstResult指定が含まれていない場合は-1を返します.

パラメータ:
parameterNames - 引数名の配列
annotations - 引数に付けられたアノテーションの配列の配列
戻り値:
引数及び引数に付けられたアノテーションの配列から,firstResultを指定する引数のインデックス

isMaxResults

protected boolean isMaxResults(String name,
                               Annotation[] annotations)
引数がmaxResults指定ならtrueを返します.

引数にMaxResultsアノテーションが付けられているか, 引数名がmaxResultsPatternにマッチすれば, その引数はmaxResults指定です.

パラメータ:
name - 引数名
annotations - 引数に付けられたアノテーションの配列
戻り値:
引数がmaxResults指定ならtrue

getMaxResultsParameter

protected int getMaxResultsParameter(String[] parameterNames,
                                     Annotation[][] annotations)
引数及び引数に付けられたアノテーションの配列から,maxResultsを指定する引数のインデックスを返します.

配列にmaxResults指定が含まれていない場合は-1を返します.

パラメータ:
parameterNames - 引数名の配列
annotations - 引数に付けられたアノテーションの配列の配列
戻り値:
引数及び引数に付けられたアノテーションの配列から,maxResultsを指定する引数のインデックス


Copyright © 2006-2009 The Seasar Foundation. All Rights Reserved.