クラス SyncConfiguration.Builder
- java.lang.Object
-
- io.realm.mongodb.sync.SyncConfiguration.Builder
-
- クラスを囲みます。
- SyncConfiguration
public static final class SyncConfiguration.Builder extends Object
SyncConfiguration のインスタンスをスムーズに構築するために使用されるビルダ。
-
-
コンストラクターの概要
コンストラクター Constructor 説明 Builder(User user)
指定されたユーザーと Flexible Sync SyncConfigurationのビルダのインスタンスを作成します。Builder(User user, Integer partitionValue)
指定されたユーザーとパーティション値を使用して、パーティションベースの同期同期構成のビルダのインスタンスを作成します。Builder(User user, Long partitionValue)
指定されたユーザーとパーティション値を使用して、パーティションベースの同期同期構成のビルダのインスタンスを作成します。Builder(User user, String partitionValue)
指定されたユーザーとパーティション値を使用して、パーティションベースの同期同期構成のビルダのインスタンスを作成します。Builder(User user, UUID partitionValue)
指定されたユーザーとパーティション値を使用して、パーティションベースの同期同期構成のビルダのインスタンスを作成します。Builder(User user, ObjectId partitionValue)
指定されたユーザーとパーティション値を使用して、パーティションベースの同期同期構成のビルダのインスタンスを作成します。
-
メソッドの概要
-
-
-
コンストラクターの詳細
-
ビルダ
public Builder(ユーザー)
指定されたユーザーと Flexible Sync SyncConfigurationのビルダのインスタンスを作成します。- パラメーター:
user
- Realm アプリにアクセスするために使用されるユーザー。
-
ビルダ
public Builder(ユーザーユーザー, @Nullable string partitionValue)
指定されたユーザーとパーティション値を使用して、パーティションベースの同期同期構成のビルダのインスタンスを作成します。- パラメーター:
user
- Realm アプリにアクセスするために使用されるユーザー。partitionValue
- 同期されるリモート Realm を識別するパーティション値。
-
ビルダ
public Builder(ユーザーuser, @Nullable ObjectId partitionValue)
指定されたユーザーとパーティション値を使用して、パーティションベースの同期同期構成のビルダのインスタンスを作成します。- パラメーター:
user
- Realm アプリにアクセスするために使用されるユーザー。partitionValue
- 同期されるリモート Realm を識別するパーティション値。
-
ビルダ
public Builder(ユーザーuser, @Nullable Integer partitionValue)
指定されたユーザーとパーティション値を使用して、パーティションベースの同期同期構成のビルダのインスタンスを作成します。- パラメーター:
user
- Realm アプリにアクセスするために使用されるユーザー。partitionValue
- 同期されるリモート Realm を識別するパーティション値。
-
ビルダ
public Builder(ユーザーユーザー, @Nullable Long partitionValue)
指定されたユーザーとパーティション値を使用して、パーティションベースの同期同期構成のビルダのインスタンスを作成します。- パラメーター:
user
- Realm アプリにアクセスするために使用されるユーザー。partitionValue
- 同期されるリモート Realm を識別するパーティション値。
-
-
メソッドの詳細
-
name
public SyncConfiguration.Builder name( stringファイル名)
このデバイス上の Realm ファイルのファイル名を設定します。- パラメーター:
filename
Realm ファイルの - 名前。
-
encryptionKey
public SyncConfiguration.Builder encryptionKey(byte[] キー)
Realm ファイルの暗号化と復号化に使用される64バイト キーを設定します。- パラメーター:
key
- 暗号化のキー。- 次の例外がスローされます。
IllegalArgumentException
- キーが無効な場合。
-
schemaVersion
public SyncConfiguration.Builder schemaVersion (long schemaVersion)
Realm のスキーマ バージョンを設定します。Synced Realm は、手動移行を必要とせずに適用できる追加のスキーマ変更のみをサポートします。 スキーマ バージョンは、インデックスを削除または追加するための基礎のストレージ層へのインデックスとしてのみ使用されます。 提供されたスキーマ バージョンが Realm ファイル内のバージョンと異なる場合は、これらが再計算されます。 警告:ここに挿入された値が
BaseRealm.getVersion()
によって返される値と同じである保証はありません。 同期された Realm の性質上、 の値は上回ることも低いこともあります。- この schemaVersion が使用された後に、より小さい
schemaVersion
を持つ別のクライアントが初めてサーバーに接続された場合は、この値は低くなります。 - この Realm が作成された後に、より高い
schemaVersion
を持つ別のクライアントがサーバーに接続されていた場合は、この値が高くなります。
- パラメーター:
schemaVersion
- スキーマのバージョン。- 次の例外がスローされます。
IllegalArgumentException
- スキーマ バージョンが無効な場合。
- この schemaVersion が使用された後に、より小さい
-
modules
public SyncConfiguration.Builderモジュール( Object baseModule、 Object ... additionalModules)
既存のモジュールを 1 つ以上のRealmModule
に置き換えます。 このメソッドを使用すると、この Realm の現在のスキーマが、提供されている モジュールによって定義されているスキーマに置き換えられます。プロジェクト内のすべての Realm クラス(ただし、依存関係は含まない)を含むデフォルトの Realm モジュールへの参照は、
Realm.getDefaultModule()
を使用して見つけることができます。 アプリプロジェクトとライブラリの依存関係のスキーマを組み合わせるには、次のコードを使用します。builder.modules(Realm.getDefaultMode(), new MyLibraryModule());
- パラメーター:
baseModule
- 最初の Realm モジュール(必須)。additionalModules
- 追加の Realm モジュール- 次の例外がスローされます。
IllegalArgumentException
- いずれのモジュールにもRealmModule
アノテーションがない場合。- 以下も参照してください。
Realm.getDefaultModule()
-
modules
public SyncConfiguration.Builder modules(Iterable<Object> modules)
既存のモジュールを 1 つ以上のRealmModule
に置き換えます。 このメソッドを使用すると、この Realm の現在のスキーマが、提供されている モジュールによって定義されているスキーマに置き換えられます。プロジェクト内のすべての Realm クラス(ただし、依存関係は含まない)を含むデフォルトの Realm モジュールへの参照は、
Realm.getDefaultModule()
を使用して見つけることができます。 アプリプロジェクトとライブラリの依存関係のスキーマを組み合わせるには、次のコードを使用します。builder.modules(Realm.getDefaultMode(), new MyLibraryModule());
- パラメーター:
modules
- 最初の Realm モジュール(必須)のモジュールのリスト。- 次の例外がスローされます。
IllegalArgumentException
- いずれのモジュールにもRealmModule
アノテーションがない場合。- 以下も参照してください。
Realm.getDefaultModule()
-
addModule
public SyncConfiguration.Builder addModule(オブジェクトモジュール)
すでに定義されているモジュールにモジュールを追加します。
-
rxFactory
public SyncConfiguration.Builder rxFactory( @Nonnull RxObservableFactoryファクトリー)
Realm オブジェクトから Rx Observable を作成するために使用されるRxObservableFactory
を設定します。 デフォルトのファクトリーはRealmObservableFactory
です。- パラメーター:
factory
- 使用するファクトリー。
-
cloudFactory
public SyncConfiguration.BuilderflowFactory ( @Nonnull FlowFactoryファクトリー)
Realm オブジェクトからコルーチン フローを作成するために使用されるFlowFactory
を設定します。 デフォルトのファクトリーはRealmFlowFactory
です。- パラメーター:
factory
- 使用するファクトリー。
-
initialData
public SyncConfiguration.Builder initialData ( Realm.Transaction transaction)
Realm
に初期データを設定します。 このトランザクションは、Realm ファイルが初めて開かれたとき(作成時)、またはデータの移行中にのみ実行されます(RealmConfiguration.Builder.deleteRealmIfMigrationNeeded()
が設定されている場合)。- パラメーター:
transaction
- 実行するトランザクション。
-
initialSubscriptions
public SyncConfiguration.Builder initialSubscriptions( SyncConfiguration.InitialFlexibleSyncSubscriptionsアクション)
Subscription
の最初のRealm
を設定します。これは、Realm ファイルが初めて開かれたときにのみ実行されます(および ファイルが作成された場合)。waitForInitialRemoteData()
も構成されている場合、すべてのサブスクライブ データがアップロードされるまで、Realm ファイルは完全に開かれません。- パラメーター:
action
- サブスクリプションを追加できる -MutableSubscriptionSet
-
インメモリ
public SyncConfiguration.Builder inMemory()
これを設定すると、ディスクに保存されるのではなく、メモリ内 Realm が作成されます。 メモリが不足している場合は、インメモリ Realm でもディスク領域が使用される可能性がありますが、Realm が閉じられると、インメモリ Realm によって作成されたすべてのファイルが削除されます。メモリ内 Realm は永続化されないため、データが最後に表示される限り、特定の名前のメモリ内 Realm オブジェクトへの閉じられていない参照を少なくとも 1 つ保持する必要があることに注意してください。
-
errorHandler
public SyncConfiguration.Builder errorHandler( SyncSession.ErrorHandlerエラーハンドラー)
この構成で使用されるエラー ハンドラーを設定します。定義された
SyncPolicy
によって処理されないエラーのみがこのエラー ハンドラーに報告されます。- パラメーター:
errorHandler
- Realm Object Server との通信時にエラーを報告するために使用されるエラー ハンドラー。- 次の例外がスローされます。
IllegalArgumentException
-null
がエラー ハンドラーとして指定されている場合。
-
clientResetHandler
@非推奨のパブリックSyncConfiguration.Builder clientResetHandler( SyncSession.ClientResetHandlerハンドラー)
クライアント リセットが発生したときの ハンドラーを設定します。 ハンドラーが設定されていない場合、クライアント リセットが発生すると と エラーがログに記録されます。- パラメーター:
handler
- クライアント リセットの場合のカスタム ハンドラーには該当しません。
-
syncClientResetStrategy
public SyncConfiguration.Builder syncClientResetStratey( ManuallyRecounterUnsyncedchangesStrateyハンドラー)
クライアント リセットが発生したときの ハンドラーを設定します。 ハンドラーが設定されていない場合、クライアント リセットが発生すると と エラーがログに記録されます。- パラメーター:
handler
- クライアントリセットの場合のカスタム手動ハンドラー。
-
syncClientResetStrategy
public SyncConfiguration.Builder syncClientResetStratey( DiscardUnsyncedchangesStrateyハンドラー)
クライアント リセットが発生したときの ハンドラーを設定します。 ハンドラーが設定されていない場合、クライアント リセットが発生すると と エラーがログに記録されます。 この戦略は、パーティションベースの同期を使用する同期された Realm でのみ使用できます。 フレキシブルな同期を使用する Realm は現在、syncClientResetStrategy(ManuallyRecoverUnsyncedChangesStrategy)
のみをサポートしています。- パラメーター:
handler
- クライアントリセットの場合のカスタム シームレス損失ハンドラーには該当しません。
-
waitForInitial remoteData
public SyncConfiguration.Builder waitForInitial remoteData()
これを設定すると、Realm が初めて開かれたときに、Realm はサーバーからすべての既知の変更をダウンロードします。 すべてのデータがダウンロードされるまで、Realm は開きません。 つまり、デバイスがオフラインの場合、Realm は開きません。すべての変更をダウンロードするには、UI スレッドをブロックする可能性のある長時間の操作が含まれるため、この設定が有効になっている Realm はバックグラウンド スレッドで、または UI スレッド上の
Realm.getInstanceAsync(RealmConfiguration, Realm.Callback)
を使用してのみ開かれる必要があります。このチェックは、Realm が初めて作成されるときにのみ強制されます。 Realm に最新の変更が含まれていることを確認するには、
SyncSession.downloadAllServerChanges()
を使用します。
-
waitForInitial remoteData
public SyncConfiguration.Builder waitForInitial remoteData (long タイムアウト、 TimeUnit単位)
これを設定すると、Realm が初めて開かれたときに、Realm はサーバーからすべての既知の変更をダウンロードします。 すべてのデータがダウンロードされるまで、Realm は開きません。 つまり、デバイスがオフラインの場合、Realm は開きません。すべての変更をダウンロードするには、UI スレッドをブロックする可能性のある長時間の操作が含まれるため、この設定が有効になっている Realm はバックグラウンド スレッドで、または UI スレッド上の
Realm.getInstanceAsync(RealmConfiguration, Realm.Callback)
を使用してのみ開かれる必要があります。このチェックは、Realm が初めて作成されるときにのみ強制されます。 Realm に最新の変更が含まれていることを確認するには、
SyncSession.downloadAllServerChanges()
を使用します。- パラメーター:
timeout
-DownloadingRealmInterruptedException
がスローされる前に、ダウンロードが完了するまで待機する時間unit
- タイムアウトを定義するために使用される時間の単位。
-
readOnly
public SyncConfiguration.Builder readOnly()
これを設定すると、Realm は読み取り専用になり、この Realm に対して行われたすべての書込みトランザクションが失敗し、IllegalStateException
が返されます。これは特に、
Realm を読み取りとしてマークすると、このプロセス内の Realm にのみ適用されます。 他のプロセスとデバイスは引き続き Realm に書込み可能です。initialData(Realm.Transaction)
が読み取り専用 Realm と組み合わせて動作せず、これを設定するとIllegalStateException
がスローされることを意味します。
-
compactOnLaunch
public SyncConfiguration.Builder compactOnLaunch()
これを設定すると、Realm ファイルが大きくなりすぎて有効な量のスペースが復元される場合、Realm は Realm ファイルを圧縮します。 詳細については、DefaultCompactOnLaunchCallback
を参照してください。
-
compactOnLaunch
public SyncConfiguration.Builder compactOnLauth( CompatOnLaunchCallback compactOnLaunch)
Realm ファイルをユーザーに返す前に圧縮する必要があるかどうかを決定するためにこれを設定します。 合計ファイルサイズ(データ + 空き領域)とファイル内のデータによって使用されるバイト数が渡されます。- パラメーター:
compactOnLaunch
- プロセスの有効期間中に Realm を初めて開き、ユーザーに返される前に圧縮する必要があるかどうかを判断するときに呼び出されるコールバック。 合計ファイルサイズ(データ + 空き領域)とファイル内のデータによって使用されるバイト数が渡されます。
-
assetFile
public SyncConfiguration.BuilderassetFile ( string )
Realm を初めて開くと、空のファイルが作成される代わりに、提供されたアセット ファイルから Realm ファイルがコピーされ、使用されます。これは Realm にデータを事前に入力するために使用できるため、サーバーからダウンロードする必要はありません。
提供された Realm ファイルは、指定されたユーザーの有効な同期済み Realm であり、
BaseRealm.writeCopyTo(File)
API を使用して作成されている必要があります。警告: これは長時間の操作になる可能性があるため、理想的にはバックグラウンド スレッドで実行する必要があります。
- パラメーター:
assetFile
- アセット データベース ファイルへのパス。- 次の例外がスローされます。
IllegalStateException
- この Realm がinMemory()
としてマークされている場合。
-
urlPrefix
public SyncConfiguration.Builder urlPrefix( string urlPrefix)
MongoDB Realm への同期接続を開始する WebSocket リクエストのパスの先頭に追加されるプレフィックス。 指定された値はサーバーの構成と一致する必要があります。そうでない場合、デバイスは接続を作成できません。 この値は任意であり、特定のファイアウォール ルールで必要な場合にのみ設定する必要があります。- パラメーター:
urlPrefix
- 同期接続 URL に追加するプレフィックス。
-
maxNumberOfActiveVersions
public SyncConfiguration.Builder maxNumberOfActiveVersions(long number)
追加のデータ書込みを試みるときにIllegalStateException
がスローされる前に、Realm ファイル内のライブ バージョンの最大数を設定します。Realm は、多くの異なるバージョンの Realm オブジェクトを同時に処理することができます。 これは、多数の異なるスレッドで Realm を開いているか、データがファイルに書き込まれているときにオブジェクトをフリーズしている場合に発生する可能性があります。
通常の状況では、これは問題ではありませんが、アクティブなバージョンの数が大きくなりすぎると、ディスク上のファイルサイズに悪影響が生じます。 したがって、このパラメーターを設定すると、Realm が非常に大きくなる可能性のある Realm の使用を防ぐために使用できます。
他のデバイスからの変更がこのデバイスに統合されると、バージョン番号も増加することに注意してください。そのため、アクティブなバージョンの数は、同じ Realm への書き込みを他のデバイスがどのように行っているかによっても異なります。
- パラメーター:
number
- 例外がスローされるまでのアクティブなバージョンの最大数。- 以下も参照してください。
- FAQ
-
allowWritesOnUiThread
public SyncConfiguration.Builder allowWritesOnUiThread(ブール値 allowWritesOnUiThread)
UI スレッドからRealm.executeTransaction(io.realm.Realm.Transaction)
への呼び出しを許可するかどうかを設定します。警告: Realm では、ユーザーがこのメソッドで明示的にオプトインしない限り、メイン スレッドで同期トランザクションを実行することはできません。
executeTransaction
への呼び出しを非 UI スレッドに転送するか、あるいはRealm.executeTransactionAsync(io.realm.Realm.Transaction)
を使用することを推奨します。
-
allowQueriesOnUiThread
public SyncConfiguration.Builder allowQueriesOnUiThread(ブール値 allowQueriesOnUiThread)
UI スレッドからRealmQueries
を許可するかどうかを設定します。デフォルトでは、Realm はメイン スレッドでのクエリを許可します。 ただし、そうすると、アプリケーションのフレームワークが低下したり、ARN が発生したりする可能性があります。 クエリを非 UI スレッドに転送するか、代わりに
RealmQuery.findAllAsync()
またはRealmQuery.findFirstAsync()
を使用することをお勧めします。
-
構築
public SyncConfiguration build()
ビルダ パラメータに基づいて RealmConfiguration を作成します。- 次の値を返します。
- は
SyncConfiguration
を作成しました。 - 次の例外がスローされます。
IllegalStateException
- 構成パラメータが無効または一貫性のない場合。
-
-