Pacote io.realm

Class 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 um RealmSchema imutável, este RealmObjectSchema também será imutável.

    Veja também:
    RealmMigration
    • 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 classe RealmObject .
        • 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.
      • addRealmListField

        public abstract RealmObjectSchema addRealmListField​(String fieldName,
                                                            Class<?> primitiveType)
        Adiciona um novo campo que referencia um RealmList com valores primitivos. Consulte RealmObject para a lista de tipos suportados.

        A anulabilidade dos elementos é definida usando a classe correta, por exemplo, Integer.class em vez de int.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)
         
         
        Se a lista contiver referências a outras classes do Realm, use 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 este RealmObjectSchema for imutável.
      • addRealmDictionaryField

        public abstract RealmObjectSchema addRealmDictionaryField​(String fieldName,
                                                                  Class<?> primitiveType)
        Adiciona um novo campo que referencia um RealmDictionary com valores primitivos. Consulte RealmObject para a lista de tipos suportados.

        A anulabilidade dos elementos é definida usando a classe correta, por exemplo, Integer.class em vez de int.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)
         
         
        Se a lista contiver referências a outras classes do Realm, use 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 este RealmObjectSchema for imutável.
      • addRealmSetField

        public abstract RealmObjectSchema addRealmSetField​(String fieldName,
                                                           Class<?> primitiveType)
        Adiciona um novo campo que referencia um RealmSet com valores primitivos. Consulte RealmObject para a lista de tipos suportados.

        A anulabilidade dos elementos é definida usando a classe correta, por exemplo, Integer.class em vez de int.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)
         
         
        Se a lista contiver referências a outras classes do Realm, use 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 este RealmObjectSchema for imutável.
      • 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 este RealmObjectSchema 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ção Index 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 este RealmObjectSchema 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 este RealmObjectSchema 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ção PrimaryKey no campo. Além disso, isso também adiciona implicitamente a anotação Index 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 este RealmObjectSchema 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 valores null . Isso é equivalente a alternar entre os tipos de caixa e sua variante primitiva, por exemplo, Integer para int.

        Se o tipo de campo designado for uma lista de valores (não RealmObjects , 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ção Required ou o campo não pode ter sido definido como obrigatório.
        UnsupportedOperationException - se este RealmObjectSchema 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 manter null valores. Isso é equivalente a alternar entre tipos primitivos e sua variante em caixa, por exemplo, int a Integer.

        Se o tipo de campo designado for uma lista de valores (não RealmObjects , 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 este RealmObjectSchema for imutável.
      • isRequired

        public boolean isRequired(String fieldName)
        Verifica se um determinado campo é obrigatório, ou seja, não é permitido conter valores null .
        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 valores null .
        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.
      • 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()
        Retorna true se objetos desse tipo forem considerados "incorporados". Consulte RealmClass.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()