|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし すべてのクラス | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface Predicate
すべての FilteredRowSet
オブジェクトにフィルタを記述するフレームワークを提供する標準インタフェースです。
FilteredRowSet
オブジェクトに適用するフィルタを定義するために実装できる標準インタフェースです。FilteredRowSet
オブジェクトは、このインタフェースの実装を使用し、evaluate
メソッドの実装に定義された制約を施行します。FilteredRowSet
オブジェクトは、双方向方式でフィルタの制約を施行します。つまり、このオブジェクトは、フィルタの制約内の行だけを出力し、フィルタの制約内の行だけを挿入、変更、または更新します。
FilteredRowSet
の predicate を提供するためには、このインタフェースを実装する必要があります。現時点では、JDBC RowSet 実装 (JSR-114) は標準フィルタの定義を指定していません。FilteredRowSet
インタフェースのリファレンス実装とベンダー実装の両方で、幅広いフィルタを定義し、展開するための標準的な手段としくみを指定することにより、柔軟でアプリケーション主導のプレディケート実装の発展につながります。 サンプル実装は、次のようになります。
public class Range implements Predicate {
private Object lo[];
private Object hi[];
private int idx[];
public Range(Object[] lo, Object[] hi, int[] idx) {
this.lo = lo;
this.hi = hi;
this.idx = idx;
}
public boolean evaluate(RowSet rs) {
CachedRowSet crs = (CachedRowSet)rs;
boolean bool1,bool2;
// Check the present row determine if it lies
// within the filtering criteria.
for (int i = 0; i < idx.length; i++) {
if ((rs.getObject(idx[i]) >= lo[i]) &&
(rs.getObject(idx[i]) >= hi[i]) {
bool1 = true; // within filter constraints
} else {
bool2 = true; // outside of filter constraints
}
}
if (bool2) {
return false;
} else {
return true;
}
}
上記の例は、単純な範囲プレディケートを実装します。実装は、両方の列識別規則を使用した JDBC RowSet 実装アプリケーションに提供される String
および整数インデックスベースのコンストラクタを提供しますが、これは必須ではありません。
メソッドの概要
boolean
evaluate(Object value,
int column)
このメソッドは、値が setFilter()
メソッドを使って設定されたフィルタリング基準 (複数の制約が存在する場合は複数の基準) 内に収まっているかどうかをチェックするために、FilteredRowSet
オブジェクトによって呼び出されます。
boolean
evaluate(Object value,
String columnName)
このメソッドは、値が setFileter メソッドを使って設定されたフィルタリング基準内に収まっているかどうかをチェックするために FilteredRowSet
オブジェクトによって呼び出されます。
boolean
evaluate(RowSet rs)
このメソッドは、通常、RowSet
オブジェクトのカーソルが次の行へ移動するのを制御する FilteredRowSet
オブジェクトの内部メソッド (非 public) から呼び出されます。
メソッドの詳細
evaluate
boolean evaluate(RowSet rs)
- このメソッドは、通常、
RowSet
オブジェクトのカーソルが次の行へ移動するのを制御する FilteredRowSet
オブジェクトの内部メソッド (非 public) から呼び出されます。この内部メソッドが、カーソルをすでに削除された行へ移動した場合、内部メソッドは有効な行が見つかるまでカーソルの移動を続けます。
- 戻り値:
- フィルタにまだ列がある場合は
true
、
そうでない場合は false
evaluate
boolean evaluate(Object value,
int column)
throws SQLException
- このメソッドは、値が
setFilter()
メソッドを使って設定されたフィルタリング基準 (複数の制約が存在する場合は複数の基準) 内に収まっているかどうかをチェックするために、FilteredRowSet
オブジェクトによって呼び出されます。
FilteredRowSet
オブジェクトは、FilteredRowSet
インスタンスに新しい行を挿入するとき、このメソッドを内部で使用します。
- パラメータ:
value
- この FilterRowSet
オブジェクトに追加できるかどうか
チェックする必要がある Object
値column
- この RowSet
オブジェクトの列の SQL インデックスに
一致する必要がある int
オブジェクト。これは、
プレディケートの初期化時に、フィルタリングのため、
列の 1 つとしてプレディケートに渡されている必要がある
- 戻り値:
- 行の値がフィルタ内に収まる場合は
true
、
そうでない場合は false
- 例外:
SQLException
- 列がフィルタリング基準内にない場合
evaluate
boolean evaluate(Object value,
String columnName)
throws SQLException
- このメソッドは、値が setFileter メソッドを使って設定されたフィルタリング基準内に収まっているかどうかをチェックするために
FilteredRowSet
オブジェクトによって呼び出されます。
FilteredRowSet
オブジェクトは、FilteredRowSet
インスタンスに新しい行を挿入するとき、このメソッドを内部で使用します。
- パラメータ:
value
- この FilterRowSet
に追加できるかどうか
チェックする必要がある Object
値columnName
- この RowSet
の列の SQL 名に
一致する必要がある String
オブジェクト。アルファベットの大文字と小文字は区別されない。これは、
プレディケートの初期化時に、フィルタリングのため、
列の 1 つとしてプレディケートに渡されている必要がある
- 戻り値:
- 値がフィルタ内に収まる場合は
true
、そうでない場合は false
- 例外:
SQLException
- 列がフィルタリング基準内にない場合
概要
パッケージ
クラス
使用
階層ツリー
非推奨 API
索引
ヘルプ
JavaTM Platform
Standard Ed. 6
前のクラス
次のクラス
フレームあり
フレームなし
すべてのクラス
概要: 入れ子 | フィールド | コンストラクタ | メソッド
詳細: フィールド | コンストラクタ | メソッド
バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。