Class RealmObjectSchema
- java.lang.Object
-
- io.realm.RealmObjectSchema
-
public abstract class RealmObjectSchema extends Object
Classe para interagir com o esquema de uma determinada classe RealmObject. Isso torna possível inspecionar, adicionar, excluir ou alterar os campos de uma determinada classe.Se este
RealmObjectSchema
for recuperado de umRealmSchema
imutável, esteRealmObjectSchema
também será imutável.- Veja também:
RealmMigration
-
-
Resumo da classe aninhada
Classes agrupadas Modificador e tipo classe Descrição static interface
RealmObjectSchema.Function
Interface de função, usada ao atravessar todos os objetos da classe atual e aplicar uma função em cada um.
-
Resumo do método
Todos os métodos Métodos de instância Métodos abstratos Métodos concretos Modificador e tipo Método Descrição abstract RealmObjectSchema
addField(String fieldName, Class<?> fieldType, FieldAttribute... attributes)
Adiciona um novo campo simples à classe RealmObject.abstract RealmObjectSchema
addIndex(String fieldName)
Adiciona um índice a um determinado campo.abstract RealmObjectSchema
addPrimaryKey(String fieldName)
Adiciona uma chave primária a um determinado campo.abstract RealmObjectSchema
addRealmDictionaryField(String fieldName, RealmObjectSchema objectSchema)
Adiciona um novo campo que contém umRealmDictionary
com referências a outras classes de modelo do Realm.abstract RealmObjectSchema
addRealmDictionaryField(String fieldName, Class<?> primitiveType)
Adiciona um novo campo que referencia umRealmDictionary
com valores primitivos.abstract RealmObjectSchema
addRealmListField(String fieldName, RealmObjectSchema objectSchema)
Adiciona um novo campo que contém umRealmList
com referências a outras classes de modelo do Realm.abstract RealmObjectSchema
addRealmListField(String fieldName, Class<?> primitiveType)
Adiciona um novo campo que referencia umRealmList
com valores primitivos.abstract RealmObjectSchema
addRealmObjectField(String fieldName, RealmObjectSchema objectSchema)
Adiciona um novo campo que faz referência a outroRealmObject
.abstract RealmObjectSchema
addRealmSetField(String fieldName, RealmObjectSchema objectSchema)
Adiciona um novo campo que contém umRealmSet
com referências a outras classes de modelo do Realm.abstract RealmObjectSchema
addRealmSetField(String fieldName, Class<?> primitiveType)
Adiciona um novo campo que referencia umRealmSet
com valores primitivos.String
getClassName()
Retorna o nome da classe RealmObject que está sendo representada por este esquema.Set<String>
getFieldNames()
Retorna todos os campos desta classe.RealmFieldType
getFieldType(String fieldName)
Retorna o tipo usado pelo storage engine subjacente para representar este campo.String
getPrimaryKey()
Retorna o nome do campo de chave primária.boolean
hasField(String fieldName)
Testa se a classe tem um campo definido com o nome fornecido.boolean
hasIndex(String fieldName)
Verifica se um determinado campo tem um índice definido.boolean
hasPrimaryKey()
Verifica se a classe tem uma chave primária definida.boolean
isEmbedded()
Retornatrue
se objetos desse tipo forem considerados "incorporados".boolean
isNullable(String fieldName)
Verifica se um determinado campo é anulável, ou seja, ele é permitido conter valoresnull
.boolean
isPrimaryKey(String fieldName)
Verifica se um determinado campo é o campo de chave primária.boolean
isRequired(String fieldName)
Verifica se um determinado campo é obrigatório, ou seja, não é permitido conter valoresnull
.abstract RealmObjectSchema
removeField(String fieldName)
Remove um campo da classe.abstract RealmObjectSchema
removeIndex(String fieldName)
Remove um índice de um determinado campo.abstract RealmObjectSchema
removePrimaryKey()
Remove a chave primária desta classe.abstract RealmObjectSchema
renameField(String currentFieldName, String newFieldName)
Renomeia um campo de um nome para outro.abstract RealmObjectSchema
setClassName(String className)
Define um novo nome para esta classe RealmObject.void
setEmbedded(boolean embedded)
Converte a classe para ser incorporada ou não.abstract RealmObjectSchema
setNullable(String fieldName, boolean nullable)
Define um campo como anulável, ou seja, ele deve ser capaz de manternull
valores.abstract RealmObjectSchema
setRequired(String fieldName, boolean required)
Define um campo como obrigatório, ou seja, ele não é permitido manter valoresnull
.abstract RealmObjectSchema
transform(RealmObjectSchema.Function function)
Executa uma função de transformação em cada instância RealmObject da classe atual.
-
-
-
Detalhes do método
-
getClassName
string pública getClassName()
Retorna o nome da classe RealmObject que está sendo representada por este esquema.- Ao usar um
Realm
normal, esse nome é o mesmo que o da classeRealmObject
. - Ao usar um
DynamicRealm
, este é o nome usado em todos os métodos de API que exigem um nome de classe.
- Retorna:
- o nome da classe RealmObject representada por este esquema.
- Lançamentos:
IllegalStateException
- se essa definição de esquema não fizer mais parte do Realm.
- Ao usar um
-
setClassName
public abstract RealmObjectSchema setClassName(String className)
Define um novo nome para esta classe RealmObject. Isso equivale a renomeá-lo.- Parâmetros:
className
- o novo nome para esta classe.- Lançamentos:
IllegalArgumentException
- se className fornull
ou uma string vazia, ou seu comprimento exceder 56 caracteres.UnsupportedOperationException
- se esteRealmObjectSchema
for imutável ou de um Realm sincronizado.- Veja também:
RealmSchema.rename(String, String)
-
addField
public abstract RealmObjectSchema addField(String fieldName, Class<?> fieldType, FieldAttribute... attributes)
Adiciona um novo campo simples à classe RealmObject. O tipo deve ser suportado pelo Realm. ConsulteRealmObject
para a lista de tipos suportados. Se o campo permitir valoresnull
, use o tipo em caixa em vez disso, por exemplo,Integer.class
em vez deint.class
.Para adicionar campos que fazem referência a outros RealmObjects ou RealmLists, use
addRealmObjectField(String, RealmObjectSchema)
ouaddRealmListField(String, RealmObjectSchema)
.- Parâmetros:
fieldName
- nome do campo a ser adicionado.fieldType
- tipo de campo a ser adicionado. ConsulteRealmObject
para obter a lista completa.attributes
- conjunto de atributos para este campo.- Retorna:
- o esquema atualizado.
- Lançamentos:
IllegalArgumentException
- se o tipo não for suportado, o nome do campo é ilegal ou já existe um campo com esse nome.UnsupportedOperationException
- se esteRealmObjectSchema
for imutável ou se adicionar um campo com o atributoFieldAttribute.PRIMARY_KEY
a um esquema de um Realm sincronizado.
-
addRealmObjectField
public abstract RealmObjectSchema addRealmObjectField(String fieldName, RealmObjectSchema objectSchema)
Adiciona um novo campo que faz referência a outroRealmObject
.- Parâmetros:
fieldName
- nome do campo a ser adicionado.objectSchema
- esquema para o tipo de Realm que está sendo referenciado.- Retorna:
- o esquema atualizado.
- Lançamentos:
IllegalArgumentException
- se o nome do campo for ilegal ou já existir um campo com esse nome.UnsupportedOperationException
- se esteRealmObjectSchema
for imutável.
-
addRealmListField
public abstract RealmObjectSchema addRealmListField(String fieldName, RealmObjectSchema objectSchema)
Adiciona um novo campo que contém umRealmList
com referências a outras classes de modelo do Realm.Se a lista contiver tipos primitivos, utilize
addRealmListField(String, Class)
em vez.- Parâmetros:
fieldName
- nome do campo a ser adicionado.objectSchema
- esquema para o tipo de Realm que está sendo referenciado.- Retorna:
- o esquema atualizado.
- Lançamentos:
IllegalArgumentException
- se o nome do campo for ilegal ou se já existir um campo com esse nome.UnsupportedOperationException
- se esteRealmObjectSchema
for imutável.
-
addRealmListField
public abstract RealmObjectSchema addRealmListField(String fieldName, Class<?> primitiveType)
Adiciona um novo campo que referencia umRealmList
com valores primitivos. ConsulteRealmObject
para a lista de tipos suportados.A anulabilidade dos elementos é definida usando a classe correta, por exemplo,
Integer.class
em vez deint.class
. Alternativamente,setRequired(String, boolean)
pode ser usado.Exemplo:
// Defines the list of Strings as being non null. RealmObjectSchema schema = schema.create("Person") .addRealmListField("children", String.class) .setRequired("children", true)
addRealmListField(String, RealmObjectSchema)
em vez disso.- Parâmetros:
fieldName
- nome do campo a ser adicionado.primitiveType
- tipo simples de elementos na array.- Retorna:
- o esquema atualizado.
- Lançamentos:
IllegalArgumentException
- se o nome do campo for ilegal, já existe um campo com esse nome ou o tipo de elemento não é permitido.UnsupportedOperationException
- se esteRealmObjectSchema
for imutável.
-
addRealmDictionaryField
public abstract RealmObjectSchema addRealmDictionaryField(String fieldName, RealmObjectSchema objectSchema)
Adiciona um novo campo que contém umRealmDictionary
com referências a outras classes de modelo do Realm.Se o dicionário contiver tipos primitivos, utilize
addRealmDictionaryField(String, Class)
em vez disso.- Parâmetros:
fieldName
- nome do campo a ser adicionado.objectSchema
- esquema para o tipo de Realm que está sendo referenciado.- Retorna:
- o esquema atualizado.
- Lançamentos:
IllegalArgumentException
- se o nome do campo for ilegal ou se já existir um campo com esse nome.UnsupportedOperationException
- se esteRealmObjectSchema
for imutável.
-
addRealmDictionaryField
public abstract RealmObjectSchema addRealmDictionaryField(String fieldName, Class<?> primitiveType)
Adiciona um novo campo que referencia umRealmDictionary
com valores primitivos. ConsulteRealmObject
para a lista de tipos suportados.A anulabilidade dos elementos é definida usando a classe correta, por exemplo,
Integer.class
em vez deint.class
. Alternativamente,setRequired(String, boolean)
pode ser usado.Exemplo:
// Defines the dictionary of Strings as being non null. RealmObjectSchema schema = schema.create("Person") .addRealmDictionaryField("parentAndChild", String.class) .setRequired("parentAndChild", true)
addRealmDictionaryField(String, RealmObjectSchema)
em vez disso.- Parâmetros:
fieldName
- nome do campo a ser adicionado.primitiveType
- tipo simples de elementos na array.- Retorna:
- o esquema atualizado.
- Lançamentos:
IllegalArgumentException
- se o nome do campo for ilegal, já existe um campo com esse nome ou o tipo de elemento não é permitido.UnsupportedOperationException
- se esteRealmObjectSchema
for imutável.
-
addRealmSetField
public abstract RealmObjectSchema addRealmSetField(String fieldName, RealmObjectSchema objectSchema)
Adiciona um novo campo que contém umRealmSet
com referências a outras classes de modelo do Realm.Se o conjunto contiver tipos primitivos, utilize
addRealmSetField(String, Class)
em vez.- Parâmetros:
fieldName
- nome do campo a ser adicionado.objectSchema
- esquema para o tipo de Realm que está sendo referenciado.- Retorna:
- o esquema atualizado.
- Lançamentos:
IllegalArgumentException
- se o nome do campo for ilegal ou se já existir um campo com esse nome.UnsupportedOperationException
- se esteRealmObjectSchema
for imutável.
-
addRealmSetField
public abstract RealmObjectSchema addRealmSetField(String fieldName, Class<?> primitiveType)
Adiciona um novo campo que referencia umRealmSet
com valores primitivos. ConsulteRealmObject
para a lista de tipos suportados.A anulabilidade dos elementos é definida usando a classe correta, por exemplo,
Integer.class
em vez deint.class
. Alternativamente,setRequired(String, boolean)
pode ser usado.Exemplo:
// Defines the set of Strings as being non null. RealmObjectSchema schema = schema.create("Person") .addRealmSetField("children", String.class) .setRequired("children", true)
addRealmSetField(String, RealmObjectSchema)
em vez disso.- Parâmetros:
fieldName
- nome do campo a ser adicionado.primitiveType
- tipo simples de elementos na array.- Retorna:
- o esquema atualizado.
- Lançamentos:
IllegalArgumentException
- se o nome do campo for ilegal, já existe um campo com esse nome ou o tipo de elemento não é permitido.UnsupportedOperationException
- se esteRealmObjectSchema
for imutável.
-
removeField
public abstract RealmObjectSchema removeField(String fieldName)
Remove um campo da classe.- Parâmetros:
fieldName
- nome do campo a ser removido.- Retorna:
- o esquema atualizado.
- Lançamentos:
IllegalArgumentException
- se o nome do campo não existir.UnsupportedOperationException
- se esteRealmObjectSchema
for imutável ou para um Realm sincronizado.
-
Renomear campo
public abstract RealmObjectSchema renameField(String currentFieldName, String newFieldName)
Renomeia um campo de um nome para outro.- Parâmetros:
currentFieldName
- nome do campo para renomear.newFieldName
- o novo nome do campo.- Retorna:
- o esquema atualizado.
- Lançamentos:
IllegalArgumentException
- se o nome do campo não existir ou se o novo nome do campo já existir.UnsupportedOperationException
- se esteRealmObjectSchema
for imutável ou para um Realm sincronizado.
-
hasField
public boolean hasField(String fieldName)
Testa se a classe tem um campo definido com o nome fornecido.- Parâmetros:
fieldName
- nome do campo a ser testado.- Retorna:
true
se o campo existir,false
caso contrário.
-
AdicionarIndex
public abstract RealmObjectSchema addIndex(String fieldName)
Adiciona um índice a um determinado campo. Isto é o equivalente a adicionar a anotaçãoIndex
no campo.- Parâmetros:
fieldName
- campo ao qual adicionar o índice.- Retorna:
- o esquema atualizado.
- Lançamentos:
IllegalArgumentException
- se o nome do campo não existir, o campo não poderá ser indexado ou já terá um índice definido.UnsupportedOperationException
- se esteRealmObjectSchema
for imutável.
-
hasIndex
public boolean hasIndex(String fieldName)
Verifica se um determinado campo tem um índice definido.- Parâmetros:
fieldName
- nome do campo existente a ser verificado.- Retorna:
true
se o campo estiver indexado,false
caso contrário.- Lançamentos:
IllegalArgumentException
- se o nome do campo não existir.- Veja também:
Index
-
removeIndex
public abstract RealmObjectSchema removeIndex(String fieldName)
Remove um índice de um determinado campo. Isto é o mesmo que remover a anotação@Index
no campo.- Parâmetros:
fieldName
- campo do qual remover o índice.- Retorna:
- o esquema atualizado.
- Lançamentos:
IllegalArgumentException
- se o nome do campo não existir ou o campo não tiver um índice.UnsupportedOperationException
- se esteRealmObjectSchema
for imutável ou de um Realm sincronizado.
-
addPrimaryKey
public abstract RealmObjectSchema addPrimaryKey(String fieldName)
Adiciona uma chave primária a um determinado campo. Isto é o mesmo que adicionar a anotaçãoPrimaryKey
no campo. Além disso, isso também adiciona implicitamente a anotaçãoIndex
ao campo.- Parâmetros:
fieldName
- campo para definir como chave primária.- Retorna:
- o esquema atualizado.
- Lançamentos:
IllegalArgumentException
- se o nome do campo não existir, o campo não poderá ser uma chave primária ou já terá uma chave primária definida.UnsupportedOperationException
- se esteRealmObjectSchema
for imutável ou de um Realm sincronizado.
-
removePrimaryKey
public abstract RealmObjectSchema removePrimaryKey()
Remove a chave primária desta classe. É o mesmo que remover a anotaçãoPrimaryKey
da turma. Além disso, isso remove implicitamente a anotaçãoIndex
do campo.- Retorna:
- o esquema atualizado.
- Lançamentos:
IllegalArgumentException
- se a classe não tiver uma chave primária definida.UnsupportedOperationException
- se esteRealmObjectSchema
for imutável ou de um Realm sincronizado.
-
setRequired
public abstract RealmObjectSchema setRequired(String fieldName, boolean required)
Define um campo como obrigatório, ou seja, ele não é permitido manter valoresnull
. Isso é equivalente a alternar entre os tipos de caixa e sua variante primitiva, por exemplo,Integer
paraint
.Se o tipo de campo designado for uma lista de valores (não
RealmObject
s , a anulabilidade especificada afetará apenas seus elementos, não o campo em si. A lista de valores em si é sempre não anulável.- Parâmetros:
fieldName
- nome do campo na classe.required
-true
se o campo for obrigatório,false
caso contrário.- Retorna:
- o esquema atualizado.
- Lançamentos:
IllegalArgumentException
- se o nome do campo não existir, a anotaçãoRequired
ou o campo não pode ter sido definido como obrigatório.UnsupportedOperationException
- se esteRealmObjectSchema
for imutável.- Veja também:
Required
-
setNullable
public abstract RealmObjectSchema setNullable(String fieldName, boolean nullable)
Define um campo como anulável, ou seja, ele deve ser capaz de manternull
valores. Isso é equivalente a alternar entre tipos primitivos e sua variante em caixa, por exemplo,int
aInteger
.Se o tipo de campo designado for uma lista de valores (não
RealmObject
s , a anulabilidade especificada afetará apenas seus elementos, não o campo em si. A lista de valores em si é sempre não anulável.- Parâmetros:
fieldName
- nome do campo na classe.nullable
-true
se o campo deve ser anulável,false
caso contrário.- Retorna:
- o esquema atualizado.
- Lançamentos:
IllegalArgumentException
- se o nome do campo não existir ou não puder ser definido como anulável.UnsupportedOperationException
- se esteRealmObjectSchema
for imutável.
-
isRequired
public boolean isRequired(String fieldName)
Verifica se um determinado campo é obrigatório, ou seja, não é permitido conter valoresnull
.- Parâmetros:
fieldName
- campo para verificar.- Retorna:
true
se for necessário,false
caso contrário.- Lançamentos:
IllegalArgumentException
- se o nome do campo não existir.- Veja também:
setRequired(String, boolean)
-
isNullable
public boolean isNullable(String fieldName)
Verifica se um determinado campo é anulável, ou seja, ele é permitido conter valoresnull
.- Parâmetros:
fieldName
- campo para verificar.- Retorna:
true
se for necessário,false
caso contrário.- Lançamentos:
IllegalArgumentException
- se o nome do campo não existir.- Veja também:
setNullable(String, boolean)
-
isPrimaryKey
public boolean isPrimaryKey(String fieldName)
Verifica se um determinado campo é o campo de chave primária.- Parâmetros:
fieldName
- campo para verificar.- Retorna:
true
se for o campo de chave primária,false
caso contrário.- Lançamentos:
IllegalArgumentException
- se o nome do campo não existir.- Veja também:
addPrimaryKey(String)
-
hasPrimaryKey
public boolean hasPrimaryKey()
Verifica se a classe tem uma chave primária definida.- Retorna:
true
se uma chave primária for definida,false
caso contrário.- Veja também:
PrimaryKey
-
getPrimaryKey
string pública getPrimaryKey()
Retorna o nome do campo de chave primária.- Retorna:
- o nome do campo de chave primária.
- Lançamentos:
IllegalStateException
- se a classe não tiver uma chave primária definida.
-
getFieldNames
public Set<String> getFieldNames()
Retorna todos os campos desta classe.- Retorna:
- uma lista de todos os campos nesta classe.
-
transformação, transformação
public abstract RealmObjectSchema transform(RealmObjectSchema.Function function)
Executa uma função de transformação em cada instância RealmObject da classe atual. O objeto será representado como umDynamicRealmObject
.Não há garantias em que ordem os objetos serão retornados.
- Parâmetros:
function
- função de transformação.- Retorna:
- esse esquema.
- Lançamentos:
UnsupportedOperationException
- se esteRealmObjectSchema
for imutável.
-
getFieldType
public RealmFieldType getFieldType(String fieldName)
Retorna o tipo usado pelo storage engine subjacente para representar este campo.- Parâmetros:
fieldName
- nome do campo de destino.- Retorna:
- o tipo subjacente usado pelo Realm para representar este campo.
-
está incorporado
public boolean isEmbedded()
Retornatrue
se objetos desse tipo forem considerados "incorporados". ConsulteRealmClass.embedded()
para obter mais detalhes.- Retorna:
true
se objetos desse tipo estiverem embarcados.false
caso contrário.
-
setEmbedded
public void setEmbedded(boolean embedded)
Converte a classe para ser incorporada ou não.Uma classe só pode ser marcada como incorporada se as seguintes invariantes estiverem satisfeitas:
- A classe não pode ter uma chave primária definida.
-
Todos os objetos existentes desse tipo devem ter um e exatamente um objeto pai que já esteja apontando para ele. Se 0 ou mais de 1 objeto tiver uma referência a um objeto prestes a ser marcado como incorporado, um
IllegalStateException
será lançado.
- Lançamentos:
IllegalStateException
- se a classe não pôde ser convertida porque quebrou alguns dos invariantes de objetos embarcados.- Veja também:
RealmClass.embedded()
-
-