Class: ObjectBucket

ObjectBucket

オブジェクトバケット


new ObjectBucket(name, mode)

ObjectBucket インスタンスを生成する

Parameters:
Name Type Description
name string

バケットの名前

mode number

バケットモード。

バケットモードには、以下のいずれかを指定する。

  • Nebula.BUCKET_MODE_ONLINE : オンラインモード
  • Nebula.BUCKET_MODE_REPLICA: レプリカモード
  • Nebula.BUCKET_MODE_LOCAL : ローカルモード
modeを省略した場合や上記以外が指定された場合は、オンラインモードとして処理する。

Example
var bucket = new Nebula.ObjectBucket("bucket1");

Members


<static, constant> CONFLICT_POLICY_CLIENT

衝突解決ポリシ: クライアント優先


<static, constant> CONFLICT_POLICY_MANUAL

衝突解決ポリシ: 手動解決(ユーザ通知)


<static, constant> CONFLICT_POLICY_SERVER

衝突解決ポリシ: サーバ優先


<static, constant> SYNC_ERROR_OVERLAP_ID

同期エラー: ID衝突


<static, constant> SYNC_ERROR_PULL

同期エラー: PULLエラー


<static, constant> SYNC_ERROR_PUSH

同期エラー: PUSHエラー


<static, constant> SYNC_ERROR_PUSH_RESYNCING

同期エラー: PUSHエラー後、同期リトライ中


<static, constant> SYNC_ERROR_UNDEFINED

同期エラー: その他のエラー


<static> useLongQuery

true に設定すると、クエリはすべて longQuery 扱いとなる。 デフォルトは false。

Since:
  • 5.0.0

Methods


<static> getBucketList(callbacks)

オブジェクトバケットのバケット名一覧を取得する

Parameters:
Name Type Description
callbacks Callbacks

成功時と失敗時の応答コールバック

・処理が成功した場合、success の呼び出しにて通知する。
    success の書式は以下の通りとする。
        success(bucketList)
            bucketList : バケットの名前の配列
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
callbacks = {
         success: function(bucketList) {....},
         error: function(error) {....}
     };
     Nebula.ObjectBucket.getBucketList(callbacks);

<static> getLocalBucketList(callbacks)

ローカル上に保存されているオブジェクトバケットのバケット名一覧を取得する. 本APIはオフラインのみで利用可能

Parameters:
Name Type Description
callbacks Callbacks

成功時と失敗時の応答コールバック

・処理が成功した場合、success の呼び出しにて通知する。
    success の書式は以下の通りとする。
        success(bucketList)
            bucketList : バケットの名前の配列
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
callbacks = {
         success: function(bucketList) {....},
         error: function(error) {....}
     };
     Nebula.ObjectBucket.getLocalBucketList(callbacks);

<static> loadBucket(name, callbacks, mode)

オブジェクトバケットを取得する

Parameters:
Name Type Description
name string

取得するバケットの名前

callbacks Callbacks

成功時と失敗時の応答コールバック

・処理が成功した場合、success の呼び出しにて通知する。
    success の書式は以下の通りとする。
        success(bucket)
            bucket : Nebula.ObjectBucketのインスタンス
・処理が失敗した場合は、error の呼び出しにて通知する。
    error の書式は以下の通りとする。
        error(err)
            err : エラー要因がJSON 形式で返る。
             {
                 "status"        : ステータスコード,
                 "statusText"    : エラーメッセージ,
                 "responseText"  : レスポンスメッセージ,
                 "data"          : 取得に失敗したバケットの名前(nameと同じ)
             }
mode number

バケットモード

バケットモードには、以下のいずれかを指定する。

  • Nebula.BUCKET_MODE_ONLINE : オンラインモード
  • Nebula.BUCKET_MODE_REPLICA: レプリカモード
  • Nebula.BUCKET_MODE_LOCAL : ローカルモード
modeを省略した場合や上記以外が指定された場合は、オンラインモードとして処理する。

Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。 ただし、modeを指定する場合は、callbacksにnullを指定すること(省略不可)

Type
Promise
Example
callbacks = {
         success: function(bucket) {....},
         error: function(err) {....}
     };
     Nebula.ObjectBucket.loadBucket("Books", callbacks);

<static> sync(callbacks)

すべてのオブジェクトバケットの一括同期を実行する。(オフライン専用)

