クラス RealmObjectSchema
- java.lang.Object
-
- io.realm.RealmObjectSchema
-
public abstract class RealmObjectSchema extends Object
指定された RealmObject クラスのスキーマを操作するためのクラス。 これにより、特定のクラスのフィールドを検査、追加、削除、または変更することができます。この
RealmObjectSchema
が不変のRealmSchema
から取得されている場合、このRealmObjectSchema
も不変になります。- 以下も参照してください。
RealmMigration
-
-
ネストされたクラスの概要
ネストされたクラス 修飾子と型 クラス 説明 static interface
RealmObjectSchema.Function
現在のクラスのすべてのオブジェクトを走査し、それぞれに関数を適用するときに使用される関数インターフェース。
-
メソッドの概要
すべてのメソッド インスタンス メソッド 抽象メソッド 具象メソッド 修飾子と型 方式 説明 abstract RealmObjectSchema
addField(String fieldName, Class<?> fieldType, FieldAttribute... attributes)
RealmObject クラスに新しい単純フィールドを追加します。abstract RealmObjectSchema
addIndex(String fieldName)
指定されたフィールドにインデックスを追加します。abstract RealmObjectSchema
addPrimaryKey(String fieldName)
指定されたフィールドにプライマリキーを追加します。abstract RealmObjectSchema
addRealmDictionaryField(String fieldName, RealmObjectSchema objectSchema)
他の Realm モデル クラスへの参照を持つRealmDictionary
を含む新しいフィールドを追加します。abstract RealmObjectSchema
addRealmDictionaryField(String fieldName, Class<?> primitiveType)
プリミティブ値を持つRealmDictionary
を参照する新しいフィールドを追加します。abstract RealmObjectSchema
addRealmListField(String fieldName, RealmObjectSchema objectSchema)
他の Realm モデル クラスへの参照を持つRealmList
を含む新しいフィールドを追加します。abstract RealmObjectSchema
addRealmListField(String fieldName, Class<?> primitiveType)
プリミティブ値を持つRealmList
を参照する新しいフィールドを追加します。abstract RealmObjectSchema
addRealmObjectField(String fieldName, RealmObjectSchema objectSchema)
別のRealmObject
を参照する新しいフィールドを追加します。abstract RealmObjectSchema
addRealmSetField(String fieldName, RealmObjectSchema objectSchema)
他の Realm モデル クラスへの参照を持つRealmSet
を含む新しいフィールドを追加します。abstract RealmObjectSchema
addRealmSetField(String fieldName, Class<?> primitiveType)
プリミティブ値を持つRealmSet
を参照する新しいフィールドを追加します。String
getClassName()
このスキーマによって表される RealmObject クラスの名前を返します。Set<String>
getFieldNames()
このクラスのすべてのフィールドを返します。RealmFieldType
getFieldType(String fieldName)
このフィールドを表すために基礎となるストレージ エンジンによって使用される型を返します。String
getPrimaryKey()
プライマリキー フィールドの名前を返します。boolean
hasField(String fieldName)
クラスに指定された名前で定義されているフィールドがあるかどうかをテストします。boolean
hasIndex(String fieldName)
特定のフィールドにインデックスが定義されているかどうかを確認します。boolean
hasPrimaryKey()
クラスにプライマリキーが定義されているかどうかを確認します。boolean
isEmbedded()
このタイプのオブジェクトが「埋め込み」と見なされる場合は、true
を返します。boolean
isNullable(String fieldName)
特定のフィールドが null 可能かどうか、つまり、null
値を含めることができるかどうかを確認します。boolean
isPrimaryKey(String fieldName)
特定のフィールドがプライマリキー フィールドであるかどうかを確認します。boolean
isRequired(String fieldName)
特定のフィールドが必須であるかどうか、つまり、null
値を含めることができないかどうかを確認します。abstract RealmObjectSchema
removeField(String fieldName)
クラスからフィールドを削除します。abstract RealmObjectSchema
removeIndex(String fieldName)
指定されたフィールドからインデックスを削除します。abstract RealmObjectSchema
removePrimaryKey()
このクラスからプライマリキーを削除します。abstract RealmObjectSchema
renameField(String currentFieldName, String newFieldName)
フィールドの名前を、ある名前から別の名前に変更します。abstract RealmObjectSchema
setClassName(String className)
この RealmObject クラスの新しい名前を設定します。void
setEmbedded(boolean embedded)
クラスを埋め込みかどうか変換します。abstract RealmObjectSchema
setNullable(String fieldName, boolean nullable)
フィールドを nullable に設定します。つまり、null
値を保持できる必要があります。abstract RealmObjectSchema
setRequired(String fieldName, boolean required)
フィールドを 必須 に設定します。つまり、null
値を保持できないフィールドです。abstract RealmObjectSchema
transform(RealmObjectSchema.Function function)
現在の クラスの各 RealmObject インスタンスに対して変換関数を実行します。
-
-
-
メソッドの詳細
-
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)
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)
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)
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()
-
-