パッケージ io.realm

クラス RealmObjectSchema


  • public abstract class RealmObjectSchema
    extends Object
    指定された RealmObject クラスのスキーマを操作するためのクラス。 これにより、特定のクラスのフィールドを検査、追加、削除、または変更することができます。

    このRealmObjectSchemaが不変のRealmSchemaから取得されている場合、このRealmObjectSchemaも不変になります。

    以下も参照してください。
    RealmMigration
    • メソッドの詳細

      • getClassName

        public string getClassName()
        このスキーマによって表される RealmObject クラスの名前を返します。

        • 通常のRealmを使用する場合、この名前はRealmObjectクラスと同じになります。
        • DynamicRealmを使用する場合、これはクラス名を必要とするすべての API メソッドで使用される名前になります。
        次の値を返します。
        このスキーマによって表される RealmObject クラスの名前。
        次の例外がスローされます。
        IllegalStateException - このスキーマ定義が Realm の一部ではなくなった場合。
      • setClassName

        public abstract RealmObjectSchema setClassName​(String className)
        この RealmObject クラスの新しい名前を設定します。 これは名前を変更することと同じです。
        パラメーター:
        className - このクラスの新しい名前。
        次の例外がスローされます。
        IllegalArgumentException - ClassName が null または空のstringであるか、その長さが 56 文字を超える場合。
        UnsupportedOperationException - このRealmObjectSchemaが不変であるか、同期された Realm からのものである場合。
        以下も参照してください。
        RealmSchema.rename(String, String)
      • addField

        public abstract RealmObjectSchema addField​(String fieldName,
                                                   Class<?> fieldType,
                                                   FieldAttribute... attributes)
        RealmObject クラスに新しい単純フィールドを追加します。 Realm でサポートされているタイプである必要があります。 サポートされているタイプのリストについては、 RealmObjectを参照してください。 フィールドでnull 値を許可する必要がある場合は、代わりにボックス型を使用します。例:Integer.class ではなくint.class

        他の RealmObject または Realmlist を参照するフィールドを追加するには、代わりにaddRealmObjectField(String, RealmObjectSchema)またはaddRealmListField(String, RealmObjectSchema)を使用します。

        パラメーター:
        fieldName - 追加するフィールドの名前。
        fieldType - 追加するフィールドのタイプ。 詳しくは、 RealmObjectを参照してください。
        attributes - このフィールドの属性のセット。
        次の値を返します。
        更新された スキーマ 。
        次の例外がスローされます。
        IllegalArgumentException - 型がサポートされていない場合、フィールド名が不正であるか、その名前のフィールドがすでに存在します。
        UnsupportedOperationException - このRealmObjectSchemaが不変である場合、または同期された Realm のスキーマにFieldAttribute.PRIMARY_KEY属性を持つ フィールドを追加する場合。
      • addRealmObjectField

        public abstract RealmObjectSchema addRealmObjectField​(String fieldName,
                                                              RealmObjectSchema objectSchema)
        別のRealmObjectを参照する新しいフィールドを追加します。
        パラメーター:
        fieldName - 追加するフィールドの名前。
        objectSchema - 参照されている Realm タイプのスキーマ。
        次の値を返します。
        更新された スキーマ 。
        次の例外がスローされます。
        IllegalArgumentException - フィールド名が不正であるか、その名前のフィールドがすでに存在する場合。
        UnsupportedOperationException - このRealmObjectSchemaが不変の場合。
      • addRealmListField

        public abstract RealmObjectSchema addRealmListField​(String fieldName,
                                                            RealmObjectSchema objectSchema)
        他の Realm モデル クラスへの参照を持つRealmListを含む新しいフィールドを追加します。

        リストにプリミティブ型が含まれている場合は、代わりにaddRealmListField(String, Class)を使用します。

        パラメーター:
        fieldName - 追加するフィールドの名前。
        objectSchema - 参照されている Realm タイプのスキーマ。
        次の値を返します。
        更新された スキーマ 。
        次の例外がスローされます。
        IllegalArgumentException - フィールド名が不正な場合、またはその名前のフィールドが既に存在する場合。
        UnsupportedOperationException - このRealmObjectSchemaが不変の場合。
      • addRealmListField

        public abstract RealmObjectSchema addRealmListField​(String fieldName,
                                                            Class<?> primitiveType)
        プリミティブ値を持つRealmListを参照する新しいフィールドを追加します。 サポートされているタイプのリストについては、 RealmObjectを参照してください。

        要素の null 可能性は、正しいクラスを使用することで定義されます(例: ではなく、Integer.class int.class)。あるいは、 setRequired(String, boolean)を使用することもできます。

        例:

         
         // Defines the list of Strings as being non null.
         RealmObjectSchema schema = schema.create("Person")
             .addRealmListField("children", String.class)
             .setRequired("children", true)
         
         
        リストに他の Realm クラスへの参照が含まれている場合は、代わりにaddRealmListField(String, RealmObjectSchema)を使用します。
        パラメーター:
        fieldName - 追加するフィールドの名前。
        primitiveType - 配列内の要素の単純な型。
        次の値を返します。
        更新された スキーマ 。
        次の例外がスローされます。
        IllegalArgumentException - フィールド名が不正な場合、その名前のフィールドが既に存在するか、要素タイプがサポートされていない場合。
        UnsupportedOperationException - このRealmObjectSchemaが不変の場合。
      • addRealmDictionaryField

        public abstract RealmObjectSchema addRealmDictionaryField​(String fieldName,
                                                                  RealmObjectSchema objectSchema)
        他の Realm モデル クラスへの参照を持つRealmDictionaryを含む新しいフィールドを追加します。

        辞書にプリミティブ型が含まれている場合は、代わりにaddRealmDictionaryField(String, Class)を使用します。

        パラメーター:
        fieldName - 追加するフィールドの名前。
        objectSchema - 参照されている Realm タイプのスキーマ。
        次の値を返します。
        更新された スキーマ 。
        次の例外がスローされます。
        IllegalArgumentException - フィールド名が不正な場合、またはその名前のフィールドが既に存在する場合。
        UnsupportedOperationException - このRealmObjectSchemaが不変の場合。
      • addRealmDictionaryField

        public abstract RealmObjectSchema addRealmDictionaryField​(String fieldName,
                                                                  Class<?> primitiveType)
        プリミティブ値を持つRealmDictionaryを参照する新しいフィールドを追加します。 サポートされているタイプのリストについては、 RealmObjectを参照してください。

        要素の null 可能性は、正しいクラスを使用することで定義されます(例: ではなく、Integer.class int.class)。あるいは、 setRequired(String, boolean)を使用することもできます。

        例:

         
         // Defines the dictionary of Strings as being non null.
         RealmObjectSchema schema = schema.create("Person")
             .addRealmDictionaryField("parentAndChild", String.class)
             .setRequired("parentAndChild", true)
         
         
        リストに他の Realm クラスへの参照が含まれている場合は、代わりにaddRealmDictionaryField(String, RealmObjectSchema)を使用します。
        パラメーター:
        fieldName - 追加するフィールドの名前。
        primitiveType - 配列内の要素の単純な型。
        次の値を返します。
        更新された スキーマ 。
        次の例外がスローされます。
        IllegalArgumentException - フィールド名が不正な場合、その名前のフィールドが既に存在するか、要素タイプがサポートされていない場合。
        UnsupportedOperationException - このRealmObjectSchemaが不変の場合。
      • addRealmSetField

        public abstract RealmObjectSchema addRealmSetField​(String fieldName,
                                                           RealmObjectSchema objectSchema)
        他の Realm モデル クラスへの参照を持つRealmSetを含む新しいフィールドを追加します。

        セットにプリミティブ型が含まれている場合は、代わりにaddRealmSetField(String, Class)を使用します。

        パラメーター:
        fieldName - 追加するフィールドの名前。
        objectSchema - 参照されている Realm タイプのスキーマ。
        次の値を返します。
        更新された スキーマ 。
        次の例外がスローされます。
        IllegalArgumentException - フィールド名が不正な場合、またはその名前のフィールドが既に存在する場合。
        UnsupportedOperationException - このRealmObjectSchemaが不変の場合。
      • addRealmSetField

        public abstract RealmObjectSchema addRealmSetField​(String fieldName,
                                                           Class<?> primitiveType)
        プリミティブ値を持つRealmSetを参照する新しいフィールドを追加します。 サポートされているタイプのリストについては、 RealmObjectを参照してください。

        要素の null 可能性は、正しいクラスを使用することで定義されます(例: ではなく、Integer.class int.class)。あるいは、 setRequired(String, boolean)を使用することもできます。

        例:

         
         // Defines the set of Strings as being non null.
         RealmObjectSchema schema = schema.create("Person")
             .addRealmSetField("children", String.class)
             .setRequired("children", true)
         
         
        リストに他の Realm クラスへの参照が含まれている場合は、代わりにaddRealmSetField(String, RealmObjectSchema)を使用します。
        パラメーター:
        fieldName - 追加するフィールドの名前。
        primitiveType - 配列内の要素の単純な型。
        次の値を返します。
        更新された スキーマ 。
        次の例外がスローされます。
        IllegalArgumentException - フィールド名が不正な場合、その名前のフィールドが既に存在するか、要素タイプがサポートされていない場合。
        UnsupportedOperationException - このRealmObjectSchemaが不変の場合。
      • deleteField

        public abstract RealmObjectSchema removeField​(String fieldName)
        クラスからフィールドを削除します。
        パラメーター:
        fieldName - 削除するフィールド名。
        次の値を返します。
        更新された スキーマ 。
        次の例外がスローされます。
        IllegalArgumentException - フィールド名が存在しない場合。
        UnsupportedOperationException - このRealmObjectSchemaが不変の場合、または同期された Realm の場合は 。
      • renameField

        public abstract RealmObjectSchema renameField​(String currentFieldName,
                                                      String newFieldName)
        フィールドの名前を、ある名前から別の名前に変更します。
        パラメーター:
        currentFieldName - 名前を変更するフィールド名。
        newFieldName - 新しいフィールド名。
        次の値を返します。
        更新された スキーマ 。
        次の例外がスローされます。
        IllegalArgumentException - フィールド名が存在しない場合、または新しいフィールド名がすでに存在する場合は 。
        UnsupportedOperationException - このRealmObjectSchemaが不変の場合、または同期された Realm の場合は 。
      • hasField

        公開ブール値 hasField ( string fieldName)
        クラスに指定された名前で定義されているフィールドがあるかどうかをテストします。
        パラメーター:
        fieldName - テストするフィールド名。
        次の値を返します。
        true フィールドが存在する場合は 、そうでない場合はfalseです。
      • addIndex

        public abstract RealmObjectSchema addIndex​(String fieldName)
        指定されたフィールドにインデックスを追加します。 これは、フィールドにIndexアノテーションを追加することと同じです。
        パラメーター:
        fieldName インデックスを追加する - フィールド。
        次の値を返します。
        更新された スキーマ 。
        次の例外がスローされます。
        IllegalArgumentException - フィールド名が存在しない場合、フィールドはインデックスを作成できない、またはすでにインデックスが定義されている場合。
        UnsupportedOperationException - このRealmObjectSchemaが不変の場合。
      • hasIndex

        公開ブール値 hasIndex ( string fieldName)
        特定のフィールドにインデックスが定義されているかどうかを確認します。
        パラメーター:
        fieldName - 確認する既存のフィールド名。
        次の値を返します。
        true フィールドがインデックス付きの場合は、 false 、それ以外の場合は になります。
        次の例外がスローされます。
        IllegalArgumentException - フィールド名が存在しない場合。
        以下も参照してください。
        Index
      • deleteIndex

        public abstract RealmObjectSchema removeIndex​(String fieldName)
        指定されたフィールドからインデックスを削除します。 これは、 フィールドの@Index注釈を削除するのと同じです。
        パラメーター:
        fieldName - フィールドからインデックスを削除します。
        次の値を返します。
        更新された スキーマ 。
        次の例外がスローされます。
        IllegalArgumentException - フィールド名が存在しない場合、またはフィールドにインデックスがない場合。
        UnsupportedOperationException - このRealmObjectSchemaが不変であるか、同期された Realm である場合。
      • addPrimaryKey

        public abstract RealmObjectSchema addPrimaryKey​(String fieldName)
        指定されたフィールドにプライマリキーを追加します。 これは、 フィールドにPrimaryKeyアノテーションを追加するのと同じです。 さらに、これにより フィールドにもIndexアノテーションが暗黙的に追加されます。
        パラメーター:
        fieldName - フィールドを使用して、プライマリキーとして設定します。
        次の値を返します。
        更新された スキーマ 。
        次の例外がスローされます。
        IllegalArgumentException - フィールド名が存在しない場合、そのフィールドはプライマリキーになることができず、またはすでにプライマリキーが定義されている。
        UnsupportedOperationException - このRealmObjectSchemaが不変であるか、同期された Realm である場合。
      • deletePrimaryKey

        public abstract RealmObjectSchema removePrimaryKey()
        このクラスからプライマリキーを削除します。 これは、クラスからPrimaryKeyアノテーションを削除するのと同じです。 さらに、これにより フィールドからIndex注釈も暗黙的に削除されます。
        次の値を返します。
        更新された スキーマ 。
        次の例外がスローされます。
        IllegalArgumentException - クラスにプライマリキーが定義されていない場合。
        UnsupportedOperationException - このRealmObjectSchemaが不変であるか、同期された Realm である場合。
      • setRequired

        public abstract RealmObjectSchema setRequired​(String fieldName,
                                                      boolean required)
        フィールドを 必須 に設定します。つまり、 null値を保持できないフィールドです。 これは、ボックス型とそのプリミティブ バリアント(例: Integerからint )を切り替えることと同じです。

        指定されたフィールドの型が値のリスト( RealmObjectではない)の場合、指定された null 可能性はその要素にのみ影響し、フィールド自体には影響しません。 値リスト自体は常に null 以外です。

        パラメーター:
        fieldName - クラス内のフィールドの名前。
        required - フィールドが必須の場合はtrue 、そうでない場合はfalse
        次の値を返します。
        更新された スキーマ 。
        次の例外がスローされます。
        IllegalArgumentException - フィールド名が存在しない場合は、 でRequiredアノテーションを使用することはできません。または、フィールドがすでに必須として設定されている。
        UnsupportedOperationException - このRealmObjectSchemaが不変の場合。
        以下も参照してください。
        Required
      • setNullable

        public abstract RealmObjectSchema setNullable​(String fieldName,
                                                      boolean nullable)
        フィールドを nullable に設定します。つまり、 null値を保持できる必要があります。 これは、プリミティブ型とそのボックス化バリアント(例: intからInteger )を切り替えることと同じです。

        指定されたフィールドの型が値のリスト( RealmObjectではない)の場合、指定された null 可能性はその要素にのみ影響し、フィールド自体には影響しません。 値リスト自体は常に null 以外です。

        パラメーター:
        fieldName - クラス内のフィールドの名前。
        nullable - フィールドが null 可能である場合はtrue 、それ以外の場合はfalse
        次の値を返します。
        更新された スキーマ 。
        次の例外がスローされます。
        IllegalArgumentException - フィールド名が存在しない場合、 または を null 可能として設定できません。
        UnsupportedOperationException - このRealmObjectSchemaが不変の場合。
      • isRequired

        公開ブール値 isRequired( string fieldName)
        特定のフィールドが必須であるかどうか、つまり、 null値を含めることができないかどうかを確認します。
        パラメーター:
        fieldName - フィールドを確認します。
        次の値を返します。
        true 必要な場合は 、それ以外の場合はfalseです。
        次の例外がスローされます。
        IllegalArgumentException - フィールド名が存在しない場合。
        以下も参照してください。
        setRequired(String, boolean)
      • isNullable

        公開ブール値 isNullable ( string fieldName)
        特定のフィールドが null 可能かどうか、つまり、 null値を含めることができるかどうかを確認します。
        パラメーター:
        fieldName - フィールドを確認します。
        次の値を返します。
        true 必要な場合は 、それ以外の場合はfalseです。
        次の例外がスローされます。
        IllegalArgumentException - フィールド名が存在しない場合。
        以下も参照してください。
        setNullable(String, boolean)
      • isPrimaryKey

        公開ブール値 isPrimaryKey( string fieldName)
        特定のフィールドがプライマリキー フィールドであるかどうかを確認します。
        パラメーター:
        fieldName - フィールドを確認します。
        次の値を返します。
        true プライマリキー フィールドの場合は 、それ以外の場合はfalse
        次の例外がスローされます。
        IllegalArgumentException - フィールド名が存在しない場合。
        以下も参照してください。
        addPrimaryKey(String)
      • hasPrimaryKey

        公開ブール値 hasPrimaryKey()
        クラスにプライマリキーが定義されているかどうかを確認します。
        次の値を返します。
        true プライマリキーが定義されている場合は、 false 、そうでない場合は になります。
        以下も参照してください。
        PrimaryKey
      • getPrimaryKey

        public string getPrimaryKey()
        プライマリキー フィールドの名前を返します。
        次の値を返します。
        プライマリキー フィールドの名前。
        次の例外がスローされます。
        IllegalStateException - クラスにプライマリキーが定義されていない場合。
      • getFieldNames

        public Set<String> getFieldNames()
        このクラスのすべてのフィールドを返します。
        次の値を返します。
        このクラス内のすべてのフィールドのリスト。
      • transform

        public abstract RealmObjectSchema transform​(RealmObjectSchema.Function function)
        現在の クラスの各 RealmObject インスタンスに対して変換関数を実行します。 オブジェクトはDynamicRealmObjectとして表されます。

        オブジェクトが返される順序は保証されません。

        パラメーター:
        function - 変換関数。
        次の値を返します。
        このスキーマ。
        次の例外がスローされます。
        UnsupportedOperationException - このRealmObjectSchemaが不変の場合。
      • getFieldType

        public RealmFieldType getFieldType( string fieldName)
        このフィールドを表すために基礎となるストレージ エンジンによって使用される型を返します。
        パラメーター:
        fieldName - ターゲット フィールドの名前。
        次の値を返します。
        このフィールドを表すために Realm で使用される基礎の型。
      • is埋め込み

        公開ブール値 is埋め込み()
        このタイプのオブジェクトが「埋め込み」と見なされる場合は、 trueを返します。詳細については、 RealmClass.embedded()を参照してください。
        次の値を返します。
        true このタイプのオブジェクトが埋め込まれている場合は になります。 そうでない場合はfalse
      • set埋め込み

        public void setEmbedded​(boolean embedded)
        クラスを埋め込みかどうか変換します。

        次の不変数を満たす場合にのみ、クラスは埋め込みとしてマークできます。

        • クラスではプライマリキーの定義は許可されていません。
        • このタイプのすべての既存のオブジェクトには、それをすでに指している親オブジェクトが 1 つと正確に 1 つ必要です。 0 または 1 を超えるオブジェクトが、埋め込みマークとしてマークされるオブジェクトへの参照を持っている場合、 IllegalStateExceptionがスローされます。
        次の例外がスローされます。
        IllegalStateException - 埋め込みオブジェクトの不変数の一部を中断したためにクラスを変換できなかった場合。
        以下も参照してください。
        RealmClass.embedded()