処理の進捗はsetSyncEventListener()で指定されたコールバックにて通知する。 各バケットごとにsetSyncScope()を使用して同期範囲を設定すること。 同期範囲が設定されていないバケットは、同期されない。

Parameters:
Name Type Description
callbacks Callbacks

成功時と失敗時の応答コールバック

・callbacks は、成功時と失敗時の応答コールバックを指定する。
  callbacks は本メソッドに対する処理結果であり、同期イベントはsetSyncEventListener()で指定されたコールバックにて通知する点に注意。
・処理が成功した場合、success の呼び出しにて通知する。
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
Nebula.ObjectBucket.sync({
         success: function() {
             ....
         },
         error: function(err) {
             ....
         }
     });

aggregate(pipeline, options, callbacks)

集計(Aggregation)を実行する (オンライン専用)。

Parameters:
Name Type Description
pipeline Array.<JsonObject>

Aggregation Pipeline JSON配列

複数のアイテムに対して $sort を実行する場合は、以下のように単一アイテムの $sort を複数連結すること。
$sort に複数のアイテムを記載した場合は、ソート順序が保証されない。
[
    { "$sort": { "item1": 1 } },
    { "$sort": { "item2": -1 } },
    { "$sort": { "item3": 1 } }
]
options JsonObject

オプション

callbacks Callbacks

コールバック

Since:
  • 7.0.0
