本文整理汇总了Java中io.realm.RealmObjectSchema.addField方法的典型用法代码示例。如果您正苦于以下问题:Java RealmObjectSchema.addField方法的具体用法?Java RealmObjectSchema.addField怎么用?Java RealmObjectSchema.addField使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类io.realm.RealmObjectSchema
的用法示例。
在下文中一共展示了RealmObjectSchema.addField方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: changeFieldType
import io.realm.RealmObjectSchema; //导入方法依赖的package包/类
private static void changeFieldType(RealmObjectSchema objectSchema, String fieldName,
Class newType, @Nullable FieldAttribute attribute,
Action3<DynamicRealmObject, String, String> transformation) {
String tempFieldName = fieldName + "_temp";
if (attribute != null) {
if (attribute == FieldAttribute.PRIMARY_KEY && objectSchema.hasPrimaryKey()) {
// remove existing primary key
objectSchema.removePrimaryKey();
}
objectSchema.addField(tempFieldName, newType, attribute);
} else {
objectSchema.addField(tempFieldName, newType);
}
objectSchema
.transform(obj -> {
transformation.call(obj, fieldName, tempFieldName);
})
.removeField(fieldName)
.renameField(tempFieldName, fieldName);
}
示例2: migrate
import io.realm.RealmObjectSchema; //导入方法依赖的package包/类
@Override
public void migrate(@NonNull final DynamicRealm realm, long oldVersion, long newVersion) {
Log.d(TAG, "Starting migration from " + oldVersion + " to " + newVersion);
// Migration from versions < 9 not supported, versions prior 9 were missing the
// contentHash for items
if(oldVersion < 9) {
throw new IllegalStateException("Migration from Schema < 9 not supported");
}
RealmSchema schema = realm.getSchema();
/*
9 -> 10
- Add primary key ID to TemporaryFeed
- Rename TemporaryFeed id to treeItemId
- add TemporaryFeed object for list and pager activities
*/
if(oldVersion == 9) {
realm.delete("TemporaryFeed");
final RealmObjectSchema temporaryFeedSchema = schema.get("TemporaryFeed");
if(temporaryFeedSchema == null)
throw new IllegalStateException("TemporaryFeed schema not found");
temporaryFeedSchema
.renameField(TemporaryFeed.ID, TemporaryFeed.TREE_ITEM_ID)
.addField(TemporaryFeed.ID, long.class, FieldAttribute.PRIMARY_KEY);
realm.createObject("TemporaryFeed", TemporaryFeed.LIST_ID);
realm.createObject("TemporaryFeed", TemporaryFeed.PAGER_ID);
oldVersion++;
}
/*
10 -> 11
- Make sure every item has updatedAt != null, set updatedAt = pubDate if not
*/
if(oldVersion == 10) {
for(DynamicRealmObject object: realm.where("Item").isNull(Item.UPDATED_AT).findAll()) {
object.setDate(Item.UPDATED_AT, object.getDate(Item.PUB_DATE));
}
oldVersion++;
}
/*
11 -> 12
- Add active property to Item
*/
if(oldVersion == 11) {
final RealmObjectSchema itemSchema = schema.get("Item");
if(itemSchema == null)
throw new IllegalStateException("Item schema not found");
itemSchema
.addField(Item.ACTIVE, boolean.class, FieldAttribute.INDEXED);
//noinspection UnusedAssignment
oldVersion++;
}
}