io.realm.RealmObjectSchema Java Examples
The following examples show how to use
io.realm.RealmObjectSchema.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: UserDataRealmMigration.java From OpenLibre with GNU General Public License v3.0 | 6 votes |
@Override public void migrate(DynamicRealm realm, long oldVersion, long newVersion) { // During a migration, a DynamicRealm is exposed. A DynamicRealm is an untyped variant of a normal Realm, but // with the same object creation and query capabilities. // A DynamicRealm uses Strings instead of Class references because the Classes might not even exist or have been // renamed. // Access the Realm schema in order to create, modify or delete classes and their fields. RealmSchema schema = realm.getSchema(); // Migrate from version 0 to version 1 if (oldVersion == 0) { oldVersion++; } // Migrate from version 1 to version 2 if (oldVersion == 1) { RealmObjectSchema bloodGlucoseDataSchema = schema.get("BloodGlucoseData"); bloodGlucoseDataSchema .addField("timezoneOffsetInMinutes", int.class) .transform(timezoneTransformFunction); //oldVersion++; } }
Example #2
Source File: RealmUtils.java From quill with MIT License | 6 votes |
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); }
Example #3
Source File: AWRealmMigration.java From alpha-wallet-android with MIT License | 5 votes |
@Override public void migrate(DynamicRealm realm, long oldVersion, long newVersion) { RealmSchema schema = realm.getSchema(); if (oldVersion == 4) { RealmObjectSchema realmTicker = schema.get("RealmTokenTicker"); if (!realmTicker.hasField("currencySymbol")) realmTicker.addField("currencySymbol", String.class); oldVersion++; } //Note: these version updates drop through; eg if oldVersion was 4, then the above code AND this code will execute if (oldVersion == 5) { RealmObjectSchema realmToken = schema.get("RealmToken"); if (!realmToken.hasField("lastTxTime")) realmToken.addField("lastTxTime", long.class); //add the last transaction update time, used to check tokenscript cached result validity oldVersion++; } //Version 6 if (oldVersion == 6) { schema.create("RealmCertificateData") .addField("instanceKey", String.class, FieldAttribute.PRIMARY_KEY) .addField("result", String.class) .addField("subject", String.class) .addField("keyName", String.class) .addField("keyType", String.class) .addField("issuer", String.class) .addField("certificateName", String.class) .addField("type", int.class); oldVersion++; } }
Example #4
Source File: Migration.java From talk-android with MIT License | 5 votes |
@Override public void migrate(DynamicRealm dynamicRealm, long oldVersion, long newVersion) { if (oldVersion == 0) { dynamicRealm.getSchema().get("Invitation").addField("email", String.class); oldVersion++; } if (oldVersion == 1) { dynamicRealm.getSchema().get("Message").addField("receiptorsStr", String.class); dynamicRealm.getSchema().get("Member").addField("service", String.class); dynamicRealm.getSchema().create("IdeaDraft") .addField("title", String.class) .addField("description", String.class); dynamicRealm.getSchema().rename("TeamInfo", "Team"); dynamicRealm.getSchema().get("Team").addField("source", String.class); dynamicRealm.getSchema().get("Team").addField("sourceId", String.class); dynamicRealm.getSchema().get("Team").addField("signCode", String.class); dynamicRealm.getSchema().get("Team").addField("inviteCode", String.class); dynamicRealm.getSchema().get("Team").addField("inviteUrl", String.class); dynamicRealm.getSchema().get("Team").addField("isQuit", boolean.class); dynamicRealm.getSchema().get("Team").addField("nonJoinable", boolean.class); dynamicRealm.getSchema().get("Team").addField("hasUnread", boolean.class); dynamicRealm.getSchema().get("Team").addField("unread", int.class); dynamicRealm.getSchema().get("Team").addPrimaryKey("_id"); RealmObjectSchema roomSchema = dynamicRealm.getSchema().get("Room"); dynamicRealm.getSchema().get("Notification").addRealmObjectField("room", roomSchema); RealmObjectSchema memberSchema = dynamicRealm.getSchema().get("Member"); dynamicRealm.getSchema().get("Notification").addRealmObjectField("member", memberSchema); RealmObjectSchema storySchema = dynamicRealm.getSchema().get("Story"); dynamicRealm.getSchema().get("Notification").addRealmObjectField("story", storySchema); oldVersion++; } }
Example #5
Source File: DatabaseManager.java From Easy_xkcd with Apache License 2.0 | 5 votes |
@Override public void migrate(DynamicRealm realm, long oldVersion, long newVersion) { RealmSchema schema = realm.getSchema(); RealmObjectSchema objectSchema = schema.get("RealmComic"); if (!objectSchema.hasField("altText")) { //Add the altText field which wasn't there in the old version! objectSchema.addField("altText", String.class); } }
Example #6
Source File: HtmlBuilder.java From realm-browser-android with MIT License | 5 votes |
public void showTableStructure(DynamicRealm dynamicRealm) { RealmObjectSchema realmObjectSchema = dynamicRealm.getSchema().get(simpleTableName); Set<String> fieldNames = realmObjectSchema.getFieldNames(); stringBuilder.append("<div class=\"content\">").append("<table class=\"dataTable\">") .append("<th>Column Name</th><th>Type</th>"); for (String fieldName : fieldNames) { RealmFieldType realmFieldType = realmObjectSchema.getFieldType(fieldName); stringBuilder.append("<tr>") .append("<td>").append(fieldName).append("</td>") .append("<td>").append(realmFieldType.name()).append("</td>") .append("</tr>"); } stringBuilder.append("</table></div>"); }
Example #7
Source File: GreenHubDbMigration.java From batteryhub with Apache License 2.0 | 4 votes |
@Override public void migrate(@NonNull DynamicRealm realm, long oldVersion, long newVersion) { RealmObjectSchema objectSchema; // DynamicRealm exposes an editable schema RealmSchema schema = realm.getSchema(); if (schema == null) return; try { if (oldVersion == 1) { objectSchema = schema.get("Sample"); if (objectSchema != null) { objectSchema.addField("version", int.class); oldVersion++; } } if (oldVersion == 2) { boolean migrated = true; objectSchema = schema.get("Device"); if (objectSchema != null) { objectSchema.removeField("serialNumber"); } else { migrated = false; } objectSchema = schema.get("Sample"); if (objectSchema != null) { objectSchema.addField("mDatabase", int.class); } else { migrated = false; } if (migrated) { oldVersion++; } } if (oldVersion == 3) { objectSchema = schema.get("BatteryDetails"); if (objectSchema != null) { objectSchema.addField("remainingCapacity", int.class); } oldVersion++; } if (oldVersion == 4) { schema.create("SensorDetails") .addField("fifoMaxEventCount", int.class) .addField("fifoReservedEventCount", int.class) .addField("highestDirectReportRateLevel", int.class) .addField("id", int.class) .addField("isAdditionalInfoSupported", boolean.class) .addField("isDynamicSensor", boolean.class) .addField("isWakeUpSensor", boolean.class) .addField("maxDelay", int.class) .addField("maximumRange", float.class) .addField("minDelay", int.class) .addField("name", String.class) .addField("power", float.class) .addField("reportingMode", int.class) .addField("resolution", float.class) .addField("stringType", String.class) .addField("codeType", int.class) .addField("vendor", String.class) .addField("version", int.class); objectSchema = schema.get("SensorDetails"); schema.get("Sample") .addRealmListField("sensorDetailsList", objectSchema); oldVersion++; } if (oldVersion == 5) { objectSchema = schema.get("SensorDetails"); if (objectSchema != null) { objectSchema .addField("frequencyOfUse", int.class) .addField("iniTimestamp", long.class) .addField("endTimestamp", long.class); } oldVersion++; } } catch (NullPointerException e) { LogUtils.logE(TAG, "Schema is null!"); e.printStackTrace(); } }