IM-Workflow

jp.co.intra_mart.foundation.workflow.application.general.condition
クラス ListSearchCondition<E extends Enum<E> & IColumn>

java.lang.Object
  上位を拡張 jp.co.intra_mart.foundation.workflow.application.general.condition.ListSearchCondition<E>
型パラメータ:
E - カラム情報格納クラス - 「IColumn」を継承している「jp.co.intra_mart.foundation.workflow.application.model.column」パッケージのクラスが対象になります。

public class ListSearchCondition<E extends Enum<E> & IColumn>
extends Object

検索条件情報クラス

検索条件になる情報を設定します。
条件を指定する際に、キーになるクラスは「IColumn」を継承している「jp.co.intra_mart.foundation.workflow.application.model.column」 パッケージのクラスが対象になります。
<E>に定義されているENUMで検索条件のキーを指定します。

条件の追加時にはキーになるカラムとその比較対象の値、比較方法を指定します。比較方法は「OperatorType」を利用します。

この検索条件には案件プロパティをキーとして指定することが可能です。
案件プロパティの操作には「addConditionByMatterProp」「addColumnByMatterProp」「addOrderByMatterProp」を利用します。
案件プロパティを検索条件として指定したり、取得するカラムとして指定することが可能です。 案件プロパティの指定には「ColumnType」が必要です。検索もしくはソートを行う際に、案件プロパティを文字、値、日付のどのタイプで扱うかを指定します。

【 各項目の必須/任意 】
レコードの取得位置またはレコードの取得件数を設定する場合、ソート条件は必須となります。

【使用例】

 ListSearchCondition<E> cond = new ListSearchCondition<E>();
 
 // フローIDカラムが「id001」と同じものを検索
 cond.addCondition(<E>.FLOW_ID, "id001", OperatorType.EQ);
 // 申請基準日が「2011/01/01」より大きいものを検索
 cond.addCondition(<E>.APPLY_BASE_DATE, "2011/01/01", OperatorType.GT);
 // フロー名が「フロー」を含めるものを検索
 cond.addCondition(<E>.FLOW_NAME, "フロー",OperatorType.LIKE);
 
 // 検索した結果として案件プロパティを一緒に取得したい場合には「addColumnByMatterProp」でそのカラムのキーを指定します。
 cond.addColumnByMatterProp("key1");
 cond.addColumnByMatterProp("key2");
 
 // 「addColumnByMatterProp」追加した案件プロパティを条件式で使用した場合には「addColumnByMatterProp」で指定します。
 // 案件プロパティを指定する場合にはカラムタイプを指定する必要があります。 
 // 設定例)案件プロパティのキー「key2」が1000より大きい場合の条件を追加、ただしカラムは「文字列」として扱い検索します。
 cond.addConditionByMatterProp("key2", "1000", OperatorType.GT, ColumnType.VARCHAR);
 
 // ソート条件を指定する。フローIDで「昇順」ソートする。
 cond.addOrder(<E>.FLOW_ID, true); // true:昇順 / false:降順
 
 // 案件プロパティをソート条件として指定します。ただしカラムは「数字」として扱いソートします。
 cond.addOrderByMatterProp("key2", false, ColumnType.NUMBER);
 
 // データ取得の件数を絞ります。
 cond.setOffset(0); // 「0」行から
 cond.setCount(3);  // 「3」行まで
 
 

導入されたバージョン:
7.2
関連項目:
OperatorType, ColumnType, IColumn

コンストラクタの概要
ListSearchCondition()
          コンストラクタ
検索条件情報クラスを新しく生成します。
 
メソッドの概要
 void addColumnByMatterProp(String mpKeyName)
          検索結果モデルに表示カラムとして追加する案件プロパティのキーを追加します。
 void addCondition(E column, String value, OperatorType operatorType)
          検索結果を絞り込む条件を追加します。
 void addConditionByMatterProp(String mpKeyName, String value, OperatorType operatorType, ColumnType type)
          検索結果を絞り込む条件として使用する案件プロパティキーを追加します。
 void addOrder(E column, boolean isASC)
          ソート条件を追加します。
 void addOrderByMatterProp(String mpKeyName, boolean isASC, ColumnType type)
          案件プロパティをソート条件として追加します。
 List<ColumnCondition> getConditions()
          検索条件の配列を取得します。
 int getCount()
          レコードの取得件数を取得します。
 List<MatterPropertyKey> getMatterPropKeys()
          取得対象案件プロパティキーの配列を取得します。
 List<MatterPropertyKey> getMatterPropKeys4Column()
          検索結果モデルに表示カラムとして追加する案件プロパティのキーを取得します。
 int getOffset()
          レコードの取得位置を取得します。
 List<SortCondition> getOrders()
          ソート条件の配列を取得します。
 boolean isAndCombination()
          複数条件の結合フラグを取得します。
 void setAndCombination(boolean isAndCombination)
          複数条件の結合条件を設定します。
 void setConditions(List<ColumnCondition> conditions)
          検索条件の配列を設定します。
 void setCount(int count)
          レコードの取得件数を設定します。
 void setOffset(int offset)
          レコードの取得位置を設定します。
 void setOrders(List<SortCondition> orders)
          ソート条件の配列を設定します。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

ListSearchCondition

public ListSearchCondition()
コンストラクタ
検索条件情報クラスを新しく生成します。

メソッドの詳細

addCondition

public void addCondition(E column,
                         String value,
                         OperatorType operatorType)
検索結果を絞り込む条件を追加します。

指定したカラムを検索条件として追加したい場合に利用します。
指定できるカラムは「IColumn」を継承している「jp.co.intra_mart.foundation.workflow.application.model.column」パッケージ内のクラスです。
他に案件プロパティを検索キーで使用する場合には「addConditionByMatterProp(String, String, OperatorType, ColumnType)」を利用する必要があります。