Returns:
Type
Promise.<Array.<JsonObject>>
Example
var bucket = ....;
    var pipeline = [ { "$lookup": { ... } }, ... ];
    var options = {};
    bucket.aggregate(pipeline, options)
        .then(function(objects) {
        ...

batch(request, callbacks)

バッチリクエストを実行する

Parameters:
Name Type Description
request BatchRequest

バッチリクエスト

callbacks Callbacks

応答コールバック

・バッチ処理が一部でも成功した場合、success の呼び出しにて通知する。
    success の書式は以下の通りとする。
        success(result)
            result : バッチ応答(JSON)。応答フォーマットは REST API 仕様書を参照のこと。
            'results'プロパティに結果が格納される。
            これに加え、'failedCount'プロパティに処理失敗したリクエストの数が格納される。

・バッチ処理全体が失敗した場合は、error の呼び出しにて通知する。
    error の書式は以下の通りとする。
        error(error)
            error : エラー要因がJSON 形式で返る。
Since:
  • v4.0.0
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
// リクエスト生成
    var req = new Nebula.BatchRequest();
    // 追加オブジェクト設定
    req.addInsertRequest({"name": "Taro Nichiden", "score": 70});
    req.addInsertRequest({"name": "Hanako Nichiden", "score": 80});
    // バッチリクエスト実行
    bucket.batch(req).then(function(result) {...});

delete()

オブジェクトバケットからオブジェクトを削除する (Deprecated)

本APIは Deprecated である。ObjectBucket#remove を使用すること。

Deprecated:
  • since v4.0.1

deleteBucket(callbacks)

オブジェクトバケットを削除する. バケットを削除する場合、事前にバケット内に格納されている全データを削除しておく必要がある。

Parameters:
Name Type Description
callbacks Callbacks

成功時と失敗時の応答コールバック

・処理が成功した場合、success の呼び出しにて通知する。
    success の書式は以下の通りとする。
        success(bucket)
            bucket : Nebula.ObjectBucket インスタンス
・処理が失敗した場合は、error の呼び出しにて通知する。
    error の書式は以下の通りとする。
        error(err)
            err : エラー要因がJSON 形式で返る。
             {
                 "status"        : ステータスコード,
                 "statusText"    : エラーメッセージ,
                 "responseText"  : レスポンスメッセージ,
                 "data"          : Nebula.ObjectBucket インスタンス
             }
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
var bucket = new Nebula.ObjectBucket("Person");
     ....
     callbacks = {
         success: function(bucket) {....},
         error: function(bucket, err) {....}
     };
     bucket.deleteBucket(callbacks);

getAcl()

オブジェクトバケットのACLを取得する。

オブジェクトバケットのACLを取得するには、loadBucket()を使用してサーバのバケット情報をロードしておく必要がある。

Returns:

オブジェクトバケットのACL

Type
Acl
Example
var bucket = ....;
     ....
     var acl = bucket.getAcl();

getBucketMode()

バケットモードを取得する

Returns:

バケットモード

Type
number
Example
var bucket = ....;
     ....
     var bucketMode = bucket.getBucketMode();

getBucketName()

オブジェクトバケット名を取得する

Returns:

オブジェクトバケット名

Type
string
Example
var bucket = ....;
     ....
     var bucketName = bucket.getBucketName();

getContentAcl()

オブジェクトバケットのコンテンツACLを取得する。

オブジェクトバケットのコンテンツACLを取得するには、loadBucket()を使用してサーバのバケット情報をロードしておく必要がある。

Returns:

オブジェクトバケットのコンテンツACL

Type
Acl
Example
var bucket = ....;
     ....
     var acl = bucket.getAcl();

getDescription()

オブジェクトバケットの「説明文」を取得する。

オブジェクトバケットの「説明文」を取得するには、loadBucket()を使用してサーバのバケット情報をロードしておく必要がある。

Returns:

オブジェクトバケットに設定されている「説明文」

Type
string
Example
var bucket = ....;
     ....
     var description = bucket.getDescription();

getIndexFromLocal(callbacks)

オブジェクトバケットに設定されているインデックスを取得する(オフライン専用)。 本APIはオフラインのみで利用可能

Parameters:
Name Type Description
callbacks Callbacks

成功時と失敗時の応答コールバック

・処理が成功した場合、success の呼び出しにて通知する。
    success の書式は以下の通りとする。
        success(index)
            index : インデックス情報(インデックス情報はJSON)
・インデックス情報は以下のように格納される
     {
         "index": [{"name": "key1", "type": "string"}, {"name": "Key2", "type": "number"}]
     }
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
var bucket = new Nebula.ObjectBucket("Books", Nebula.BUCKET_MODE_REPLICA);;
     ....
     callbacks = {
         success: function(index) {....},
         error: function(err) {....}
     };
     bucket.getIndexFromLocal(callbacks);

getLastSyncTime(callbacks)

最終同期日時を取得する。(オフライン専用) 一度も同期していない場合、nullを返す。 本APIは、バケットモードがレプリカモードのバケットに対して呼び出すこと。

Parameters:
Name Type Description
callbacks Callbacks

成功時と失敗時の応答コールバック

・処理が成功した場合、success の呼び出しにて通知する。
    success の書式は以下の通りとする。
        success(lastSyncTime)
            lastSyncTime : 最終同期日時。
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
var bucket = new Nebula.ObjectBucket(....);
     ....
     bucket.getLastSyncTime( {
         success: function(lastSyncTime) {
             ....
         },
         error: function(err) {
             ....
         }
     });

getResolveConflictPolicy(callbacks)

衝突解決ポリシを取得する(オフライン専用)

Parameters:
Name Type Description
callbacks Callbacks

成功時と失敗時の応答コールバック

・処理が成功した場合、success の呼び出しにて通知する。
    success の書式は以下の通りとする。
        success(policy)
            policy : 衝突解決ポリシ。以下のいずれかの値。
                     Nebula.ObjectBucket.CONFLICT_POLICY_CLIENT : クライアント優先で解決
                     Nebula.ObjectBucket.CONFLICT_POLICY_SERVER : サーバ優先で解決
                     Nebula.ObjectBucket.CONFLICT_POLICY_MANUAL : ユーザ通知
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
var bucket = new Nebula.ObjectBucket(....);
     ....
     bucket.getResolveConflictPolicy( {
         success: function(policy) {
             ....
         },
         error: function(err) {
             ....
         }
     });

getSyncScope(callbacks)

同期範囲を取得する(オフライン専用)

Parameters:
Name Type Description
callbacks Callbacks

成功時と失敗時の応答コールバック

・処理が成功した場合、success の呼び出しにて通知する。
    success の書式は以下の通りとする。
        success(scope)
            scope : 取得した同期範囲。Nebula.ObjectQueryのインスタンス。
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
var bucket = new Nebula.ObjectBucket("Books", Nebula.BUCKET_MODE_REPLICA);
     bucket.getSyncScope( {
         success: function(scope) {
             ....
         },
         error: function(err) {
             ....
         }
     });

load(objectId, callbacks)

オブジェクトバケットからオブジェクトを読み込む

Parameters:
Name Type Description
objectId string

オブジェクトID

callbacks Callbacks

成功時と失敗時の応答コールバック

・処理が成功した場合、success の呼び出しにて通知する。
    success の書式は以下の通りとする。
        success(object)
            object : 読み込んだオブジェクト(JSON)
・処理が失敗した場合は、error の呼び出しにて通知する。
    error の書式は以下の通りとする。
        error(err)
            err : エラー要因がJSON 形式で返る。
             {
                 "status"        : ステータスコード,
                 "statusText"    : エラーメッセージ,
                 "responseText"  : レスポンスメッセージ
                 "data"          : 読み込みに失敗したオブジェクトID
             }
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
var bucket = ....;
     ....
     callbacks = {
         success: function(object) {....},
         error: function(objectId, err) {....}
     };
     bucket.load("object_id", callbacks);

longQuery(aQuery, callbacks)

オブジェクトバケットからオブジェクトを検索する。 ObjectBucket#query と同じだが、クエリサイズの制限はない。

Parameters:
Name Type Description
aQuery ObjectQuery

ObjectQuery インスタンス

callbacks Callbacks

成功時と失敗時の応答コールバック

Since:
  • 5.0.0
Returns:

Promise

Type
Promise

longQueryWithCount(aQuery, callbacks)

オブジェクトバケットからオブジェクトを検索する(クエリ件数付き) queryWithCount() と同じだが、クエリサイズの制限はない。

Parameters:
Name Type Description
aQuery ObjectQuery

Nebula.ObjectQuery インスタンス

callbacks Callbacks

成功時と失敗時の応答コールバック

Since:
  • 5.0.0
Returns:

Promise

Type
Promise

query(aQuery, callbacks)

オブジェクトバケットからオブジェクトを検索する

Parameters:
Name Type Description
aQuery ObjectQuery

Nebula.ObjectQuery インスタンス

callbacks Callbacks

成功時と失敗時の応答コールバック

・処理が成功した場合、success の呼び出しにて通知する。
    success の書式は以下の通りとする。
        success(objects)
            objects : オブジェクト(JSON)の配列
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
var bucket = ....;
     ....
     var query = new Nebula.ObjectQuery();
     ....
     callbacks = {
         success: function(objects) {....},
         error: function(err) {....}
     };
     bucket.query(query, callbacks);

queryWithCount(aQuery, callbacks)

オブジェクトバケットからオブジェクトを検索する(クエリ件数付き)

Parameters:
Name Type Description
aQuery ObjectQuery

ObjectQuery インスタンス

callbacks Callbacks

成功時と失敗時の応答コールバック

・処理が成功した場合、success の呼び出しにて通知する。
    success の書式は以下の通りとする。
        success(result)
            result.objects : オブジェクト(JSON)の配列
            result.count   : 検索条件に合致したオブジェクトの総数
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
var bucket = ....;
     ....
     var query = new Nebula.ObjectQuery();
     ....
     callbacks = {
         success: function(result) {....},
         error: function(err) {....}
     };
     bucket.query(query, callbacks);

remove(objectId, callbacks, etag)

オブジェクトバケットからオブジェクトを削除する

Parameters:
Name Type Description
objectId string

オブジェクトID

callbacks Callbacks

成功時と失敗時の応答コールバック

・処理が成功した場合、success の呼び出しにて通知する。
    success の書式は以下の通りとする。
        success(objectId)
            objectId : 削除に成功したオブジェクトID
・処理が失敗した場合は、error の呼び出しにて通知する。
    error の書式は以下の通りとする。
        error(err)
            err : エラー要因がJSON 形式で返る。
             {
                 "status"        : ステータスコード,
                 "statusText"    : エラーメッセージ,
                 "responseText"  : レスポンスメッセージ
                 "data"          : 削除に失敗したオブジェクトID
             }
etag string

オブジェクトに含まれるETag値。

ETag値は、オブジェクトを新規保存した場合にサーバで追加され、 オブジェクトを更新する度にサーバで変更される固有値である。

ETag値は、オブジェクトの "etag"プロパティに格納される。 etagを指定すると、サーバに保存されているオブジェクトのETag値と照合される。

一致しなかった場合は、データ衝突として「409 Conflict」エラーとなり、オブジェクトは削除されない。 etagを指定しなかった場合、または、nullを指定した場合は、ETag値は照合されずオブジェクトは無条件で削除される。

Since:
  • v4.0.1
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
var bucket = ....;
     ....
     callbacks = {
         success: function(object) {....},
         error: function(objectId, err) {....}
     };
     bucket.remove("object_id", callbacks);

removeCacheBucket(callbacks)

キャッシュデータを削除する。(オフライン専用) オフライン用データベースに保存されたバケットとバケットに保存されたオブジェクトの情報を削除する。

Parameters:
Name Type Description
callbacks Callbacks

成功時と失敗時の応答コールバック

・処理が成功した場合、success の呼び出しにて通知する。
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
var bucket = new Nebula.ObjectBucket(....);
     ....
     bucket.removeCacheBucket({
         success: function() {
             ....
         },
         error: function(err) {
             ....
         }
     });

resolveConflict(objectId, resolve)

衝突を解決する(オフライン専用)。 同期イベントの衝突通知(onSyncConflicted)で指定されたObjectBucketインスタンスに対して実行する。

Parameters:
Name Type Description
objectId string

衝突解決するオブジェクトのID

resolve number

衝突解決方法

・objectId には、衝突解決対象のオブジェクトのIDを指定する。
・resolve には、以下のいずれかの衝突解決方法を指定する。
     Nebula.ObjectBucket.RESOLVE_CLIENT  : クライアント優先で解決
     Nebula.ObjectBucket.RESOLVE_SERVER  : サーバ優先で解決
Example
var bucket = new Nebula.ObjectBucket(....);
     ....
      Nebula.ObjectBucket.setSyncEventListener({
         onSyncStart: function(targetBucket) {
             ....
         },
         onSyncCompleted: function(targetBucket, objectIds) {
             ....
         },
         onSyncConflicted: function(bucket, client, server) {
             ....
             bucket.resolveConflict(objectId, Nebula.ObjectBucket.RESOLVE_CLIENT);
         },
         onResolveConflict: function(resolveObject, resolve) {
             ....
         },
         onSyncError: function(errorCode, errorObject) {
             ....
         }
     });
     ....
     bucket.syncBucket({
         success: function() {
             ....
         },
         error: function(err) {
             ....
         }
     });

save(object, callbacks)

オブジェクトバケットへオブジェクトを保存する.

オブジェクトにETag値が含まれる場合、サーバに保存されているオブジェクトのETag値と照合される。 一致しなかった場合は、データ衝突として「409 Conflict」エラーとなり、オブジェクトは更新されない。

ETag値は、オブジェクトを新規保存した場合にサーバで追加され、 オブジェクトを更新する度にサーバで変更される固有値である。 ETag値は、オブジェクトの "etag"プロパティに格納される。 オブジェクトの新規保存の場合は、etagがないため必ず保存される。

すでに存在するオブジェクトを保存する場合、オブジェクトに指定したフィールドのみが更新される。 指定しないフィールドは更新されない(フィールドは削除されずそのまま残る)

Parameters:
Name Type Description
object Object

保存するオブジェクト

callbacks Callbacks

成功時と失敗時の応答コールバック

・処理が成功した場合、success の呼び出しにて通知する。
    success の書式は以下の通りとする。
        success(object)
            object : 保存に成功したオブジェクト(JSON)
                     新規オブジェクトの場合は、以下のフィールドが追加される。
                         _id : オブジェクトID
                         createdAt : 作成日時
                         updatedAt : 更新日時
                         ACL : このオブジェクトのACL。指定しなかった場合は追加される
・処理が失敗した場合は、error の呼び出しにて通知する。
    error の書式は以下の通りとする。
        error(err)
            err : エラー要因がJSON 形式で返る。
             {
                 "status"        : ステータスコード,
                 "statusText"    : エラーメッセージ,
                 "responseText"  : レスポンスメッセージ,
                 "data"          : 保存に失敗したオブジェクトID
             }
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
var bucket = ....;
     ....
     var myObj = {....};
     ....
     callbacks = {
         success: function(object) {....},
         error: function(object, err) {....}
     };
     bucket.save(myObj, callbacks);

saveBucket(callbacks)

オブジェクトバケットを保存する. バケットはテナント毎に作成される。同一テナント内では同一名称のバケットを複数作成できない。

Parameters:
Name Type Description
callbacks Callbacks

成功時と失敗時の応答コールバック

・処理が成功した場合、success の呼び出しにて通知する。
    success の書式は以下の通りとする。
        success(bucket)
            bucket : Nebula.ObjectBucket インスタンス
・処理が失敗した場合は、error の呼び出しにて通知する。
    error の書式は以下の通りとする。
        error(err)
            err : エラー要因がJSON 形式で返る。
             {
                 "status"        : ステータスコード,
                 "statusText"    : エラーメッセージ,
                 "responseText"  : レスポンスメッセージ,
                 "data"          : Nebula.ObjectBucket インスタンス
             }
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
var bucket = new Nebula.ObjectBucket("Person");
     ....
     callbacks = {
         success: function(bucket) {....},
         error: function(bucket, err) {....}
     };
     bucket.saveBucket(callbacks);

setAcl(acl)

オブジェクトバケットのACLを設定する。

本メソッドを呼び出しただけでは、サーバに格納されているオブジェクトバケットは更新されない。 サーバと同期するには、saveBucket()を呼び出す必要がある。

Parameters:
Name Type Description
acl Acl

Nebula.ACL のインスタンス

Returns:

this

Type
ObjectBucket
Example
var bucket = ....;
     var acl = new Nebula.Acl();
     ....
     acl.addEntry(....);
     ....
     bucket.setAcl(acl);

setContentAcl(acl)

オブジェクトバケットのコンテンツACLを設定する。

本メソッドを呼び出しただけでは、サーバに格納されているオブジェクトバケットは更新されない。 サーバと同期するには、saveBucket()を呼び出す必要がある。

Parameters:
Name Type Description
acl Acl

Nebula.ACL のインスタンス

Returns:

this

Type
ObjectBucket
Example
var bucket = ....;
     var acl = new Nebula.Acl();
     ....
     acl.addEntry(....);
     ....
     bucket.setContentAcl(acl);

setDescription(description)

オブジェクトバケットに「説明文」を設定する。

本メソッドを呼び出しただけでは、サーバに格納されているオブジェクトバケットは更新されない。 サーバと同期するには、saveBucket()を呼び出す必要がある。

Parameters:
Name Type Description
description string

オブジェクトバケットの「説明文」

Example
var bucket = ....;
     ....
     bucket.setDescription("このバケットの説明文");

setIndexToLocal(index, callbacks)

オブジェクトバケットにインデックス設定する(オフライン専用)。 本APIはオフラインのみで利用可能

Parameters:
Name Type Description
index Object

インデックス情報 インデックス情報は以下のようにJSONで指定する

     {
         "index": [{"name": "key1", "type": "string"}, {"name": "key2", "type": "number"}]
     }
     
・index にはインデックスを設定するキー名と型を指定する。型は文字列で"string","boolean","number"のいずれかを指定する。

callbacks Callbacks

成功時と失敗時の応答コールバック

・処理が成功した場合、success の呼び出しにて通知する。
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
var bucket = new Nebula.ObjectBucket("Books", Nebula.BUCKET_MODE_REPLICA);
     ....
     index = {
         "index": [{"name": "key1", "type": "string"}, {"name": "key2", "type": "number"}]
     };
     callbacks = {
         success: function() {....},
         error: function(err) {....}
     };
     bucket.setIndexToLocal(index, callbacks);

setResolveConflictPolicy(policy, callbacks)

衝突解決ポリシを設定する(オフライン専用)

Parameters:
Name Type Description
policy number

設定する衝突解決ポリシ

callbacks Callbacks

成功時と失敗時の応答コールバック

・policy は、以下のいずれかの衝突解決ポリシを指定する。
     Nebula.ObjectBucket.CONFLICT_POLICY_CLIENT : クライアント優先で解決
     Nebula.ObjectBucket.CONFLICT_POLICY_SERVER : サーバ優先で解決
     Nebula.ObjectBucket.CONFLICT_POLICY_MANUAL : ユーザ通知
・処理が成功した場合、success の呼び出しにて通知する。
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
var bucket = new Nebula.ObjectBucket(....);
     var policy = ....
     ....
     bucket.setResolveConflictPolicy(policy {
         success: function() {
             ....
         },
         error: function(err) {
             ....
         }
     });

setSyncEventListener(listener)

同期イベントリスナを登録する(オフライン専用)

Parameters:
Name Type Description
listener Object

同期イベントを受け取るイベントリスナ

・listener は、各同期イベント発生時のコールバックを指定する。
     {
         onSyncStart : function(targetBucket) {
             // 同期開始時に呼び出される
             // targetBucket : 同期対象のバケット名
         },
         onSyncCompleted : function(targetBucket, objectIds) {
             // 同期完了時に呼び出される
             // targetBucket : 同期が完了したバケット名
             // objectIds    : 同期が完了したオブジェクトIDの配列
         },
         onSyncConflicted : function(bucket, client, server) {
             // 衝突発生時に呼び出される
             // bucket    : 衝突が発生したバケットのNebula.ObjectBucketインスタンス(衝突解決時に使用)
             // client    : クライアント側の衝突データ
             // server    : サーバ側の衝突データ
         },
         onResolveConflict : function(resolveObject, resolve) {
             // データの衝突の解決時に呼び出される
             // resolveObject : 解決に使用したデータ
             // resolve       : 解決方法
         },
         onSyncError : function(errorCode, errorObject) {
             // 同期処理中のエラー発生時に呼び出される
             // errorCode    : エラー種別
                 //  Nebula.ObjectBucket.SYNC_ERROR_PULL           : 同期処理のPULLエラー
                 //  Nebula.ObjectBucket.SYNC_ERROR_PUSH           : 同期処理のPUSHエラー
                 //  Nebula.ObjectBucket.SYNC_ERROR_PUSH_RESYNCING : 同期処理のpushエラー後に、同期リトライ中
                 //  Nebula.ObjectBucket.SYNC_ERROR_OVERLAP_ID     : 同期処理のID重複エラー
             // errorObject  : エラーが発生したオブジェクト
         },
    }
Example
var bucket = new Nebula.ObjectBucket("Books", Nebula.BUCKET_MODE_REPLICA);
     bucket.setSyncEventListener({
         onSyncStart: function(targetBucket) {
             ....
         },
         onSyncCompleted: function(targetBucket, objectIds) {
             ....
         },
         onSyncConflicted: function(bucket, client, server) {
             ....
         },
         onResolveConflict: function(resolveObject, resolve) {
             ....
         },
         onSyncError: function(errorCode, errorObject) {
             ....
         }
     });

setSyncScope(scope, callbacks)

同期範囲を設定する(オフライン専用)。 同期するには、本APIを呼び出して同期範囲を設定すること。

Parameters:
Name Type Description
scope Object

設定する同期範囲。Nebula.ObjectQueryのインスタンス。

     ・Nebula.ObjectQueryのインスタンスで同期範囲として有効なものは、検索条件(setClause()メソッドでセット)のみである。
       検索条件以外のその他(検索上限数やスキップカウントなど)は無効。
     ・nullを指定した場合は、設定されている同期範囲を削除する。
     ・すべてのオブジェクトを同期範囲にする場合は、インスタンスを生成しただけの空のNebula.ObjectQueryのインスタンスを指定する。
callbacks Callbacks

成功時と失敗時の応答コールバック

・scope は、Nebula.ObjectQueryのインスタンスを指定する。
・処理が成功した場合、success の呼び出しにて通知する。
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
var bucket = new Nebula.ObjectBucket("Books", Nebula.BUCKET_MODE_REPLICA);
     var clause = Nebula.Clause.greaterThan("number", 99);
     var scope = new Nebula.ObjectQuery();
     scope.setClause(clause);
     ...
     bucket.setSyncScope(scope, {
         success: function() {
             ....
         },
         error: function(err) {
             ....
         }
     });

syncBucket(callbacks)

同期を実行する(オフライン専用)。 特定のオブジェクトバケットに対し同期を行う。処理の進捗はsetSyncEventListener()で指定されたコールバックにて通知する。 setSyncScope()を使用して同期範囲を設定すること。同期範囲を設定しない場合、エラーとなり同期されない。 本APIは、バケットモードがレプリカモードのバケットに対して呼び出すこと。

Parameters:
Name Type Description
callbacks Callbacks

成功時と失敗時の応答コールバック

・callbacks は、成功時と失敗時の応答コールバックを指定する。
  callbacks は本メソッドに対する処理結果であり、同期イベントはsetSyncEventListener()で指定されたコールバックにて通知する点に注意。
・処理が成功した場合、success の呼び出しにて通知する。
Returns:

callbacksを指定しなかった場合、Promiseオブジェクトを返す。callback指定時は返り値なし(undefined)。

Type
Promise
Example
var bucket = new Nebula.ObjectBucket(....);
     ....
     bucket.syncBucket({
         success: function() {
             ....
         },
         error: function(err) {
             ....
         }
     });