클래스 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)
이 필드를 나타내기 위해 기본 storage engine에서 사용하는 유형을 반환합니다.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)
필드를 null 허용으로 설정합니다(즉,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
이거나 빈 문자열이거나 길이가 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
- 추가할 필드 유형입니다. SeeRealmObject
for the full list.attributes
- 이 필드에 대한 속성 세트입니다.- 반환합니다:
- 업데이트된 스키마.
- 예외 처리:
IllegalArgumentException
- 유형이 지원되지 않는 경우, 필드 이름이 잘못되었거나 해당 이름을 가진 필드가 이미 존재하는 경우입니다.UnsupportedOperationException
- 이RealmObjectSchema
값이 변경되지 않거나FieldAttribute.PRIMARY_KEY
속성이 있는 필드를 동기화된 Realm의 스키마에 추가하는 경우
-
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 허용 여부는 올바른 클래스(예:
int.class
Integer.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 허용 여부는 올바른 클래스(예:
int.class
Integer.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 허용 여부는 올바른 클래스(예:
int.class
Integer.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
이(가) 변경되지 않는 경우.
-
removeField
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
public boolean hasField(String fieldName)
클래스에 지정된 이름으로 정의된 필드가 있는지 테스트합니다.- 매개변수:
fieldName
- 테스트할 필드 이름입니다.- 반환합니다:
true
필드가 존재하면false
를 반환합니다.
-
addIndex
public abstract RealmObjectSchema addIndex(String fieldName)
지정된 필드에 인덱스를 추가합니다. 이는 필드에Index
주석을 추가하는 것과 같습니다.- 매개변수:
fieldName
- 인덱스를 추가할 필드입니다.- 반환합니다:
- 업데이트된 스키마.
- 예외 처리:
IllegalArgumentException
- 필드 이름이 존재하지 않는 경우, 필드를 인덱싱할 수 없거나 이미 인덱스가 정의되어 있는 것입니다.UnsupportedOperationException
- 이RealmObjectSchema
이(가) 변경되지 않는 경우.
-
hasIndex
public boolean hasIndex(String fieldName)
지정된 필드에 정의된 인덱스가 있는지 확인합니다.- 매개변수:
fieldName
- 확인할 기존 필드 이름입니다.- 반환합니다:
true
필드가 인덱싱되면false
, 그렇지 않으면 입니다.- 예외 처리:
IllegalArgumentException
- 필드 이름이 존재하지 않는 경우.- 다음도 참조하세요.
Index
-
인덱스 제거
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의 경우
-
removePrimaryKey
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)
필드를 null 허용으로 설정합니다(즉,null
값을 보유할 수 있어야 함). 이는 기본 유형과 해당 박스형 변형(예:int
에서Integer
) 간에 전환하는 것과 같습니다.지정된 필드의 유형이 값 목록(
RealmObject
가 아닌 경우, 지정된 null 허용 여부는 필드 자체에는 영향을 주지 않고 해당 요소에만 영향을 미칩니다. 값 목록 자체는 항상 null을 허용하지 않습니다.- 매개변수:
fieldName
- 클래스의 필드 이름입니다.nullable
- 필드가 null을 허용해야 하면true
, 그렇지 않으면false
입니다.- 반환합니다:
- 업데이트된 스키마.
- 예외 처리:
IllegalArgumentException
- 필드 이름이 존재하지 않거나 null 허용으로 설정할 수 없는 경우.UnsupportedOperationException
- 이RealmObjectSchema
이(가) 변경되지 않는 경우.
-
isRequired
공개 부울 isRequired(문자열 fieldName)
지정된 필드가 필수인지, 즉null
값을 포함할 수 없는지 확인합니다.- 매개변수:
fieldName
- 확인할 필드입니다.- 반환합니다:
true
필요하면false
, 그렇지 않으면 .- 예외 처리:
IllegalArgumentException
- 필드 이름이 존재하지 않는 경우.- 다음도 참조하세요.
setRequired(String, boolean)
-
isNullable
공개 부울 isNullable(문자열 fieldName)
지정된 필드가 null을 허용하는지, 즉null
값을 포함할 수 있는지 확인합니다.- 매개변수:
fieldName
- 확인할 필드입니다.- 반환합니다:
true
필요하면false
, 그렇지 않으면 .- 예외 처리:
IllegalArgumentException
- 필드 이름이 존재하지 않는 경우.- 다음도 참조하세요.
setNullable(String, boolean)
-
isPrimaryKey
public boolean isPrimaryKey(String fieldName)
지정된 필드가 기본 키 필드인지 확인합니다.- 매개변수:
fieldName
- 확인할 필드입니다.- 반환합니다:
true
기본 키 필드인 경우 그렇지 않으면false
를 반환합니다.- 예외 처리:
IllegalArgumentException
- 필드 이름이 존재하지 않는 경우.- 다음도 참조하세요.
addPrimaryKey(String)
-
hasPrimaryKey
공개 부울 hasPrimaryKey()
클래스에 기본 키가 정의되어 있는지 확인합니다.- 반환합니다:
true
기본 키가 정의되어 있으면false
, 그렇지 않으면- 다음도 참조하세요.
PrimaryKey
-
getPrimaryKey
public String getPrimaryKey()
기본 키 필드의 이름을 반환합니다.- 반환합니다:
- 기본 키 필드의 이름입니다.
- 예외 처리:
IllegalStateException
- 클래스에 기본 키가 정의되어 있지 않은 경우.
-
getFieldNames
public Set<String> getFieldNames()
이 클래스의 모든 필드를 반환합니다.- 반환합니다:
- 이 클래스에 있는 모든 필드의 목록입니다.
-
변환
public abstract RealmObjectSchema transform(RealmObjectSchema.Function function)
현재 클래스의 각 RealmObject 인스턴스에 대해 변환 함수를 실행합니다. 객체는DynamicRealmObject
로 표시됩니다.객체가 반환되는 순서가 보장되지는 않습니다.
- 매개변수:
function
- 변환 함수.- 반환합니다:
- 이 스키마.
- 예외 처리:
UnsupportedOperationException
- 이RealmObjectSchema
이(가) 변경되지 않는 경우.
-
getFieldType
public RealmFieldType getFieldType(String fieldName)
이 필드를 나타내기 위해 기본 storage engine에서 사용하는 유형을 반환합니다.- 매개변수:
fieldName
- 대상 필드의 이름입니다.- 반환합니다:
- Realm에서 이 필드를 나타내는 데 사용하는 기본 유형입니다.
-
isEmbedded
공개 부울 isEmbedded()
이 유형의 객체가 '포함된' 것으로 간주되면true
을 반환합니다. 자세한 내용은RealmClass.embedded()
를 참조하세요.- 반환합니다:
true
이 유형의 객체가 포함된 경우. 그렇지 않은 경우false
.
-
setEmbedded
public void setEmbedded(boolean embedded)
클래스를 포함할지 여부를 변환합니다.클래스는 다음 불변성이 충족되는 경우에만 포함된 것으로 표시될 수 있습니다.
- 클래스에는 기본 키가 정의되어 있을 수 없습니다.
-
이 유형의 모든 기존 객체에는 이미 해당 상위 객체를 가리키는 정확히 하나의 상위 객체가 있어야 합니다. 0개 또는 2개 이상의 객체에 표시되는 것으로 표시될 객체에 대한 참고가 포함된 경우
IllegalStateException
가 발생합니다.
- 예외 처리:
IllegalStateException
- 일부 내장된 객체 불변성을 깨트려 클래스를 변환할 수 없는 경우.- 다음도 참조하세요.
RealmClass.embedded()
-
-