パッケージ io.realm.mongodb.sync

クラス SyncConfiguration.Builder

  • クラスを囲みます。
    SyncConfiguration

    public static final class SyncConfiguration.Builder
    extends Object
    SyncConfiguration のインスタンスをスムーズに構築するために使用されるビルダ。
    • コンストラクターの詳細

      • ビルダ

        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 を識別するパーティション値。
      • ビルダ

        public Builder(ユーザーuser, @Nullable UUID 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 - スキーマ バージョンが無効な場合。
      • 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()
      • インメモリ

        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がエラー ハンドラーとして指定されている場合。
      • 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が返されます。

        これは特に、 initialData(Realm.Transaction)が読み取り専用 Realm と組み合わせて動作せず、これを設定するとIllegalStateExceptionがスローされることを意味します。

        Realm を読み取りとしてマークすると、このプロセス内の Realm にのみ適用されます。 他のプロセスとデバイスは引き続き Realm に書込み可能です。
      • compactOnLaunch

        public SyncConfiguration.Builder compactOnLaunch()
        これを設定すると、Realm ファイルが大きくなりすぎて有効な量のスペースが復元される場合、Realm は Realm ファイルを圧縮します。 詳細については、 DefaultCompactOnLaunchCallbackを参照してください。
      • compactOnLaunch

        public SyncConfiguration.Builder compactOnLauth( CompatOnLaunchCallback compactOnLaunch)
        Realm ファイルをユーザーに返す前に圧縮する必要があるかどうかを決定するためにこれを設定します。 合計ファイルサイズ(データ + 空き領域)とファイル内のデータによって使用されるバイト数が渡されます。
        パラメーター:
        compactOnLaunch - プロセスの有効期間中に Realm を初めて開き、ユーザーに返される前に圧縮する必要があるかどうかを判断するときに呼び出されるコールバック。 合計ファイルサイズ(データ + 空き領域)とファイル内のデータによって使用されるバイト数が渡されます。
      • assetFile

        public SyncConfiguration.BuilderassetFilestring
        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
      • allowQueriesOnUiThread

        public SyncConfiguration.Builder allowQueriesOnUiThread(ブール値 allowQueriesOnUiThread)
        UI スレッドからRealmQueriesを許可するかどうかを設定します。

        デフォルトでは、Realm はメイン スレッドでのクエリを許可します。 ただし、そうすると、アプリケーションのフレームワークが低下したり、ARN が発生したりする可能性があります。 クエリを非 UI スレッドに転送するか、代わりにRealmQuery.findAllAsync()またはRealmQuery.findFirstAsync()を使用することをお勧めします。

      • 構築

        public SyncConfiguration build()
        ビルダ パラメータに基づいて RealmConfiguration を作成します。
        次の値を返します。
        SyncConfigurationを作成しました。
        次の例外がスローされます。
        IllegalStateException - 構成パラメータが無効または一貫性のない場合。