KiiLibを使ってユーザースコープのバケツを検索する
最終更新日:2015-08-29
ユーザースコープのバケツにオブジェクトをいれたので、次はそのバケツ内を検索してみます。
バケツ内の検索はBucketAPIのquery()
を使います。
KiiBucket bucket = new AndroidKiiBucket(new AndroidKiiUser("me", null), BUCKET_NAME);
QueryParams params = new QueryParams(KiiClause.equals(Memo.FIELD_DONE, false));
params.sortByDesc("_modified");
mBucketAPI.query(bucket, params, AndroidKiiObjectDTO.getInstance(), new BucketAPI.QueryCallback<AndroidKiiObject>() {
@Override
public void onSuccess(QueryResult<AndroidKiiObject> item) {
// 検索成功時の処理
// QueryResult型はList<>を継承しています
}
@Override
public void onError(KiiException e) {
// 検索失敗時の処理
}
});
順にみていきましょう。
バケツオブジェクトを作る
検索対象となるバケツオブジェクトを作ります。これはオブジェクト作成時と同じですね。
KiiBucket bucket = new AndroidKiiBucket(new AndroidKiiUser("me", null), BUCKET_NAME);
検索条件オブジェクトを作成する
次に、検索条件を格納したQueryParams
オブジェクトを作ります。コンストラクタの引数でどの条件に一致するものだけを取り出すか指定します。ここでは、"done"
フィールドがfalse
のものだけを取得しています。
QueryParams params = new QueryParams(KiiClause.equals(Memo.FIELD_DONE, false));
QueryParams
オブジェクトには、このほかにもソート順序を指定したりすることができます。更新時刻の降順で結果をソートするには、次のメソッドを呼びます。
params.sortByDesc("_modified");
検索リクエストを投げる
最後に検索リクエストをBucketAPIのquery()
で投げます。結果はコールバックのonSuccess()
に引数として渡されます。QueryResult
型はList<>
なので、リストに対する処理がそのまま使えます。
mBucketAPI.query(bucket, params, AndroidKiiObjectDTO.getInstance(), new BucketAPI.QueryCallback<AndroidKiiObject>() {
@Override
public void onSuccess(QueryResult<AndroidKiiObject> item) {
// 検索成功時の処理
// QueryResult型はList<>を継承しています
}
@Override
public void onError(KiiException e) {
// 検索失敗時の処理
}
});