Classe SyncConfiguration.Builder
- java.lang.Object
-
- io.realm.mongodb.sync.SyncConfiguration.Builder
-
- Classe anexa:
- SyncConfiguration
public static final class SyncConfiguration.Builder extends Object
O construtor costumava construir instâncias de uma SyncConfiguration de forma fluente.
-
-
Resumo do construtor
Construtores Constructor Descrição Builder(User user)
Cria uma instância do construtor para um Flexible Sync SyncConfiguration com o usuário fornecido.Builder(User user, Integer partitionValue)
Cria uma instância do construtor para uma sincronização baseada em partição SyncConfiguration com o usuário fornecido e o valor da partição.Builder(User user, Long partitionValue)
Cria uma instância do construtor para uma sincronização baseada em partição SyncConfiguration com o usuário fornecido e o valor da partição.Builder(User user, String partitionValue)
Cria uma instância do construtor para uma sincronização baseada em partição SyncConfiguration com o usuário fornecido e o valor da partição.Builder(User user, UUID partitionValue)
Cria uma instância do construtor para uma sincronização baseada em partição SyncConfiguration com o usuário fornecido e o valor da partição.Builder(User user, ObjectId partitionValue)
Cria uma instância do construtor para uma sincronização baseada em partição SyncConfiguration com o usuário fornecido e o valor da partição.
-
Resumo do método
Todos os métodos Métodos de instância Métodos concretos Métodos obsoletos Modificador e tipo Método Descrição SyncConfiguration.Builder
addModule(Object module)
Adiciona um módulo aos módulos já definidos.SyncConfiguration.Builder
allowQueriesOnUiThread(boolean allowQueriesOnUiThread)
Define seRealmQueries
é permitido ou não a partir do thread da UI.SyncConfiguration.Builder
allowWritesOnUiThread(boolean allowWritesOnUiThread)
Define se as chamadas paraRealm.executeTransaction(io.realm.Realm.Transaction)
são permitidas ou não a partir do thread da UI.SyncConfiguration.Builder
assetFile(String assetFile)
Ao abrir o Realm pela primeira vez, em vez de criar um arquivo vazio, o Arquivo de Realm será copiado do arquivo de ativo fornecido e usado em seu lugar.SyncConfiguration
build()
Cria o RealmConfiguration com base nos parâmetros do construtor.SyncConfiguration.Builder
clientResetHandler(SyncSession.ClientResetHandler handler)
Obsoleto.substituído porsyncClientResetStrategy(ManuallyRecoverUnsyncedChangesStrategy)
SyncConfiguration.Builder
compactOnLaunch()
Definir isso fará com que o Realm compactará o Arquivo de Realm se o Arquivo de Realm ficar muito grande e uma quantidade significativa de espaço puder ser recuperada.SyncConfiguration.Builder
compactOnLaunch(CompactOnLaunchCallback compactOnLaunch)
Define isso para determinar se o Arquivo de Realm deve ser compactado antes de retornar ao usuário.SyncConfiguration.Builder
encryptionKey(byte[] key)
Define a chave de 64 bytes usada para criptografar e descriptografar o Arquivo de Realm.SyncConfiguration.Builder
errorHandler(SyncSession.ErrorHandler errorHandler)
Define o manipulador de erros usado por esta configuração.SyncConfiguration.Builder
flowFactory(FlowFactory factory)
Define oFlowFactory
usado para criar Fluxos de corrotina a partir de Objeto de Realm.SyncConfiguration.Builder
initialData(Realm.Transaction transaction)
Define os dados iniciais emRealm
.SyncConfiguration.Builder
initialSubscriptions(SyncConfiguration.InitialFlexibleSyncSubscriptions action)
Define osSubscription
s iniciais para oRealm
.SyncConfiguration.Builder
inMemory()
Definir isso criará um Realm na memória em vez de salvá-lo no disco.SyncConfiguration.Builder
maxNumberOfActiveVersions(long number)
Define o número máximo de versões ativas no Arquivo de Realm antes que umIllegalStateException
seja lançado ao tentar gravar mais dados.SyncConfiguration.Builder
modules(Iterable<Object> modules)
Substitui o(s) módulo(s) existente(s) por um ou maisRealmModule
s.SyncConfiguration.Builder
modules(Object baseModule, Object... additionalModules)
Substitui o(s) módulo(s) existente(s) por um ou maisRealmModule
s.SyncConfiguration.Builder
name(String filename)
Define o nome do Arquivo de Realm neste dispositivo.SyncConfiguration.Builder
readOnly()
Definir isso fará com que o Realm se torne somente leitura e todas as transação de escrita feitas nesse Realm falharão com umIllegalStateException
.SyncConfiguration.Builder
rxFactory(RxObservableFactory factory)
Define oRxObservableFactory
usado para criar Observables Rx a partir de Objeto de Realm.SyncConfiguration.Builder
schemaVersion(long schemaVersion)
Define a versão do esquema do Realm.SyncConfiguration.Builder
syncClientResetStrategy(DiscardUnsyncedChangesStrategy handler)
Define o manipulador para quando ocorre um reinício do cliente.SyncConfiguration.Builder
syncClientResetStrategy(ManuallyRecoverUnsyncedChangesStrategy handler)
Define o manipulador para quando ocorre um reinício do cliente.SyncConfiguration.Builder
urlPrefix(String urlPrefix)
O prefixo que é anexado ao caminho na solicitação do WebSocket que inicia uma conexão de sincronização com o MongoDB Realm.SyncConfiguration.Builder
waitForInitialRemoteData()
Configurar isso fará com que o Realm baixe todas as alterações conhecidas do servidor na primeira vez que um Realm for aberto.SyncConfiguration.Builder
waitForInitialRemoteData(long timeout, TimeUnit unit)
Configurar isso fará com que o Realm baixe todas as alterações conhecidas do servidor na primeira vez que um Realm for aberto.
-
-
-
Detalhes do construtor
-
Construtor
construtor público (usuário usuário)
Cria uma instância do construtor para um Flexible Sync SyncConfiguration com o usuário fornecido.- Parâmetros:
user
- O usuário que será usado para acessar o aplicativo Realm.
-
Construtor
construtor público (usuário , @Nullable String partitionValue)
Cria uma instância do construtor para uma sincronização baseada em partição SyncConfiguration com o usuário fornecido e o valor da partição.- Parâmetros:
user
- O usuário que será usado para acessar o aplicativo Realm.partitionValue
- O valor da partição que identifica o Realm remoto que será sincronizado.
-
Construtor
construtor público (usuário usuário, @Nullable ObjectId partitionValue)
Cria uma instância do construtor para uma sincronização baseada em partição SyncConfiguration com o usuário fornecido e o valor da partição.- Parâmetros:
user
- O usuário que será usado para acessar o aplicativo Realm.partitionValue
- O valor da partição que identifica o Realm remoto que será sincronizado.
-
Construtor
construtor público (usuário , @Nullable Integer partiçãoValue)
Cria uma instância do construtor para uma sincronização baseada em partição SyncConfiguration com o usuário fornecido e o valor da partição.- Parâmetros:
user
- O usuário que será usado para acessar o aplicativo Realm.partitionValue
- O valor da partição que identifica o Realm remoto que será sincronizado.
-
Construtor
construtor público (usuário usuário, @Nullable Long partitionValue)
Cria uma instância do construtor para uma sincronização baseada em partição SyncConfiguration com o usuário fornecido e o valor da partição.- Parâmetros:
user
- O usuário que será usado para acessar o aplicativo Realm.partitionValue
- O valor da partição que identifica o Realm remoto que será sincronizado.
-
Construtor
Construtor público (usuário usuário, @Nullable UUID partitionValue)
Cria uma instância do construtor para uma sincronização baseada em partição SyncConfiguration com o usuário fornecido e o valor da partição.- Parâmetros:
user
- O usuário que será usado para acessar o aplicativo Realm.partitionValue
- O valor da partição que identifica o Realm remoto que será sincronizado.
-
-
Detalhes do método
-
name
nome público do SyncConfiguration.Builder ( Nome do arquivo da string )
Define o nome do Arquivo de Realm neste dispositivo.- Parâmetros:
filename
- nome do Arquivo de Realm.
-
encryptionKey
public SyncConfiguration.Builder encryptionKey(byte[] chave)
Define a chave de 64 bytes usada para criptografar e descriptografar o Arquivo de Realm.- Parâmetros:
key
- a chave de criptografia.- Lançamentos:
IllegalArgumentException
- se a chave for inválida.
-
Versão do esquema
public SyncConfiguration.Builder schemaVersion(long schemaVersion)
Define a versão do esquema do Realm.Os domínios sincronizados suportam apenas alterações de esquema aditivas que podem ser aplicadas sem exigir uma migração manual. A versão do esquema será usada somente como uma indicação para a camada de armazenamento subjacente para remover ou adicionar índices. Eles serão recalculados se a versão do esquema fornecida for diferente da versão no Arquivo de Realm. AVISO: Não há garantia de que o valor inserido aqui seja o mesmo retornado por
BaseRealm.getVersion()
. Devido à natureza dos Realms sincronizados, o valor pode ser maior e menor.- Ele será mais baixo se outro cliente com um
schemaVersion
menor se conectar ao servidor pela primeira vez após essa schemaVersion ter sido usada. - Ele será maior se outro cliente com um
schemaVersion
superior for conectado ao servidor após a criação desse Realm.
- Parâmetros:
schemaVersion
- a versão do esquema.- Lançamentos:
IllegalArgumentException
- se a versão do esquema for inválida.
- Ele será mais baixo se outro cliente com um
-
módulos
módulos SyncConfiguration.Builder públicos (objeto baseModule, objeto...
Substitui o(s) módulo(s) existente(s) por um ou maisRealmModule
s. A utilização deste método substituirá o esquema atual deste Realm pelo esquema definido pelos módulos fornecidos.Uma referência ao módulo Realm padrão contendo todas as classes Realm no projeto (mas não dependências), pode ser encontrada utilizando
Realm.getDefaultModule()
. A combinação do esquema do projeto do aplicativo e de uma dependência da biblioteca é feita com o seguinte código:builder.modules(Realm.getDefaultMode(), new MyLibraryModule());
- Parâmetros:
baseModule
- o primeiro módulo Realm (obrigatório).additionalModules
- os módulos adicionais do Realm- Lançamentos:
IllegalArgumentException
- se algum dos módulos não tiver a anotaçãoRealmModule
.- Veja também:
Realm.getDefaultModule()
-
módulos
public SyncConfiguration.Builder modules(Iterable<Object> modules)
Substitui o(s) módulo(s) existente(s) por um ou maisRealmModule
s. A utilização deste método substituirá o esquema atual deste Realm pelo esquema definido pelos módulos fornecidos.Uma referência ao módulo Realm padrão contendo todas as classes Realm no projeto (mas não dependências), pode ser encontrada utilizando
Realm.getDefaultModule()
. A combinação do esquema do projeto do aplicativo e de uma dependência da biblioteca é feita com o seguinte código:builder.modules(Realm.getDefaultMode(), new MyLibraryModule());
- Parâmetros:
modules
- lista de módulos do primeiro módulo Realm (obrigatório).- Lançamentos:
IllegalArgumentException
- se algum dos módulos não tiver a anotaçãoRealmModule
.- Veja também:
Realm.getDefaultModule()
-
addModule
public SyncConfiguration.Builder addModule(módulo objeto )
Adiciona um módulo aos módulos já definidos.
-
rxFactory
public SyncConfiguration.Builder rxFactory (@Nonnull RxObservableFactory factory)
Define oRxObservableFactory
usado para criar Observables Rx a partir de objetos Realm. O padrão de fábrica éRealmObservableFactory
.- Parâmetros:
factory
- fábrica para usar.
-
flowFactory
public SyncConfiguration.Builder flowFactory (@Nonnull FlowFactory factory)
Define oFlowFactory
usado para criar Fluxos de corrotina a partir de Objeto de Realm. O padrão de fábrica éRealmFlowFactory
.- Parâmetros:
factory
- fábrica para usar.
-
initialData
public SyncConfiguration.Builder initialData ( Realm.Transaction transaction)
Define os dados iniciais emRealm
. Esta transação será executada somente na primeira vez que o Arquivo de Realm for aberto (criado) ou durante a migração dos dados seRealmConfiguration.Builder.deleteRealmIfMigrationNeeded()
estiver definido.- Parâmetros:
transaction
- transação a ser executada.
-
Assinaturas iniciais
public SyncConfiguration.Builder initialSubscriptions (ação SyncConfiguration.InitialFlexibleSyncSubscriptions )
Define osSubscription
s iniciais para oRealm
. Isso só será executado na primeira vez que o Arquivo de Realm for aberto (e o arquivo criado). Se owaitForInitialRemoteData()
também estiver configurado, o arquivo de domínio não será totalmente aberto até que todos os dados de assinatura também tenham sido carregados.- Parâmetros:
action
-MutableSubscriptionSet
onde assinaturas podem ser adicionadas.
-
inMemory
public SyncConfiguration.Builder inMemory()
Definir isso criará um Realm na memória em vez de salvá-lo no disco. Os Realms na memória ainda podem usar espaço em disco se a memória estiver fraca, mas todos os arquivos criados por um Realm na memória serão excluídos quando o Realm for fechado.Observe que, como os Realms na memória não são persistentes, você deve manter pelo menos uma referência não fechada ao Objeto de Realm na memória com o nome específico, enquanto quiser que os dados durem.
-
erroHandler
public SyncConfiguration.Builder errorHandler<SyncSession.ErrorHandler errorHandler)
Define o manipulador de erros usado por esta configuração.Somente erros não manipulados pelo
SyncPolicy
definido serão relatados a este manipulador de erros.- Parâmetros:
errorHandler
- manipulador de erros usado para relatar erros ao se comunicar com o servidor de Objeto de Realm.- Lançamentos:
IllegalArgumentException
- senull
for fornecido como um manipulador de erros.
-
clientResetHandler
@Deprecated público SyncConfiguration.Builder clientResetHandler (manipulador SyncSession.ClientResetHandler )
Obsoleto.substituído porsyncClientResetStrategy(ManuallyRecoverUnsyncedChangesStrategy)
Define o manipulador para quando ocorre um reinício do cliente. Se nenhum manipulador estiver definido, e o erro for registrado quando ocorrer um reinício do cliente.- Parâmetros:
handler
- manipulador personalizado no caso de um reinício do cliente.
-
syncClientResetStrategy
public SyncConfiguration.Builder syncClientResetStrategy (manipulador ManuallyRecuperUnsyncedChangesStrategy )
Define o manipulador para quando ocorre um reinício do cliente. Se nenhum manipulador estiver definido, e o erro for registrado quando ocorrer um reinício do cliente.- Parâmetros:
handler
- manipulador manual personalizado no caso de um reinício do cliente.
-
syncClientResetStrategy
public SyncConfiguration.Builder syncClientResetStrategy (manipulador DiscardUnsyncedChangesStrategy )
Define o manipulador para quando ocorre um reinício do cliente. Se nenhum manipulador estiver definido, e o erro for registrado quando ocorrer um reinício do cliente. Essa estratégia só está disponível para domínios sincronizados usando sincronização baseada em partição. Os domínios que usam a Flexible Sync atualmente suportam apenassyncClientResetStrategy(ManuallyRecoverUnsyncedChangesStrategy)
.- Parâmetros:
handler
- manipulador de perdas contínuo personalizado no caso de um reinício do cliente.
-
waitForInitialRemoteData
public SyncConfiguration.Builder waitForInitialRemoteData()
Configurar isso fará com que o Realm baixe todas as alterações conhecidas do servidor na primeira vez que um Realm for aberto. O Realm não será aberto até que todos os dados tenham sido baixados. Isso significa que, se um dispositivo estiver off-line, o Realm não será aberto.Como o download de todas as alterações pode ser uma operação demorada que pode bloquear o thread da interface do usuário, os Realms com essa configuração habilitada só devem ser abertos em threads de background ou com
Realm.getInstanceAsync(RealmConfiguration, Realm.Callback)
no thread da interface do usuário.Essa verificação só é imposta na primeira vez que um Realm é criado. Se, de outra forma, você quiser garantir que um Realm tenha as alterações mais recentes, use
SyncSession.downloadAllServerChanges()
.
-
waitForInitialRemoteData
public SyncConfiguration.Builder waitForInitialRemoteData(tempo limite longo, unidade TimeUnit )
Configurar isso fará com que o Realm baixe todas as alterações conhecidas do servidor na primeira vez que um Realm for aberto. O Realm não será aberto até que todos os dados tenham sido baixados. Isso significa que, se um dispositivo estiver off-line, o Realm não será aberto.Como o download de todas as alterações pode ser uma operação demorada que pode bloquear o thread da interface do usuário, os Realms com essa configuração habilitada só devem ser abertos em threads de background ou com
Realm.getInstanceAsync(RealmConfiguration, Realm.Callback)
no thread da interface do usuário.Essa verificação só é imposta na primeira vez que um Realm é criado. Se, de outra forma, você quiser garantir que um Realm tenha as alterações mais recentes, use
SyncSession.downloadAllServerChanges()
.- Parâmetros:
timeout
- quanto tempo esperar para que o download seja concluído antes que umDownloadingRealmInterruptedException
seja lançado.unit
- a unidade de tempo usada para definir o tempo limite.
-
Somente leitura
public SyncConfiguration.Builder readOnly ()
Definir isso fará com que o Realm se torne somente leitura e todas as transação de escrita feitas nesse Realm falharão com umIllegalStateException
.Isso, em particular, média que
Marcar um Realm como somente leitura se aplica apenas ao Realm nesse processo. Outros processos e dispositivos ainda podem escrever no Realm.initialData(Realm.Transaction)
não funcionará em combinação com um Realm somente para leitura e a configuração disso resultará na liberação de umIllegalStateException
.
-
compactaOnLaunch
public SyncConfiguration.Builder compactaOnLaunch()
Definir isso fará com que o Realm compactará o Arquivo de Realm se o Arquivo de Realm ficar muito grande e uma quantidade significativa de espaço puder ser recuperada. ConsulteDefaultCompactOnLaunchCallback
para obter detalhes.
-
compactaOnLaunch
public SyncConfiguration.Builder compactaOnLaunch(CompactOnLaunchCallback compactaOnLaunch)
Define isso para determinar se o Arquivo de Realm deve ser compactado antes de retornar ao usuário. É passado o tamanho total do arquivo (dados + espaço livre) e os bytes usados pelos dados no arquivo.- Parâmetros:
compactOnLaunch
- uma chamada de resposta chamada ao abrir um Realm pela primeira vez durante a vida de um processo para determinar se ele deve ser compactado antes de ser devolvido ao usuário. É passado o tamanho total do arquivo (dados + espaço livre) e os bytes usados pelos dados no arquivo.
-
ativoFile
public SyncConfiguration.Builder ativoFile(String ativoFile)
Ao abrir o Realm pela primeira vez, em vez de criar um arquivo vazio, o Arquivo de Realm será copiado do arquivo de ativo fornecido e usado em seu lugar.Isso pode ser usado para pré-preencher o Realm com dados, para que não precise ser baixado do servidor.
O Arquivo de Realm fornecido deve ser um Realm sincronizado válido para o usuário fornecido e deve ter sido criado usando a API
BaseRealm.writeCopyTo(File)
.AVISO: essa pode ser uma operação demorada e, de preferência, deve ser feita em um thread em segundo plano.
- Parâmetros:
assetFile
- caminho para o arquivo do banco de dados do ativo.- Lançamentos:
IllegalStateException
- se este Realm também estiver marcado comoinMemory()
.
-
URLPrefix
public SyncConfiguration.Builder urlPrefix(String URLPrefix)
O prefixo que é anexado ao caminho na solicitação do WebSocket que inicia uma conexão de sincronização com o MongoDB Realm. O valor especificado deve corresponder à configuração do servidor, caso contrário, o dispositivo não poderá criar uma conexão. Esse valor é opcional e só deve ser definido se uma regra de firewall específica exigir isso.- Parâmetros:
urlPrefix
- O prefixo a ser anexado à URL da conexão de sincronização.
-
maxNumberOfAtiveVersions
public SyncConfiguration.Builder maxNumberOfAtiveVersions(número longo)
Define o número máximo de versões ativas no Arquivo de Realm antes que umIllegalStateException
seja lançado ao tentar gravar mais dados.O Realm é capaz de lidar simultaneamente com muitas versões diferentes de Objeto de Realm. Isso pode acontecer se você tiver um Realm aberto em muitos threads diferentes ou estiver congelando objetos enquanto os dados estão sendo gravados no arquivo.
Em circunstâncias normais, isso não é um problema, mas se o número de versões ativas aumentar demais, isso terá um efeito negativo no tamanho do arquivo no disco. A definição desses parâmetros pode, portanto, ser usada para evitar usos do Realm que podem resultar em Realms muito grandes.
Observe que o número da versão também aumentará quando alterações de outros dispositivos forem integradas neste dispositivo, portanto, o número de versões ativas também dependerá do que os outros dispositivos que gravam no mesmo Realm estão fazendo.
- Parâmetros:
number
- o número máximo de versões ativas antes que uma exceção seja lançada.- Veja também:
- Perguntas frequentes
-
allowWritesOnUiThread
public SyncConfiguration.Builder allowWritesOnUiThread(boolean allowWritesOnUiThread)
Define se as chamadas paraRealm.executeTransaction(io.realm.Realm.Transaction)
são permitidas ou não a partir do thread da UI.AVISO: o Realm não permite que transação síncronas sejam executadas na thread principal, a menos que os usuários optem explicitamente por esse método. Recomendamos redirecionar chamadas para
executeTransaction
para threads que não sejam da interface do usuário ou, alternativamente, usarRealm.executeTransactionAsync(io.realm.Realm.Transaction)
.
-
allowQueriesOnUiThread
public SyncConfiguration.Builder allowQueriesOnUiThread(boolean allowQueriesOnUiThread)
Define seRealmQueries
é permitido ou não a partir do thread da UI.Por padrão, o Realm permite query na thread principal. No entanto, ao fazer isso, seu aplicativo pode sofrer uma queda de armações ou até mesmo ANRs. Recomendamos direcionar query para threads que não sejam da interface do usuário ou, alternativamente, usar
RealmQuery.findAllAsync()
ouRealmQuery.findFirstAsync()
.
-
COMPILAR
public SyncConfiguration build()
Cria o RealmConfiguration com base nos parâmetros do construtor.- Retorna:
- o
SyncConfiguration
criado. - Lançamentos:
IllegalStateException
- se os parâmetros de configuração forem inválidos ou inconsistentes.
-
-