パラメータ:
column - E カラム
value - String 値
operatorType - OperatorType 比較演算子

addConditionByMatterProp

public void addConditionByMatterProp(String mpKeyName,
                                     String value,
                                     OperatorType operatorType,
                                     ColumnType type)
検索結果を絞り込む条件として使用する案件プロパティキーを追加します。

案件プロパティはデータベースでは文字列で保存されています。
比較演算子(OperatorType)が大小の比較の場合は、「ColumnType」の指定が文字か数字かによって、取得結果が異なる場合があります。

パラメータ:
mpKeyName - String 案件プロパティキー
value - String 比較値
operatorType - OperatorType 比較演算子
type - ColumnType 案件プロパティ値の型

addColumnByMatterProp

public void addColumnByMatterProp(String mpKeyName)
検索結果モデルに表示カラムとして追加する案件プロパティのキーを追加します。

検索結果モデルの内に設定される「UserMatterPropertyModel」から指定したキーとその値が取得できまます。
ただし、キーに該当するレコードが存在しない場合や、取得した値が空文字の場合は
「UserMatterPropertyModel」に設定される「案件プロパティ値」は「null」になります。

パラメータ:
mpKeyName - String 案件プロパティキー
関連項目:
UserMatterPropertyModel

addOrder

public void addOrder(E column,
                     boolean isASC)
ソート条件を追加します。

指定したカラムをソート条件として追加したい場合に利用します。
指定できるカラムは「IColumn」を継承している「jp.co.intra_mart.foundation.workflow.application.model.column」パッケージ内のクラスです。
他に案件プロパティをソートキーで使用する場合には「addOrderByMatterProp(String, boolean, ColumnType)」を利用する必要があります。

パラメータ:
column - E カラム
isASC - boolean true:昇順 / false:降順

addOrderByMatterProp

public void addOrderByMatterProp(String mpKeyName,
                                 boolean isASC,
                                 ColumnType type)
案件プロパティをソート条件として追加します。

案件プロパティはデータベースでは文字列で保存されていますが、
その文字をソートする際に、数字や日付として扱う必要がある場合は、「ColumnType」で指定することができます。

パラメータ:
mpKeyName - String 案件プロパティキー
isASC - boolean true:昇順 / false:降順
type - ColumnType 案件プロパティ値の型

getMatterPropKeys

public List<MatterPropertyKey> getMatterPropKeys()
取得対象案件プロパティキーの配列を取得します。

ソート条件、検索条件、表示カラムで指定されている全ての値を取得します。
addColumnByMatterProp(String)」や「 addConditionByMatterProp(String, String, OperatorType, ColumnType)」、「 addOrderByMatterProp(String, boolean, ColumnType)」で指定した値が取得できます。

戻り値:
List 案件プロパティキーの配列

getMatterPropKeys4Column

public List<MatterPropertyKey> getMatterPropKeys4Column()
検索結果モデルに表示カラムとして追加する案件プロパティのキーを取得します。

addColumnByMatterProp(String)で追加した値を取得します。

戻り値:
List 表示カラムとして指定した案件プロパティキーの配列

getConditions

public List<ColumnCondition> getConditions()
検索条件の配列を取得します。

setConditions(List)」や「addCondition(Enum, String, OperatorType)」、
addConditionByMatterProp(String, String, OperatorType, ColumnType)」で設定した検索条件の配列を取得します。

戻り値:
List 検索条件の配列

setConditions

public void setConditions(List<ColumnCondition> conditions)
検索条件の配列を設定します。

検索条件になる「ColumnCondition」を外部から生成して、直接してする場合に使用します。
addCondition(Enum, String, OperatorType)」、
addConditionByMatterProp(String, String, OperatorType, ColumnType)」で個別に値を追加するのと同じ結果になります。

パラメータ:
conditions - 検索条件の配列

getOrders

public List<SortCondition> getOrders()
ソート条件の配列を取得します。

setOrders(List)」や「addOrder(Enum, boolean)
addOrderByMatterProp(String, boolean, ColumnType)」で設定したソート条件の配列を取得します。

戻り値:
List ソート条件の配列

setOrders

public void setOrders(List<SortCondition> orders)
ソート条件の配列を設定します。

SortConditionを外部から生成して、直接指定する場合に使用します。
addOrder(Enum, boolean)」、「addOrderByMatterProp(String, boolean, ColumnType) 」で個別に値を追加するのと同じ結果になります。

パラメータ:
orders - ソート条件の配列

getOffset

public int getOffset()
レコードの取得位置を取得します。

戻り値:
int レコードの取得位置

setOffset

public void setOffset(int offset)
レコードの取得位置を設定します。

パラメータ:
offset - int レコードの取得位置

getCount

public int getCount()
レコードの取得件数を取得します。

戻り値:
int レコードの取得件数

setCount

public void setCount(int count)
レコードの取得件数を設定します。

パラメータ:
count - int レコードの取得件数

setAndCombination

public void setAndCombination(boolean isAndCombination)
複数条件の結合条件を設定します。
複数の条件を指定した場合に、条件間の結合タイプを「AND」か「OR」で指定します。
各条件の結合は「AND」か「OR」のどちらかに統一されます。

パラメータ:
isAndCombination - boolean true:AND結合 / false:OR結合

isAndCombination

public boolean isAndCombination()
複数条件の結合フラグを取得します。

戻り値:
boolean true:AND結合 / false:OR結合

IM-Workflow

Copyright © 2000-2015 NTT DATA INTRAMART CO.,LTD.. All Rights Reserved.