Classe Realm
- java.lang.Object
-
- io.realm.Realm
-
- Todas as interfaces implementadas:
Closeable
,AutoCloseable
public class Realm extends Object
A classe Realm é o gerenciador de armazenamento e transações do armazenamento persistente de objetos. Ele é responsável por criar instâncias de seus RealmObjects. objeto dentro de um Realm podem ser query e lidos a qualquer momento. A criação, modificação e exclusão de objetos deve ser feita enquanto estiver dentro de uma transação. VerexecuteTransaction(Transaction)
As transação garantem que várias instâncias (em vários threads) possam acessar o mesmo objeto em um estado consistente com garantias ACID totais.
É importante lembrar de chamar o método
Closeable.close()
quando terminar com uma Instância de Realm. Não fazer isso pode levar aOutOfMemoryError
, pois os recursos nativos não podem ser liberados.Instância de Realm não podem ser usadas em threads diferentes. Isso significa que você precisa abrir uma instância em cada thread que deseja usar o Realm. Instância de Realm são armazenadas em cache automaticamente por thread usando a contagem de referências, portanto, desde que a contagem de referências não chegue a zero, chamar
getInstance(RealmConfiguration)
apenas retornará o Realm em cache e deve ser considerada uma operação leve.Para o thread da UI, isso significa que a abertura e o fechamento de Realms devem ocorrer em onCreate/onDestroy ou onStart/onStop.
As instâncias do Realm coordenam seu estado entre threads usando o mecanismo
Handler
. Isso também significa que as instâncias do Realm em threads semLooper
não podem receber atualizações, a menos querefresh()
seja chamado manualmente.Um padrão padrão para trabalhar com o Realm nas atividades do Android pode ser visto abaixo:
public class RealmApplication extends Application { \@Override public void onCreate() { super.onCreate(); // The Realm file will be located in package's "files" directory. RealmConfiguration realmConfig = new RealmConfiguration.Builder(this).build(); Realm.setDefaultConfiguration(realmConfig); } } public class RealmActivity extends Activity { private Realm realm; \@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_main); realm = Realm.getDefaultInstance(); } \@Override protected void onDestroy() { super.onDestroy(); realm.close(); } }
O Realm suporta campos de string e bytes contendo até 16 MB.
- Veja também:
- ACID, exemplos usando o Realm
-
-
Resumo da classe aninhada
Classes agrupadas Modificador e tipo classe Descrição static class
Realm.Callback
A chamada de resposta usada ao relatar o resultado do carregamento de um Realm de forma assíncrona usandogetInstanceAsync(RealmConfiguration, Realm.Callback)
ouDynamicRealm.getInstanceAsync(RealmConfiguration, DynamicRealm.Callback)
.static interface
Realm.Transaction
Encapsula uma transação do Realm.
-
Resumo do campo
Campos Modificador e tipo Campo Descrição static String
DEFAULT_REALM_NAME
static int
ENCRYPTION_KEY_LENGTH
O comprimento necessário para chaves de criptografia usadas para criptografar dados do Realm.static io.realm.BaseRealm.ThreadLocalRealmObjectContext
objectContext
io.realm.internal.OsSharedRealm
sharedRealm
static io.realm.internal.async.RealmThreadPoolExecutor
WRITE_EXECUTOR
Executor do pool de threads usado para operações de gravação - apenas um thread é necessário, pois as gravações não podem ser paralelizadas.
-
Resumo do método
Todos os métodos Métodos estáticos Métodos de instância Métodos concretos Métodos obsoletos Modificador e tipo Método Descrição void
addChangeListener(RealmChangeListener<Realm> listener)
Adiciona um ouvinte de alterações ao Realm.Flowable<Realm>
asFlowable()
Retorna um RxJava Flowable que monitora as alterações nesse Realm.void
beginTransaction()
Inicia uma transação que deve ser fechada porBaseRealm.commitTransaction()
ou abortada porBaseRealm.cancelTransaction()
.void
cancelTransaction()
Reverte todas as gravações (objetos criados, atualizados ou excluídos) feitas na transação de escrita atual e encerra a transação.void
close()
Fecha a Instância de Realm e todos os seus recursos.void
commitTransaction()
Todas as alterações desdeBaseRealm.beginTransaction()
são mantidas no disco e o Realm volta a ser somente leitura.static boolean
compactRealm(RealmConfiguration configuration)
Compacta um Arquivo de Realm.<E extends RealmModel>
EcopyFromRealm(E realmObject)
Faz uma cópia na memória não gerenciada de umRealmObject
já persistente.<E extends RealmModel>
EcopyFromRealm(E realmObject, int maxDepth)
Faz uma cópia na memória não gerenciada de umRealmObject
já persistente.<E extends RealmModel>
List<E>copyFromRealm(Iterable<E> realmObjects)
Faz uma cópia na memória não gerenciada de RealmObjects já persistentes.<E extends RealmModel>
List<E>copyFromRealm(Iterable<E> realmObjects, int maxDepth)
Faz uma cópia na memória não gerenciada de RealmObjects já persistentes.<E extends RealmModel>
EcopyToRealm(E object, ImportFlag... flags)
Copia um RealmObject para a Instância de Realm e retorna a cópia.<E extends RealmModel>
List<E>copyToRealm(Iterable<E> objects, ImportFlag... flags)
Copia uma collection de RealmObjects para a Instância de Realm e retorna sua cópia.<E extends RealmModel>
EcopyToRealmOrUpdate(E object, ImportFlag... flags)
Atualiza um RealmObject existente que é identificado pelo mesmoPrimaryKey
ou cria uma nova cópia se nenhum objeto existente puder ser encontrado.<E extends RealmModel>
List<E>copyToRealmOrUpdate(Iterable<E> objects, ImportFlag... flags)
Atualiza uma lista de RealmObjects existentes que é identificado pelo seuPrimaryKey
ou cria uma nova cópia se nenhum objeto existente puder ser encontrado.<E extends RealmModel>
voidcreateAllFromJson(Class<E> clazz, InputStream inputStream)
Cria um Objeto de Realm para cada objeto em uma array JSON.<E extends RealmModel>
voidcreateAllFromJson(Class<E> clazz, String json)
Cria um Objeto de Realm para cada objeto em uma array JSON.<E extends RealmModel>
voidcreateAllFromJson(Class<E> clazz, JSONArray json)
Cria um Objeto de Realm para cada objeto em uma array JSON.<E extends RealmModel>
EcreateEmbeddedObject(Class<E> clazz, RealmModel parentObject, String parentProperty)
Instancia e adiciona um novo objeto incorporado ao Realm.<E extends RealmModel>
EcreateObject(Class<E> clazz)
Instancia e adiciona um novo objeto ao Realm.<E extends RealmModel>
EcreateObject(Class<E> clazz, Object primaryKeyValue)
Instancia e adiciona um novo objeto ao Realm com o valor da chave primária já definido.<E extends RealmModel>
EcreateObjectFromJson(Class<E> clazz, InputStream inputStream)
Cria um Objeto de Realm pré-preenchido com dados de um objeto JSON.<E extends RealmModel>
EcreateObjectFromJson(Class<E> clazz, String json)
Cria um Objeto de Realm pré-preenchido com dados de um objeto JSON.<E extends RealmModel>
EcreateObjectFromJson(Class<E> clazz, JSONObject json)
Cria um Objeto de Realm pré-preenchido com dados de um objeto JSON.<E extends RealmModel>
voidcreateOrUpdateAllFromJson(Class<E> clazz, InputStream in)
Tenta atualizar uma lista de objetos existentes identificados por sua chave primária com novos dados JSON.<E extends RealmModel>
voidcreateOrUpdateAllFromJson(Class<E> clazz, String json)
Tenta atualizar uma lista de objetos existentes identificados por sua chave primária com novos dados JSON.<E extends RealmModel>
voidcreateOrUpdateAllFromJson(Class<E> clazz, JSONArray json)
Tenta atualizar uma lista de objetos existentes identificados por sua chave primária com novos dados JSON.<E extends RealmModel>
EcreateOrUpdateObjectFromJson(Class<E> clazz, InputStream in)
Tenta atualizar um objeto existente definido por sua chave primária com novos dados JSON.<E extends RealmModel>
EcreateOrUpdateObjectFromJson(Class<E> clazz, String json)
Tenta atualizar um objeto existente definido por sua chave primária com novos dados JSON.<E extends RealmModel>
EcreateOrUpdateObjectFromJson(Class<E> clazz, JSONObject json)
Tenta atualizar um objeto existente definido por sua chave primária com novos dados JSON.void
delete(Class<? extends RealmModel> clazz)
Exclui todos os objetos da classe especificada do Realm.void
deleteAll()
Exclui todos os objetos deste Realm.static boolean
deleteRealm(RealmConfiguration configuration)
Exclui o arquivo Realm junto com os arquivos temporários relacionados especificados peloRealmConfiguration
fornecido do sistema de arquivos.void
executeTransaction(Realm.Transaction transaction)
Executa uma determinada transação no Realm.RealmAsyncTask
executeTransactionAsync(Realm.Transaction transaction)
Semelhante aexecuteTransaction(Transaction)
, mas executado de forma assíncrona em uma thread de trabalho.RealmAsyncTask
executeTransactionAsync(Realm.Transaction transaction, Realm.Transaction.OnError onError)
Semelhante aexecuteTransactionAsync(Transaction)
, mas também aceita uma chamada de resposta OnError.RealmAsyncTask
executeTransactionAsync(Realm.Transaction transaction, Realm.Transaction.OnSuccess onSuccess)
Semelhante aexecuteTransactionAsync(Transaction)
, mas também aceita uma chamada de resposta OnSuccess.RealmAsyncTask
executeTransactionAsync(Realm.Transaction transaction, Realm.Transaction.OnSuccess onSuccess, Realm.Transaction.OnError onError)
Semelhante aexecuteTransactionAsync(Transaction)
, mas também aceita retornos de chamada OnSuccess e OnError.Realm
freeze()
Retorna um snapshot congelado do Realm atual.static Context
getApplicationContext()
Obtenha o contexto do aplicativo usado ao inicializar o Realm cominit(Context)
ouinit(Context, String)
.RealmConfiguration
getConfiguration()
Retorna oRealmConfiguration
para este Realm.static RealmConfiguration
getDefaultConfiguration()
Retorna a configuração padrão paragetDefaultInstance()
.static Realm
getDefaultInstance()
Construtor estático de Realm que retorna a Instância de Realm definida peloRealmConfiguration
definido porsetDefaultConfiguration(RealmConfiguration)
static Object
getDefaultModule()
Retorna o módulo Realm padrão.static int
getGlobalInstanceCount(RealmConfiguration configuration)
Retorna o número atual de Instância de Realm abertas em todos os threads no processo atual que estão usando esta configuração.static Realm
getInstance(RealmConfiguration configuration)
Construtor estático de Realm que retorna a Instância de Realm definida porRealmConfiguration
static RealmAsyncTask
getInstanceAsync(RealmConfiguration configuration, Realm.Callback callback)
A criação da primeira Instância de Realm porRealmConfiguration
em um processo pode levar algum tempo, pois todo o código de inicialização precisa ser executado nesse ponto (configurar o Realm, validar esquemas e criar dados iniciais).static int
getLocalInstanceCount(RealmConfiguration configuration)
Retorna o número atual de Instância de Realm abertas no thread que chama esse método.long
getNumberOfActiveVersions()
Retorna o número atual de versões ativas mantidas por este Realm.String
getPath()
Retorna o caminho canônico para onde este Realm é mantido no disco.RealmSchema
getSchema()
Retorna o esquema para este Realm.SubscriptionSet
getSubscriptions()
Retorna o conjunto de assinaturas associado a este Realm.long
getVersion()
Retorna a versão do esquema para este Realm.static void
init(Context context)
Inicializa a biblioteca do Realm e cria uma configuração padrão que está pronta para ser usada.static void
init(Context context, String userAgent)
Inicializa a biblioteca do Realm e cria uma configuração padrão que está pronta para ser usada.void
insert(RealmModel object)
Insere um RealmObject não gerenciado.void
insert(Collection<? extends RealmModel> objects)
Insere uma lista de RealmObjects não gerenciados.void
insertOrUpdate(RealmModel object)
Insere ou atualiza um RealmObject não gerenciado.void
insertOrUpdate(Collection<? extends RealmModel> objects)
Insere ou atualiza uma lista de RealmObjects não gerenciados.boolean
isAutoRefresh()
Recupera o status de atualização automática da instância do Realm.boolean
isClosed()
Verifica se a instânciaRealm
já foi fechada.boolean
isEmpty()
Verifica se esteRealm
contém algum objeto.boolean
isFrozen()
Retorna se este Realm está congelado ou não.boolean
isInTransaction()
Verifica se o Realm está atualmente em uma transação.static void
migrateRealm(RealmConfiguration configuration)
Atlas Triggers manualmente a migração associada a uma determinada RealmConfiguration.static void
migrateRealm(RealmConfiguration configuration, RealmMigration migration)
Atlas Triggers manualmente uma migração em um RealmMigration.void
refresh()
Atualiza a Instância de Realm e todas as instâncias do RealmResults e RealmObjects provenientes dela.void
removeAllChangeListeners()
Remove todos os ouvintes de alterações definidos pelo usuário.void
removeChangeListener(RealmChangeListener<Realm> listener)
Remove o ouvinte de alterações especificado.static void
removeDefaultConfiguration()
Remove a configuração padrão atual (se houver).void
setAutoRefresh(boolean autoRefresh)
Define o status de atualização automática da instância de Realm.static void
setDefaultConfiguration(RealmConfiguration configuration)
Define oRealmConfiguration
usado ao chamargetDefaultInstance()
.void
stopWaitForChange()
Obsoleto.este método será removido na próxima versão principalboolean
waitForChange()
Obsoleto.esse método será removido na próxima versão principal.<E extends RealmModel>
RealmQuery<E>where(Class<E> clazz)
Retorna um RealmQuery digitado, que pode ser usado para query objeto específicos desse tipovoid
writeCopyTo(File destination)
Escreve uma cópia compactada do Realm no Arquivo de destino fornecido.void
writeEncryptedCopyTo(File destination, byte[] key)
Escreve uma cópia compactada e criptografada do Realm no Arquivo de destino fornecido.
-
-
-
Detalhes do campo
-
DEFAULT_REALM_NAME
public static final String DEFAULT_REALM_NAME
- Veja também:
- Valores de campo constantes
-
ENCRYPTION_KEY_LENGTH
public static final int ENCRYPTION_KEY_LENGTH
O comprimento necessário para chaves de criptografia usadas para criptografar dados do Realm.- Veja também:
- Valores de campo constantes
-
write_executor
public static final io.realm.internal.async.RealmThreadPoolExecutor WRITE_EXECUTOR
Executor do pool de threads usado para operações de gravação - apenas um thread é necessário, pois as gravações não podem ser paralelizadas.
-
sharedRealm
public io.realm.internal.OsSharedRealm sharedRealm
-
objectContext
public static final io.realm.BaseRealm.ThreadLocalRealmObjectContext objectContext
-
-
Detalhes do método
-
asFlowable
public Flowable<Realm> asFlowable()
Retorna um RxJava Flowable que monitora as alterações nesse Realm. Ele emitirá o estado atual quando for assinado. Os itens serão emitidos continuamente à medida que o Realm for atualizado -onComplete
nunca será chamado.Os itens emitidos do Realm Flowables estão congelados (consulte
freeze()
. Isso significa que eles são imutáveis e podem ser lidos em qualquer thread.Os Realm Flowables sempre emitem itens do tópico que contém o Realm ativo. Isso significa que, se você precisar fazer processamento adicional, é recomendável observar os valores em um agendador de computação:
realm.asFlowable() .observeOn(Schedulers.computation()) .map(rxRealm -> doExpensiveWork(rxRealm)) .observeOn(AndroidSchedulers.mainThread()) .subscribe( ... );
Se você quiser que o
asFlowable()
pare de emitir itens, você pode instruir o RxJava a emitir apenas somente o primeiro item usando o operadorfirst()
:realm.asFlowable().first().subscribe( ... ); // You only get the results once
- Retorna:
- RxJava Observable que chama apenas
onNext
. Ele nunca chamaráonComplete
ouOnError
. - Veja também:
- RxJava e Realm
-
isEmpty
boolean público isEmpty()
Verifica se esteRealm
contém algum objeto.- Retorna:
true
se vazio, @{code false} caso contrário.
-
Obter esquema
public RealmSchema getSchema()
Retorna o esquema para este Realm. O esquema é imutável. Qualquer tentativa de modificá-lo resultará em umUnsupportedOperationException
.O esquema só pode ser modificado usando
DynamicRealm.getSchema()
ou por meio de uma migração.- Retorna:
- O
RealmSchema
para este Realm.
-
init
public static void init(Context context)
Inicializa a biblioteca do Realm e cria uma configuração padrão que está pronta para ser usada. É necessário chamar esse método antes de interagir com qualquer outra API do Realm.Um bom lugar está em uma subclasse
Application
:public class MyApplication extends Application { \@Override public void onCreate() { super.onCreate(); Realm.init(this); } }
Lembre-se de registrá-lo no arquivo
AndroidManifest.xml
:<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="io.realm.example"> <application android:name=".MyApplication"> // ... </application> </manifest>
- Parâmetros:
context
- o Contexto do aplicativo.- Lançamentos:
IllegalArgumentException
- se um contextonull
for fornecido.IllegalStateException
- seContext.getFilesDir()
não puder ser encontrado.- Veja também:
getDefaultInstance()
-
init
public static void init(Context context, String userAgent)
Inicializa a biblioteca do Realm e cria uma configuração padrão que está pronta para ser usada. É necessário chamar esse método antes de interagir com qualquer outra API do Realm.Um bom lugar está em uma subclasse
Application
:public class MyApplication extends Application { \@Override public void onCreate() { super.onCreate(); Realm.init(this, "MyApp/" + BuildConfig.VERSION_NAME); } }
Lembre-se de registrá-lo no arquivo
AndroidManifest.xml
:<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="io.realm.example"> <application android:name=".MyApplication"> // ... </application> </manifest>
- Parâmetros:
context
- o Contexto do aplicativo.userAgent
- string opcional definida pelo usuário que será enviada ao Servidor de objetos de Realm como parte de um cabeçalhoUser-Agent
quando uma sessão for estabelecida. Esta configuração não será usada por Realms não sincronizados.- Lançamentos:
IllegalArgumentException
- se um contextonull
ou userAgent for fornecido.IllegalStateException
- seContext.getFilesDir()
não puder ser encontrado.- Veja também:
getDefaultInstance()
-
Obter instância padrão
public static Realm getDefaultInstance()
Construtor estático de Realm que retorna a Instância de Realm definida peloRealmConfiguration
definido porsetDefaultConfiguration(RealmConfiguration)
- Retorna:
- uma instância da classe Realm.
- Lançamentos:
NullPointerException
- se nenhuma configuração padrão tiver sido definida.RealmMigrationNeededException
- se nenhuma migração tiver sido fornecida pela configuração padrão e oRealmFileException
- se acontecer um erro ao acessar o Arquivo de Realm subjacente. foi definido e o thread que abre o Realm foi interrompido enquanto o download estava em andamento.
-
getInstance
public static Realm getInstance(RealmConfiguration configuration)
Construtor estático de Realm que retorna a Instância de Realm definida porRealmConfiguration
- Parâmetros:
configuration
-RealmConfiguration
usado para abrir o Realm- Retorna:
- uma instância da classe Realm
- Lançamentos:
RealmMigrationNeededException
- se nenhuma migração tiver sido fornecida pela configuração e as classes ou versão do RealmObject tiverem sido alteradas, então uma migração será necessária.RealmFileException
- se acontecer um erro ao acessar o arquivo Realm subjacente.IllegalArgumentException
- se umRealmConfiguration
nulo for fornecido.- Veja também:
for details on how to configure a Realm.
-
getInstanceAsync
public static RealmAsyncTask getInstanceAsync(RealmConfiguration configuration, Realm.Callback callback)
A criação da primeira Instância de Realm porRealmConfiguration
em um processo pode levar algum tempo, pois todo o código de inicialização precisa ser executado nesse ponto (configurar o Realm, validar esquemas e criar dados iniciais). Esse método coloca o trabalho de inicialização em um thread de background e entrega a Instância de Realm ao thread do chamador de forma assíncrona após a conclusão da inicialização.- Parâmetros:
configuration
-RealmConfiguration
usado para abrir o Realm.callback
- invocado para retornar os resultados.- Retorna:
- um
RealmAsyncTask
representando uma tarefa cancelável. - Lançamentos:
IllegalArgumentException
- se umRealmConfiguration
nulo ou umRealm.Callback
nulo for fornecido.IllegalStateException
- se for chamado de um thread não loop de eventos ouIntentService
.- Veja também:
for more details.
-
setDefaultConfiguration
public static void setDefaultConfiguration(RealmConfiguration configuration)
Define oRealmConfiguration
usado ao chamargetDefaultInstance()
.- Parâmetros:
configuration
- oRealmConfiguration
para usar como configuração padrão.- Lançamentos:
IllegalArgumentException
- se umRealmConfiguration
nulo for fornecido.- Veja também:
for details on how to configure a Realm.
-
getDefaultConfiguration
@Nullable public static RealmConfiguration getDefaultConfiguration()
Retorna a configuração padrão paragetDefaultInstance()
.- Retorna:
- objeto de configuração padrão ou
null
se nenhuma configuração padrão for especificada.
-
removeDefaultConfiguration
public static void removeDefaultConfiguration()
Remove a configuração padrão atual (se houver). Quaisquer chamadas adicionais paragetDefaultInstance()
falharão até que uma nova configuração padrão seja definida utilizandosetDefaultConfiguration(RealmConfiguration)
.
-
createAllFromJson
public <E extends RealmModel> void createAllFromJson(Class<E> clazz, JSONArray json)
Cria um Objeto de Realm para cada objeto em uma array JSON. Isso deve ser feito em uma transação.Propriedades JSON com propriedades desconhecidas serão ignoradas. Se um campo
RealmObject
não estiver presente no objeto JSON, o campoRealmObject
será definido para o valor padrão para esse tipo.Atualmente, este método não suporta o campo de lista de valores.
- Parâmetros:
clazz
- tipo de Objeto de Realm a serem criados.json
- uma array onde cada JSONObject deve mapear para a classe especificada.- Lançamentos:
RealmException
- se o mapeamento do JSON falhar.IllegalArgumentException
- se o objeto JSON não tiver uma propriedade de chave primária, mas oRealmObjectSchema
correspondente tiver umPrimaryKey
definido.UnsupportedOperationException
- se o objeto a inserir contiver umRealmDictionary
ou umRealmSet
.- Veja também:
RealmSet
,RealmDictionary
,RealmMap
-
createOrUpdateAllFromJson
public <E extends RealmModel> void createOrUpdateAllFromJson(Class<E> clazz, JSONArray json)
Tenta atualizar uma lista de objetos existentes identificados por sua chave primária com novos dados JSON. Se um objeto existente não puder ser encontrado no Realm, um novo objeto será criado. Isso deve acontecer dentro de uma transação. Se atualizar umRealmObject
e um campo não for encontrado no objeto JSON, esse campo não será atualizado. Se um novoRealmObject
for criado e um campo não for encontrado no objeto JSON, esse campo receberá o valor padrão para o tipo de campo.Atualmente, este método não suporta o campo de lista de valores.
- Parâmetros:
clazz
- tipo deRealmObject
para criar ou atualizar. Deve ter uma chave primária definida.json
- array com dados de objeto.- Lançamentos:
IllegalArgumentException
- se estiver tentando atualizar uma classe sem umPrimaryKey
.IllegalArgumentException
- se o objeto JSON não tiver uma propriedade de chave primária, mas oRealmObjectSchema
correspondente tiver umPrimaryKey
definido.RealmException
- se não for possível mapear JSON.UnsupportedOperationException
- se o objeto a inserir contiver umRealmDictionary
ou umRealmSet
.- Veja também:
createAllFromJson(Class, org.json.JSONArray)
,RealmSet
,RealmDictionary
,RealmMap
-
createAllFromJson
public <E extends RealmModel> void createAllFromJson(Class<E> clazz, String json)
Cria um Objeto de Realm para cada objeto em uma array JSON. Isso deve ser feito em uma transação. Propriedades JSON com propriedades desconhecidas serão ignoradas. Se um campoRealmObject
não estiver presente no objeto JSON, o campoRealmObject
será definido para o valor padrão para esse tipo.Atualmente, este método não suporta o campo de lista de valores.
- Parâmetros:
clazz
- tipo de Objeto de Realm a serem criados.json
- a matriz JSON como uma cadeia de caracteres em que cada objeto pode mapear para a classe especificada.- Lançamentos:
RealmException
- se o mapeamento do JSON falhar.IllegalArgumentException
- se o objeto JSON não tiver uma propriedade de chave primária, mas oRealmObjectSchema
correspondente tiver umPrimaryKey
definido.UnsupportedOperationException
- se o objeto a inserir contiver umRealmDictionary
ou umRealmSet
.- Veja também:
RealmSet
,RealmDictionary
,RealmMap
-
createOrUpdateAllFromJson
public <E extends RealmModel> void createOrUpdateAllFromJson(Class<E> clazz, String json)
Tenta atualizar uma lista de objetos existentes identificados por sua chave primária com novos dados JSON. Se um objeto existente não puder ser encontrado no Realm, um novo objeto será criado. Isso deve acontecer dentro de uma transação. Se atualizar umRealmObject
e um campo não for encontrado no objeto JSON, esse campo não será atualizado. Se um novoRealmObject
for criado e um campo não for encontrado no objeto JSON, esse campo receberá o valor padrão para o tipo de campo.Atualmente, este método não suporta o campo de lista de valores.
- Parâmetros:
clazz
- tipo deRealmObject
para criar ou atualizar. Deve ter uma chave primária definida.json
- string com uma array de objetos JSON.- Lançamentos:
IllegalArgumentException
- se estiver tentando atualizar uma classe sem umPrimaryKey
.RealmException
- se não for possível criar uma array JSON a partir da string json.IllegalArgumentException
- se o objeto JSON não tiver uma propriedade de chave primária, mas oRealmObjectSchema
correspondente tiver umPrimaryKey
definido.UnsupportedOperationException
- se o objeto a inserir contiver umRealmDictionary
ou umRealmSet
.- Veja também:
createAllFromJson(Class, String)
,RealmSet
,RealmDictionary
,RealmMap
-
createAllFromJson
public <E extends RealmModel> void createAllFromJson(Class<E> clazz, InputStream inputStream) throws IOException
Cria um Objeto de Realm para cada objeto em uma array JSON. Isso deve ser feito em uma transação. Propriedades JSON com propriedades desconhecidas serão ignoradas. Se um campoRealmObject
não estiver presente no objeto JSON, o campoRealmObject
será definido para o valor padrão para esse tipo.Esta API só está disponível no nível de API 11 ou posterior.
Atualmente, este método não suporta o campo de lista de valores.
- Parâmetros:
clazz
- tipo de Objeto de Realm criados.inputStream
- a array JSON como InputStream. Todos os objetos na array devem ser da classe especificada.- Lançamentos:
RealmException
- se o mapeamento do JSON falhar.IllegalArgumentException
- se o objeto JSON não tiver uma propriedade de chave primária, mas oRealmObjectSchema
correspondente tiver umPrimaryKey
definido.IOException
- se algo estivesse errado com o fluxo de entrada.UnsupportedOperationException
- se o objeto a inserir contiver umRealmDictionary
ou umRealmSet
.- Veja também:
RealmSet
,RealmDictionary
,RealmMap
-
createOrUpdateAllFromJson
public <E extends RealmModel> void createOrUpdateAllFromJson(Class<E> clazz, InputStream in)
Tenta atualizar uma lista de objetos existentes identificados por sua chave primária com novos dados JSON. Se um objeto existente não puder ser encontrado no Realm, um novo objeto será criado. Isso deve acontecer dentro de uma transação. Se atualizar umRealmObject
e um campo não for encontrado no objeto JSON, esse campo não será atualizado. Se um novoRealmObject
for criado e um campo não for encontrado no objeto JSON, esse campo receberá o valor padrão para o tipo de campo.Esta API só está disponível no nível de API 11 ou posterior.
Atualmente, este método não suporta o campo de lista de valores.
- Parâmetros:
clazz
- tipo deRealmObject
para criar ou atualizar. Deve ter uma chave primária definida.in
- o InputStream com uma lista de dados de objeto no formato JSON.- Lançamentos:
IllegalArgumentException
- se estiver tentando atualizar uma classe sem umPrimaryKey
.IllegalArgumentException
- se o objeto JSON não tiver uma propriedade de chave primária, mas oRealmObjectSchema
correspondente tiver umPrimaryKey
definido.RealmException
- se não for possível ler JSON.UnsupportedOperationException
- se o objeto a inserir contiver umRealmDictionary
ou umRealmSet
.- Veja também:
createOrUpdateAllFromJson(Class, java.io.InputStream)
,RealmSet
,RealmDictionary
,RealmMap
-
createObjectFromJson
@Nullable public <E extends RealmModel> E createObjectFromJson(Class<E> clazz, JSONObject json)
Cria um Objeto de Realm pré-preenchido com dados de um objeto JSON. Isso deve ser feito dentro de uma transação. Propriedades JSON com propriedades desconhecidas serão ignoradas. Se um campoRealmObject
não estiver presente no objeto JSON, o campoRealmObject
será definido para o valor padrão para esse tipo.Atualmente, este método não suporta o campo de lista de valores.
- Parâmetros:
clazz
- tipo de objeto de Realm a ser criado.json
- o JSONObject com dados de objeto.- Retorna:
- objeto criado ou
null
se nenhum dado JSON foi fornecido. - Lançamentos:
RealmException
- se o mapeamento do JSON falhar.IllegalArgumentException
- se o objeto JSON não tiver uma propriedade de chave primária, mas oRealmObjectSchema
correspondente tiver umPrimaryKey
definido.UnsupportedOperationException
- se o objeto a inserir contiver umRealmDictionary
ou umRealmSet
.- Veja também:
createOrUpdateObjectFromJson(Class, org.json.JSONObject)
,RealmSet
,RealmDictionary
,RealmMap
-
createOrUpdateObjectFromJson
public <E extends RealmModel> E createOrUpdateObjectFromJson(Class<E> clazz, JSONObject json)
Tenta atualizar um objeto existente definido por sua chave primária com novos dados JSON. Se nenhum objeto existente puder ser encontrado, um novo objeto será salvo no Realm. Isso deve acontecer dentro de uma transação. Se atualizar umRealmObject
e um campo não for encontrado no objeto JSON, esse campo não será atualizado. Se um novoRealmObject
for criado e um campo não for encontrado no objeto JSON, esse campo receberá o valor padrão para o tipo de campo.Atualmente, este método não suporta o campo de lista de valores.
- Parâmetros:
clazz
- Tipo deRealmObject
para criar ou atualizar. Deve ter uma chave primária definida.json
-JSONObject
com dados de objeto.- Retorna:
- criado ou atualizado
RealmObject
. - Lançamentos:
IllegalArgumentException
- se estiver tentando atualizar uma classe sem umPrimaryKey
.IllegalArgumentException
- se o objeto JSON não tiver uma propriedade de chave primária, mas oRealmObjectSchema
correspondente tiver umPrimaryKey
definido.RealmException
- se os dados JSON não puderem ser mapeados.UnsupportedOperationException
- se o objeto a inserir contiver umRealmDictionary
ou umRealmSet
.- Veja também:
createObjectFromJson(Class, org.json.JSONObject)
,RealmSet
,RealmDictionary
,RealmMap
-
createObjectFromJson
@Nullable public <E extends RealmModel> E createObjectFromJson(Class<E> clazz, String json)
Cria um Objeto de Realm pré-preenchido com dados de um objeto JSON. Isso deve ser feito dentro de uma transação. Propriedades JSON com propriedades desconhecidas serão ignoradas. Se um campoRealmObject
não estiver presente no objeto JSON, o campoRealmObject
será definido para o valor padrão para esse tipo.Atualmente, este método não suporta o campo de lista de valores.
- Parâmetros:
clazz
- tipo de objeto de Realm a ser criado.json
- a string JSON com dados de objeto.- Retorna:
- objeto criado ou
null
se a string JSON estiver vazia ou nula. - Lançamentos:
RealmException
- se o mapeamento para json falhar.IllegalArgumentException
- se o objeto JSON não tiver uma propriedade de chave primária, mas oRealmObjectSchema
correspondente tiver umPrimaryKey
definido.UnsupportedOperationException
- se o objeto a inserir contiver umRealmDictionary
ou umRealmSet
.- Veja também:
RealmSet
,RealmDictionary
,RealmMap
-
createOrUpdateObjectFromJson
public <E extends RealmModel> E createOrUpdateObjectFromJson(Class<E> clazz, String json)
Tenta atualizar um objeto existente definido por sua chave primária com novos dados JSON. Se nenhum objeto existente puder ser encontrado, um novo objeto será salvo no Realm. Isso deve acontecer dentro de uma transação. Se atualizar umRealmObject
e um campo não for encontrado no objeto JSON, esse campo não será atualizado. Se um novoRealmObject
for criado e um campo não for encontrado no objeto JSON, esse campo receberá o valor padrão para o tipo de campo.Atualmente, este método não suporta o campo de lista de valores.
- Parâmetros:
clazz
- tipo deRealmObject
para criar ou atualizar. Deve ter uma chave primária definida.json
- string com dados de objeto no formato JSON.- Retorna:
- criado ou atualizado
RealmObject
. - Lançamentos:
IllegalArgumentException
- se estiver tentando atualizar uma classe sem umPrimaryKey
.IllegalArgumentException
- se o objeto JSON não tiver uma propriedade de chave primária, mas oRealmObjectSchema
correspondente tiver umPrimaryKey
definido.RealmException
- se o objeto JSON não puder ser mapeado a partir do parâmetro de string.UnsupportedOperationException
- se o objeto a inserir contiver umRealmDictionary
ou umRealmSet
.- Veja também:
createObjectFromJson(Class, String)
,RealmSet
,RealmDictionary
,RealmMap
-
createObjectFromJson
@Nullable public <E extends RealmModel> E createObjectFromJson(Class<E> clazz, InputStream inputStream) throws IOException
Cria um Objeto de Realm pré-preenchido com dados de um objeto JSON. Isso deve ser feito dentro de uma transação. Propriedades JSON com propriedades desconhecidas serão ignoradas. Se um campoRealmObject
não estiver presente no objeto JSON, o campoRealmObject
será definido para o valor padrão para esse tipo.Esta API só está disponível no nível de API 11 ou posterior.
Atualmente, este método não suporta o campo de lista de valores.
- Parâmetros:
clazz
- tipo de objeto de Realm a ser criado.inputStream
- os dados do objeto JSON como um InputStream.- Retorna:
- objeto criado ou
null
se a string JSON estiver vazia ou nula. - Lançamentos:
RealmException
- se o mapeamento do JSON falhar.IllegalArgumentException
- se o objeto JSON não tiver uma propriedade de chave primária, mas oRealmObjectSchema
correspondente tiver umPrimaryKey
definido.IOException
- se algo desse errado com o fluxo de entrada.UnsupportedOperationException
- se o objeto a inserir contiver umRealmDictionary
ou umRealmSet
.- Veja também:
RealmSet
,RealmDictionary
,RealmMap
-
createOrUpdateObjectFromJson
public <E extends RealmModel> E createOrUpdateObjectFromJson(Class<E> clazz, InputStream in)
Tenta atualizar um objeto existente definido por sua chave primária com novos dados JSON. Se nenhum objeto existente puder ser encontrado, um novo objeto será salvo no Realm. Isso deve acontecer dentro de uma transação. Se atualizar umRealmObject
e um campo não for encontrado no objeto JSON, esse campo não será atualizado. Se um novoRealmObject
for criado e um campo não for encontrado no objeto JSON, esse campo receberá o valor padrão para o tipo de campo.Esta API só está disponível no nível de API 11 ou posterior.
Atualmente, este método não suporta o campo de lista de valores.
- Parâmetros:
clazz
- tipo deRealmObject
para criar ou atualizar. Deve ter uma chave primária definida.in
- oInputStream
com dados de objeto no formato JSON.- Retorna:
- criado ou atualizado
RealmObject
. - Lançamentos:
IllegalArgumentException
- se estiver tentando atualizar uma classe sem umPrimaryKey
.IllegalArgumentException
- se o objeto JSON não tiver uma propriedade de chave primária, mas oRealmObjectSchema
correspondente tiver umPrimaryKey
definido.RealmException
- se não for possível ler JSON.UnsupportedOperationException
- se o objeto a inserir contiver umRealmDictionary
ou umRealmSet
.- Veja também:
createObjectFromJson(Class, java.io.InputStream)
,RealmSet
,RealmDictionary
,RealmMap
-
createObject
public <E extends RealmModel> E createObject(Class<E> clazz)
Instancia e adiciona um novo objeto ao Realm.Este método só está disponível para classes de modelo sem anotação @PrimaryKey. Se você quiser criar um objeto que tenha uma chave primária, use
createObject(Class, Object)
oucopyToRealm(RealmModel, ImportFlag...)
em vez disso.- Parâmetros:
clazz
- a classe do objeto a ser criado.- Retorna:
- o novo objeto.
- Lançamentos:
RealmException
- se a chave primária for definida na classe do modelo ou um objeto não puder ser criado.- Veja também:
createObject(Class, Object)
-
createObject
public <E extends RealmModel> E createObject(Class<E> clazz, @Nullable Object primaryKeyValue)
Instancia e adiciona um novo objeto ao Realm com o valor da chave primária já definido.Se o valor violar a restrição da chave primária, nenhum objeto será adicionado e um
RealmException
será lançado. O valor padrão para a chave primária fornecido pela classe do modelo será ignorado.- Parâmetros:
clazz
- a classe do objeto a ser criado.primaryKeyValue
- valor para o campo de chave primária.- Retorna:
- o novo objeto.
- Lançamentos:
RealmException
- se o objeto não puder ser criado devido à chave primária ser inválida.IllegalStateException
- se a classe do modelo não tiver uma chave primária definida.IllegalArgumentException
- seprimaryKeyValue
não tiver um valor que possa ser convertido para o valor esperado.
-
createEmbeddedObject
public <E extends RealmModel> E createEmbeddedObject(Class<E> clazz, RealmModel parentObject, String parentProperty)
Instancia e adiciona um novo objeto incorporado ao Realm.Este método só deve ser usado para criar objetos de tipos marcados como incorporados.
- Parâmetros:
clazz
- a classe do objeto a ser criado. Deve ser marcado com\@RealmClass(embedded = true)
.parentObject
- O objeto principal, que deve manter uma referência ao objeto incorporado.parentProperty
- a propriedade na classe principal que contém a referência. Se a propriedade principal for uma lista, o objeto incorporado será adicionado ao final dessa lista.- Retorna:
- o objeto incorporado recém-criado.
- Lançamentos:
IllegalArgumentException
- seclazz
não for uma classe incorporada ou se a propriedade na classe principal não puder conter objetos do tipo apropriado.- Veja também:
RealmClass.embedded()
-
copyToRealm
public <E extends RealmModel> E copyToRealm(E object, ImportFlag... flags)
Copia um RealmObject para a Instância de Realm e retorna a cópia. Quaisquer alterações adicionais no RealmObject original não serão refletidas na cópia do Realm. Esta é uma cópia profunda, então todos os objetos referenciados serão copiados. Os objetos que já estão neste Realm serão ignorados.Observe que copiar um objeto copiará todos os valores de campo. Qualquer campo não definido neste e nos objetos filho será definido para seu valor padrão se não for fornecido.
- Parâmetros:
object
- oRealmObject
para copiar para o Realm.flags
- qualquer sinalizador que modifique o comportamento de inserir os dados no Realm.- Retorna:
- um RealmObject gerenciado com suas propriedades apoiadas pelo Realm.
- Lançamentos:
IllegalArgumentException
- se o objeto fornull
ou pertencer a uma instância de Realm em uma thread diferente.
-
copyToRealmOrUpdate
public <E extends RealmModel> E copyToRealmOrUpdate(E object, ImportFlag... flags)
Atualiza um RealmObject existente que é identificado pelo mesmoPrimaryKey
ou cria uma nova cópia se nenhum objeto existente puder ser encontrado. Esta é uma cópia ou atualização profunda, ou seja, todos os objetos referenciados serão copiados ou atualizados.Observe que copiar um objeto copiará todos os valores de campo. Qualquer campo não definido no objeto e nos objetos filho será definido com seu valor padrão se não for fornecido.
- Parâmetros:
object
-RealmObject
para copiar ou atualizar.flags
- qualquer sinalizador que modifique o comportamento de inserir os dados no Realm.- Retorna:
- o RealmObject novo ou atualizado com todas as suas propriedades apoiadas pelo Realm.
- Lançamentos:
IllegalArgumentException
- se o objeto fornull
ou não tiver uma chave primária definida ou pertencer a uma Instância de Realm em um thread diferente.- Veja também:
copyToRealm(RealmModel, ImportFlag...)
-
copyToRealm
public <E extends RealmModel> List<E> copyToRealm(Iterable<E> objects, ImportFlag... flags)
Copia uma collection de RealmObjects para a Instância de Realm e retorna sua cópia. Quaisquer alterações adicionais nos RealmObjects originais não serão refletidas nas cópias do Realm. Esta é uma cópia profunda, ou seja, todos os objetos referenciados serão copiados. Os objetos que já estão neste Realm serão ignorados.Observe que copiar um objeto copiará todos os valores de campo. Any unset field in the objects and child objects will be set to their default value if not provided.
- Parâmetros:
objects
- os RealmObjects a serem copiados para o Realm.flags
- qualquer sinalizador que modifique o comportamento de inserir os dados no Realm.- Retorna:
- uma lista dos RealmObjects convertidos que têm suas propriedade managed pelo Realm.
- Lançamentos:
RealmException
- se algum dos objetos já tiver sido adicionado ao Realm.IllegalArgumentException
- se algum dos elementos na collection de entrada fornull
.
-
insert
public void insert(Collection<? extends RealmModel> objects)
Insere uma lista de RealmObjects não gerenciados. Isso geralmente é mais rápido do quecopyToRealm(Iterable, ImportFlag...)
, pois não retorna os elementos inseridos e executa alocações e verificações mínimas. Depois de inseridos, quaisquer alterações nos objetos originais não serão persistidas.Observação:
- Não verificamos se os objeto fornecidos já são managed ou não, portanto, a inserção de um objeto managed pode duplicá-lo. A duplicação só ocorrerá se o objeto não tiver uma chave primária. objeto com chave primária nunca serão duplicados.
- Não criamos (nem retornamos) um
RealmObject
managed para cada elemento - Copiar um objeto copiará todos os valores de campo. Qualquer campo não definido no objeto e os objetos filho serão definidos para seu valor padrão se não forem fornecidos
Se quiser que o managed
RealmObject
seja retornado, usecopyToRealm(Iterable, ImportFlag...)
, caso contrário, se você tiver um grande número de objeto, esse método geralmente é mais rápido.- Parâmetros:
objects
- RealmObjects para inserir.- Lançamentos:
IllegalStateException
- se o Realm correspondente estiver fechado, chamado de um thread incorreto ou não estiver uma transação.
-
insert
public void insert(RealmModel object)
Insere um RealmObject não gerenciado. Isso geralmente é mais rápido do quecopyToRealm(RealmModel, ImportFlag...)
, pois não retorna os elementos inseridos e executa alocações e verificações mínimas. Depois de inserido, quaisquer alterações no objeto original não serão mantidas.Observação:
- Não verificamos se os objeto fornecidos já são managed ou não, portanto, a inserção de um objeto managed pode duplicá-lo. A duplicação só ocorrerá se o objeto não tiver uma chave primária. objeto com chave primária nunca serão duplicados.
- Não criamos (nem retornamos) um
RealmObject
managed para cada elemento - Copiar um objeto copiará todos os valores de campo. Qualquer campo não definido no objeto e os objetos filho serão definidos para seu valor padrão se não forem fornecidos
Se quiser que o managed
RealmObject
seja retornado, usecopyToRealm(RealmModel, ImportFlag...)
, caso contrário, se você tiver um grande número de objeto, esse método geralmente é mais rápido.- Parâmetros:
object
- RealmObjects para inserir.- Lançamentos:
IllegalStateException
- se o Realm correspondente estiver fechado, chamado de um thread incorreto ou não estiver uma transação.RealmPrimaryKeyConstraintException
- se dois objetos com a mesma chave primária forem inseridos ou se um valor de chave primária já existir no Realm.
-
insiraOrUpdate
public void insertOrUpdate(Collection<? extends RealmModel> objects)
Insere ou atualiza uma lista de RealmObjects não gerenciados. Isso geralmente é mais rápido do quecopyToRealmOrUpdate(Iterable, ImportFlag...)
, pois não retorna os elementos inseridos e executa alocações e verificações mínimas. Depois de inseridos, quaisquer alterações nos objetos originais não serão persistidas.Observação:
- Não verificamos se os objeto fornecidos já são managed ou não, portanto, a inserção de um objeto managed pode duplicá-lo. A duplicação só ocorrerá se o objeto não tiver uma chave primária. objeto com chave primária nunca serão duplicados.
- Não criamos (nem retornamos) um
RealmObject
managed para cada elemento - Copiar um objeto copiará todos os valores de campo. Qualquer campo não definido no objeto e os objetos filho serão definidos para seu valor padrão se não forem fornecidos
Se quiser que o managed
RealmObject
seja retornado, usecopyToRealm(Iterable, ImportFlag...)
, caso contrário, se você tiver um grande número de objeto, esse método geralmente é mais rápido.- Parâmetros:
objects
- RealmObjects para inserir.- Lançamentos:
IllegalStateException
- se o Realm correspondente estiver fechado, chamado de um thread incorreto ou não estiver uma transação.RealmPrimaryKeyConstraintException
- se dois objetos com a mesma chave primária forem inseridos ou se um valor de chave primária já existir no Realm.
-
insiraOrUpdate
public void insertOrUpdate(RealmModel object)
Insere ou atualiza um RealmObject não gerenciado. Isso geralmente é mais rápido do quecopyToRealmOrUpdate(RealmModel, ImportFlag...)
, pois não retorna os elementos inseridos e executa alocações e verificações mínimas. Depois de inserido, quaisquer alterações no objeto original não serão mantidas.Observação:
- Não verificamos se os objeto fornecidos já são managed ou não, portanto, a inserção de um objeto managed pode duplicá-lo. A duplicação só ocorrerá se o objeto não tiver uma chave primária. objeto com chave primária nunca serão duplicados.
- Não criamos (nem retornamos) um
RealmObject
managed para cada elemento - Copiar um objeto copiará todos os valores de campo. Qualquer campo não definido no objeto e os objetos filho serão definidos para seu valor padrão se não forem fornecidos
Se quiser que o managed
RealmObject
seja retornado, usecopyToRealm(RealmModel, ImportFlag...)
, caso contrário, se você tiver um grande número de objeto, esse método geralmente é mais rápido.- Parâmetros:
object
- RealmObjects para inserir.- Lançamentos:
IllegalStateException
- se o Realm correspondente estiver fechado, chamado de um thread incorreto ou não estiver uma transação.
-
copyToRealmOrUpdate
public <E extends RealmModel> List<E> copyToRealmOrUpdate(Iterable<E> objects, ImportFlag... flags)
Atualiza uma lista de RealmObjects existentes que é identificado pelo seuPrimaryKey
ou cria uma nova cópia se nenhum objeto existente puder ser encontrado. Esta é uma cópia ou atualização profunda, ou seja, todos os objetos referenciados serão copiados ou atualizados.Observe que copiar um objeto copiará todos os valores de campo. Any unset field in the objects and child objects will be set to their default value if not provided.
- Parâmetros:
objects
- uma lista de objetos para atualizar ou copiar para Realm.flags
- qualquer sinalizador que modifique o comportamento de inserir os dados no Realm.- Retorna:
- uma lista de todos os RealmObjects novos ou atualizados.
- Lançamentos:
IllegalArgumentException
- se o RealmObject fornull
ou não tiver uma chave primária definida.- Veja também:
copyToRealm(Iterable, ImportFlag...)
-
copyFromRealm
public <E extends RealmModel> List<E> copyFromRealm(Iterable<E> realmObjects)
Faz uma cópia na memória não gerenciada de RealmObjects já persistentes. Esta é uma cópia profunda que copiará todos os objetos referenciados.Os objetos copiados são todos separados do Realm e não serão mais atualizados automaticamente. Isso significa que os objeto copiados podem conter dados que não são mais consistentes com outros Objeto de Realm managed.
*AVISO*: quaisquer alterações em objetos copiados podem ser mescladas de volta ao Realm usando
copyToRealmOrUpdate(RealmModel, ImportFlag...)
, mas todos os campos serão substituídos, não apenas aqueles que foram alterados. Isso inclui referências a outros objetos e pode potencialmente substituir as alterações feitas por outros threads. Este comportamento pode ser modificado usandoImportFlag
s.- Parâmetros do tipo:
E
- tipo de objeto.- Parâmetros:
realmObjects
- RealmObjects para copiar.- Retorna:
- uma cópia desanexada na memória de RealmObjects managed.
- Lançamentos:
IllegalArgumentException
- se o RealmObject não estiver mais acessível ou for umDynamicRealmObject
.- Veja também:
copyToRealmOrUpdate(Iterable, ImportFlag...)
-
copyFromRealm
public <E extends RealmModel> List<E> copyFromRealm(Iterable<E> realmObjects, int maxDepth)
Faz uma cópia na memória não gerenciada de RealmObjects já persistentes. Esta é uma cópia em profundidade que copiará todos os objetos referenciados até a profundidade definida.Os objetos copiados são todos separados do Realm e não serão mais atualizados automaticamente. Isso significa que os objeto copiados podem conter dados que não são mais consistentes com outros Objeto de Realm managed.
*AVISO*: quaisquer alterações em objetos copiados podem ser mescladas de volta ao Realm usando
copyToRealmOrUpdate(Iterable, ImportFlag...)
, mas todos os campos serão substituídos, não apenas aqueles que foram alterados. Isso inclui referências a outros objetos, mesmo que eles possam sernull
devido ao fato demaxDepth
ter sido atingido. Isso também pode substituir as alterações feitas por outros threads. Esse comportamento pode ser modificado usandoImportFlag
s.- Parâmetros do tipo:
E
- tipo de objeto.- Parâmetros:
realmObjects
- RealmObjects para copiar.maxDepth
- limite da cópia profunda. Todas as referências após esta profundidade serãonull
. A profundidade inicial é0
.- Retorna:
- uma cópia desanexada na memória dos RealmObjects.
- Lançamentos:
IllegalArgumentException
- semaxDepth < 0
, o RealmObject não está mais acessível ou é umDynamicRealmObject
.- Veja também:
copyToRealmOrUpdate(Iterable, ImportFlag...)
-
copyFromRealm
public <E extends RealmModel> E copyFromRealm(E realmObject)
Faz uma cópia na memória não gerenciada de umRealmObject
já persistente. Esta é uma cópia profunda que copiará todos os objetos referenciados.O(s) objeto(s) copiado(s) será(ão) separado(s) do Realm e não será mais atualizado automaticamente. Isso significa que os objeto copiados podem conter dados que não são mais consistentes com outros Objeto de Realm managed.
*AVISO*: quaisquer alterações em objetos copiados podem ser mescladas de volta ao Realm usando
copyToRealmOrUpdate(RealmModel, ImportFlag...)
, mas todos os campos serão substituídos, não apenas aqueles que foram alterados. Isso inclui referências a outros objetos e pode potencialmente substituir as alterações feitas por outros threads. Este comportamento pode ser modificado usandoImportFlag
s.- Parâmetros do tipo:
E
- tipo de objeto.- Parâmetros:
realmObject
-RealmObject
para copiar.- Retorna:
- uma cópia destacada na memória do
RealmObject
managed. - Lançamentos:
IllegalArgumentException
- se o RealmObject não estiver mais acessível ou for umDynamicRealmObject
.- Veja também:
copyToRealmOrUpdate(RealmModel, ImportFlag...)
-
copyFromRealm
public <E extends RealmModel> E copyFromRealm(E realmObject, int maxDepth)
Faz uma cópia na memória não gerenciada de umRealmObject
já persistente. Esta é uma cópia em profundidade que copiará todos os objetos referenciados até a profundidade definida.O(s) objeto(s) copiado(s) será(ão) separado(s) do Realm e não será mais atualizado automaticamente. Isso significa que os objeto copiados podem conter dados que não são mais consistentes com outros Objeto de Realm managed.
*AVISO*: quaisquer alterações em objetos copiados podem ser mescladas de volta ao Realm usando
copyToRealmOrUpdate(RealmModel, ImportFlag...)
, mas todos os campos serão substituídos, não apenas aqueles que foram alterados. Isso inclui referências a outros objetos, mesmo que eles possam sernull
devido ao fato demaxDepth
ter sido atingido. Isso também pode substituir as alterações feitas por outros threads. Esse comportamento pode ser modificado usandoImportFlag
s.- Parâmetros do tipo:
E
- tipo de objeto.- Parâmetros:
realmObject
-RealmObject
para copiar.maxDepth
- limite da cópia profunda. Todas as referências após esta profundidade serãonull
. A profundidade inicial é0
.- Retorna:
- uma cópia destacada na memória do
RealmObject
managed. - Lançamentos:
IllegalArgumentException
- semaxDepth < 0
, o RealmObject não está mais acessível ou é umDynamicRealmObject
.- Veja também:
copyToRealmOrUpdate(RealmModel, ImportFlag...)
-
ONDE
public <E extends RealmModel> RealmQuery<E> where(Class<E> clazz)
Retorna um RealmQuery digitado, que pode ser usado para query objeto específicos desse tipo- Parâmetros:
clazz
- a classe do objeto que deve ser query para.- Retorna:
- um RealmQuery digitado, que pode ser usado para query objeto específicos desse tipo.
- Veja também:
RealmQuery
-
addChangeListener
public void addChangeListener(RealmChangeListener<Realm> listener)
Adiciona um ouvinte de alterações ao Realm.Os ouvintes serão executados quando as alterações forem confirmadas por este ou outro thread.
As Instância de Realm são por thread singletons e armazenadas em cache, portanto, os ouvintes devem ser removidos manualmente, mesmo que chamem
Closeable.close()
. Caso contrário, existe o risco de vazamentos de memória.- Parâmetros:
listener
- o ouvinte de alterações.- Lançamentos:
IllegalArgumentException
- se o ouvinte de alterações fornull
.IllegalStateException
- se você tentar registrar um ouvinte de um tópico que não seja o Looper ouIntentService
.- Veja também:
RealmChangeListener
,removeChangeListener(RealmChangeListener)
,removeAllChangeListeners()
-
removeChangeListener
public void removeChangeListener(RealmChangeListener<Realm> listener)
Remove o ouvinte de alterações especificado.- Parâmetros:
listener
- o ouvinte de alterações a ser removido.- Lançamentos:
IllegalArgumentException
- se o ouvinte de alterações fornull
.IllegalStateException
- se você tentar remover um ouvinte de um thread não loop de eventos.- Veja também:
RealmChangeListener
-
Remover todos os ouvintes de alterações
public void removeAllChangeListeners()
Remove todos os ouvintes de alterações definidos pelo usuário.- Lançamentos:
IllegalStateException
- se você tentar remover ouvintes de um thread que não seja do loop de eventos.- Veja também:
RealmChangeListener
-
executeTransaction
public void executeTransaction(Realm.Transaction transaction)
Executa uma determinada transação no Realm.beginTransaction()
ecommitTransaction()
serão chamados automaticamente. Se alguma exceção for lançada durante a transação,cancelTransaction()
será chamado em vez decommitTransaction()
.Chamar esse método a partir do thread da UI lançará um
RealmException
. Isso pode resultar em uma queda de armações ou até mesmo ANRs. Recomendamos chamar esse método a partir de um thread que não seja da interface do usuário ou usarexecuteTransactionAsync(Transaction)
.- Parâmetros:
transaction
- oRealm.Transaction
para executar.- Lançamentos:
IllegalArgumentException
- se otransaction
fornull
.RealmMigrationNeededException
- se a versão mais recente contiver alterações de esquema incompatíveis.RealmException
- se chamado do thread da interface do usuário, a menos que um opt-in explícito tenha sido declarado emRealmConfiguration.Builder.allowWritesOnUiThread(boolean)
.
-
executeTransactionAsync
Public RealmAsyncTask executeTransactionAsync(Realm.transação transação)
Semelhante aexecuteTransaction(Transaction)
, mas executado de forma assíncrona em uma thread de trabalho.- Parâmetros:
transaction
-Realm.Transaction
para executar.- Retorna:
- um
RealmAsyncTask
representando uma tarefa cancelável. - Lançamentos:
IllegalArgumentException
- se otransaction
fornull
, ou se o Realm for aberto a partir de outro thread.
-
executeTransactionAsync
public RealmAsyncTask executeTransactionAsync( Realm.Transaction transaction, Realm.Transaction.OnSuccess onSuccess)
Semelhante aexecuteTransactionAsync(Transaction)
, mas também aceita uma chamada de resposta OnSuccess.- Parâmetros:
transaction
-Realm.Transaction
para executar.onSuccess
- chamada de resposta invocada quando a transação é bem-sucedida.- Retorna:
- um
RealmAsyncTask
representando uma tarefa cancelável. - Lançamentos:
IllegalArgumentException
- setransaction
fornull
, ou se o Realm for aberto a partir de outro thread.
-
executeTransactionAsync
Public RealmAsyncTask executeTransactionAsync( Realm.Transaction transaction, Realm.Transaction.OnError onError)
Semelhante aexecuteTransactionAsync(Transaction)
, mas também aceita uma chamada de resposta OnError.- Parâmetros:
transaction
-Realm.Transaction
para executar.onError
- chamada de resposta invocada em caso de falha da transação.- Retorna:
- um
RealmAsyncTask
representando uma tarefa cancelável. - Lançamentos:
IllegalArgumentException
- setransaction
fornull
, ou se o Realm for aberto a partir de outro thread.
-
executeTransactionAsync
public RealmAsyncTask executeTransactionAsync(Transação Realm.Transaction , @Nullable Realm.Transaction.OnSuccess onSuccess, @Nullable Realm.Transaction.OnError onError)
Semelhante aexecuteTransactionAsync(Transaction)
, mas também aceita retornos de chamada OnSuccess e OnError.- Parâmetros:
transaction
-Realm.Transaction
para executar.onSuccess
- chamada de resposta invocada quando a transação é bem-sucedida.onError
- chamada de resposta invocada em caso de falha da transação.- Retorna:
- um
RealmAsyncTask
representando uma tarefa cancelável. - Lançamentos:
IllegalArgumentException
- setransaction
fornull
, ou se o Realm for aberto a partir de outro thread.
-
excluir
public void delete(Class<? extends RealmModel> clazz)
Exclui todos os objetos da classe especificada do Realm.- Parâmetros:
clazz
- a classe quais objetos devem ser removidos.- Lançamentos:
IllegalStateException
- se o Realm estiver fechado ou chamado de um thread incorreto.
-
migrationRealm
public static void migrateRealm(RealmConfiguration configuration) throws FileNotFoundException
Aciona manualmente a migração associada a uma determinada RealmConfiguration. Se o Realm já estiver na versão mais recente, nada acontecerá.- Parâmetros:
configuration
-RealmConfiguration
- Lançamentos:
FileNotFoundException
- se o Arquivo de Realm não existir.
-
migrationRealm
public static void migrateRealm(RealmConfiguration configuration, @Nullable RealmMigration migration) throws FileNotFoundException
Atlas Triggers manualmente uma migração em um RealmMigration.- Parâmetros:
configuration
- oRealmConfiguration
.migration
- oRealmMigration
para executar no Realm. Isso substituirá qualquer migração definida na configuração.- Lançamentos:
FileNotFoundException
- se o Arquivo de Realm não existir.
-
deleteRealm
public static boolean deleteRealm(RealmConfiguration configuration)
Exclui o Arquivo de Realm junto com os arquivos temporários relacionados especificados peloRealmConfiguration
fornecido do sistema de arquivos. Arquivo temporário com "bloqueio" extensão não será excluída.Todas as Instância de Realm devem ser fechadas antes de chamar este método.
AVISO: para o Realm sincronizado, há uma chance de que uma Instância de Realm no thread em segundo plano não esteja fechada mesmo que todas as Instância de Realm controladas pelo usuário estejam fechadas. Isso resultará em um
IllegalStateException
. Consulte o problema https://github.com/realm/realm-java/issues/5416.- Parâmetros:
configuration
- umRealmConfiguration
.- Retorna:
false
se o Arquivo de Realm não puder ser excluído. A falha na exclusão de arquivos temporários não terá impacto no valor de devolução. Todas as exclusões de arquivos com falha serão registradas.- Lançamentos:
IllegalStateException
- se houver Instância de Realm abertas em outras threads ou outros processos.
-
compactaRealm
public static boolean compactRealm(RealmConfiguration configuration)
Compacta um Arquivo de Realm. Um Arquivo de Realm geralmente contém espaço livre/não utilizado. Esse método remove esse espaço livre e o tamanho do arquivo é reduzido. Objeto dentro do Arquivo de Realm permanecem intocados.O arquivo deve ser fechado antes que este método seja chamado, caso contrário,
false
será retornado.
O sistema de arquivos deve ter espaço livre para pelo menos uma cópia do Arquivo de Realm.
O Arquivo de Realm permanece intocado se qualquer operação de arquivo falhar.- Parâmetros:
configuration
- umRealmConfiguration
apontando para um Arquivo de Realm.- Retorna:
true
se bem-sucedido,false
se qualquer operação de arquivo falhar.
-
congelar
Public Realm Congelamento()
Retorna um snapshot congelado do Realm atual. Este Realm pode ser lido e query de qualquer thread sem lançar umIllegalStateException
. Um Realm congelado tem seu próprio ciclo de vida e pode ser fechado chamandoCloseable.close()
, mas fechar totalmente o Realm que gerou a cópia congelada também fechará o Realm congelado.Os dados congelados podem ser query normalmente, mas tentar modificá-los de qualquer forma ou tentar registrar qualquer ouvinte lançará um
IllegalStateException
.Observação: manter um grande número de Realms com versões diferentes ativos pode ter um impacto negativo no tamanho do arquivo do Realm. Para evitar tal situação, é possível definir
RealmConfiguration.Builder.maxNumberOfActiveVersions(long)
.- Retorna:
- uma cópia congelada deste Realm.
-
getDefaultModule
@Nullable public static Object getDefaultModule()
Retorna o módulo Realm padrão. Este módulo contém todas as classes de Realm no projeto atual, mas não aquelas da biblioteca ou das dependências do projeto. Classes de domínio nestes devem ser expostas usando seu próprio módulo.- Retorna:
- o módulo Realm padrão ou
null
se não existir nenhum módulo padrão. - Lançamentos:
RealmException
- se não for possível criar uma instância do módulo.- Veja também:
RealmConfiguration.Builder.modules(Object, Object...)
-
getGlobalInstanceCount
public static int getGlobalInstanceCount(RealmConfiguration configuration)
Retorna o número atual de Instância de Realm abertas em todos os threads no processo atual que estão usando esta configuração. Isso inclui Realms dinâmicos e normais.- Parâmetros:
configuration
- oRealmConfiguration
para o Realm.- Retorna:
- número de instâncias de Realm abertas em todos os threads.
-
getLocalInstanceCount
public static int getLocalInstanceCount(RealmConfiguration configuration)
Retorna o número atual de Instância de Realm abertas no thread que chama esse método. Isso inclui Realms dinâmicos e normais.- Parâmetros:
configuration
- oRealmConfiguration
para o Realm.- Retorna:
- número de Instância de Realm abertas na thread do chamador.
-
getApplicationContext
@Nullable public static Context getApplicationContext()
Obtenha o contexto do aplicativo usado ao inicializar o Realm cominit(Context)
ouinit(Context, String)
.- Retorna:
- o contexto do aplicativo usado ao inicializar o Realm com
init(Context)
ouinit(Context, String)
, ou nulo se o Realm ainda não tiver sido inicializado.
-
setAutoRefresh
public void setAutoRefresh(boolean autoRefresh)
Define o status de atualização automática da instância de Realm.A atualização automática é um recurso que permite a atualização automática da Instância de Realm e todos os seus objeto derivados (instâncias RealmResults e RealmObject) quando uma confirmação é executada em um Realm que atua no mesmo arquivo em outro thread. Este recurso só estará disponível se a Instância de Realm estiver em um thread habilitado
Looper
.- Parâmetros:
autoRefresh
-true
ativará a atualização automática,false
a desativará.- Lançamentos:
IllegalStateException
- se chamado de um thread não loop de eventos.
-
isAutoRefresh
public boolean isAutoRefresh()
Recupera o status de atualização automática da instância do Realm.- Retorna:
- o status de atualização automática.
-
atualizar
public void refresh()
Atualiza a Instância de Realm e todas as instâncias do RealmResults e RealmObjects provenientes dela. Ele também chama todos os ouvintes associados ao Realm, se necessário.AVISO: chamar isso em um thread com query assíncronas transformará essas query em query síncronas. Isso significa que este método lançará um
RealmException
seRealmConfiguration.Builder.allowQueriesOnUiThread(boolean)
foi usado comtrue
para obter uma instância de Realm. Na maioria dos casos, é melhor usarRealmChangeListener
s para ser notificado sobre alterações no Realm em um determinado thread do que usar esse método.- Lançamentos:
IllegalStateException
- se estiver tentando atualizar de dentro de uma transação.RealmException
- se chamado do thread da UI após optar por não atuar por meioRealmConfiguration.Builder.allowQueriesOnUiThread(boolean)
.
-
isInTransaction
public boolean isInTransaction()
Verifica se o Realm está atualmente em uma transação.- Retorna:
true
se dentro de uma transação,false
caso contrário.
-
writeCopyTo
public void writeCopyTo(File destination)
Escreve uma cópia compactada do Realm no Arquivo de destino fornecido. O arquivo resultante pode ser usado como conjunto de dados inicial para inicializar um Realm local ou sincronizado em outros dispositivos.O arquivo de destino já não pode existir.
Observe que, se isso for chamado de dentro de uma transação, ele gravará os dados atuais, e não os dados como eram quando a última transação foi confirmada.
- Parâmetros:
destination
- para salvar o Realm.- Lançamentos:
IllegalArgumentException
- se o argumento de destino for nulo.RealmFileException
- se acontecer um erro ao acessar o Arquivo de Realm subjacente ou ao gravar no arquivo de destino.IllegalStateException
- se chamado do thread da UI.IllegalStateException
- se nem todas as alterações do cliente estiverem integradas no servidor.
-
writeEncryptedCopyTo
public void writeEncryptedCopyTo(File destination, byte[] key)
Escreve uma cópia compactada e criptografada do Realm no Arquivo de destino fornecido. O arquivo resultante pode ser usado como conjunto de dados inicial para inicializar um Realm local ou sincronizado em outros dispositivos.O arquivo de destino já não pode existir.
Observe que, se isso for chamado de dentro de uma transação, ele gravará os dados atuais, e não os dados como eram quando a última transação foi confirmada.
- Parâmetros:
destination
- para salvar o Realm.key
- uma chave de criptografia de 64 bytes.- Lançamentos:
IllegalArgumentException
- se o argumento de destino for nulo.RealmFileException
- se acontecer um erro ao acessar o Arquivo de Realm subjacente ou ao gravar no arquivo de destino.IllegalStateException
- se chamado do thread da UI.IllegalStateException
- se nem todas as alterações do cliente estiverem integradas no servidor.
-
Aguarde a mudança
@Deprecated boolean público waitForChange()
Obsoleto.esse método será removido na próxima versão principal.Bloqueia o thread atual até que novas alterações no Realm estejam disponíveis oustopWaitForChange()
seja chamado de outro thread. Depois que stopWaitForChange for chamado, todas as chamadas futuras para esse método retornarão falsas imediatamente.- Retorna:
true
se o Realm foi atualizado para a versão mais recente,false
se foi cancelado chamando stopWaitForChange.- Lançamentos:
IllegalStateException
- se chamar isso de dentro de uma transação ou de um tópico do loop de eventos.RealmMigrationNeededException
- no digitadoRealm
se a versão mais recente contiver alterações de esquema incompatíveis.
-
stopWaitForChange
@Deprecated public void stopWaitForChange()
Obsoleto.este método será removido na próxima versão principalFaz qualquerwaitForChange()
atual retornarfalse
imediatamente. Depois que isso for chamado, todas as chamadas futuras para waitForChange retornarão imediatamentefalse
.Esse método é seguro para threads e deve _only_ ser chamado de outro thread além daquele que chamou waitForChange.
- Lançamentos:
IllegalStateException
- se a instânciaRealm
já tiver sido fechada.
-
startedTransaction
public void beginTransaction()
Inicia uma transação que deve ser fechada porBaseRealm.commitTransaction()
ou abortada porBaseRealm.cancelTransaction()
. A transação é usada para criar, atualizar e excluir objeto atomicamente dentro de um Realm.Antes de iniciar uma transação, a Instância de Realm é atualizada para a versão mais recente, a fim de incluir todas as alterações de outras threads. Esta atualização não trigger nenhum
RealmChangeListener
registrado.Portanto, é recomendável fazer uma query para os itens que devem ser modificados de dentro da transação. Caso contrário, há o risco de que alguns dos resultados tenham sido excluídos ou modificados quando a transação começa.
// Don't do this RealmResults<Person> persons = realm.where(Person.class).findAll(); realm.beginTransaction(); persons.first().setName("John"); realm.commitTransaction(); // Do this instead realm.beginTransaction(); RealmResults<Person> persons = realm.where(Person.class).findAll(); persons.first().setName("John"); realm.commitTransaction();
Aviso: não é possível aninhar transações. Se você iniciar uma transação dentro de uma transação, uma exceção será lançada.
- Lançamentos:
RealmMigrationNeededException
- no digitadoRealm
se a versão mais recente contiver alterações de esquema incompatíveis.
-
commitTransaction
public void commitTransaction()
Todas as alterações desdeBaseRealm.beginTransaction()
são mantidas no disco e o Realm volta a ser somente leitura. Um evento é enviado para notificar todas as outras Instância de Realm de que ocorreu uma alteração. Quando o evento for recebido, os outros Realms atualizarão seus objetos eRealmResults
para refletir as alterações deste commit.
-
cancelTransaction
public void cancelTransaction()
Reverte todas as gravações (objetos criados, atualizados ou excluídos) feitas na transação de escrita atual e encerra a transação.O Realm volta a ser somente leitura.
Chamar isso quando não estiver em uma transação gerará uma exceção.
-
IsFrozen
public boolean isFrozen()
Retorna se este Realm está congelado ou não.- Retorna:
true
se o Realm estiver congelado,false
se não estiver.- Veja também:
freeze()
-
getNumberOfAtiveVersions
público longo getNumberOfAtiveVersions()
Retorna o número atual de versões ativas mantidas por este Realm.Ter um grande número de versões ativas tem um impacto negativo no tamanho do Arquivo de Realm. Consulte as Perguntas frequentes para obter mais informações.
- Retorna:
- número de versões ativas atualmente mantidas pelo Realm.
- Veja também:
RealmConfiguration.Builder.maxNumberOfActiveVersions(long)
-
getPath
string pública getPath()
Retorna o caminho canônico para onde este Realm é mantido no disco.- Retorna:
- o caminho canônico para o arquivo Realm.
- Veja também:
File.getCanonicalPath()
-
getConfiguration
public RealmConfiguration getConfiguration()
Retorna oRealmConfiguration
para este Realm.- Retorna:
- o
RealmConfiguration
para este Realm.
-
getVersion
público longo getVersion()
Retorna a versão do esquema para este Realm.- Retorna:
- a versão do esquema do Arquivo de Realm que faz backup desse Realm.
-
Fechar
public void close()
Fecha a Instância de Realm e todos os seus recursos.É importante lembrar sempre de fechar as Instância de Realm quando terminar com elas, para não vazar memória, descritores de arquivos ou aumentar o tamanho do Arquivo de Realm fora de medida.
- Especificado por:
close
na interfaceAutoCloseable
- Especificado por:
close
na interfaceCloseable
- Lançamentos:
IllegalStateException
- se estiver tentando fechar a partir de outro thread.
-
está fechado
public boolean isClosed()
Verifica se a instânciaRealm
já foi fechada.- Retorna:
true
se fechado,false
caso contrário.- Lançamentos:
IllegalStateException
- se estiver tentando fechar a partir de outro thread.
-
getSubscriptions
subscriptionSet público getSubscriptions ()
Retorna o conjunto de assinaturas associado a este Realm. O conjunto de assinaturas define um conjunto de query que definem quais dados são sincronizados entre este Realm e o servidor.Esse método só é aplicável a domínios sincronizados que usam Flexible Sync.
- Retorna:
- o conjunto de assinaturas associado a este Realm.
- Lançamentos:
IllegalStateException
- se esse Realm for um Realm local ou um Realm sincronizado baseado em partição.
-
Excluir todos
public void deleteAll()
Exclui todos os objetos deste Realm.- Lançamentos:
IllegalStateException
- se o Realm estiver fechado ou chamado de um thread incorreto.
-
-