android - Migrate realm field of type double to new sub-object with values -
i have user object right has bunch of values in it, saved doubles. format of our api json changing include 2 values each field. have created value object (which extends realmobject) , contains 2 values.
so in user object want following
//current way private double balance; //want migrate private value balance; the value object looks this:
private class value extends realmobject { private integer value; private string formattedvalue; //getters/setters } my question is, how can express change in realmmigration?
this have far based on this: (change datatype of realm field - java)
schema.get("user") .addfield("balance_tmp", value.class) .transform(new realmobjectschema.function() { @override public void apply(dynamicrealmobject obj) { //what goes here? how can access value.class , call setvalue()? } }) .removefield("balance") .renamefield("balance_tmp", "balance"); is possible? or should resigned fact data assigned fields change lost?
something should work:
realmobjectschema valueschema = schema.create("value") .addfield("value", integer.class) .addfield("formattedvalue", string.class); schema.get("user") .addrealmobjectfield("balance_tmp", valueschema) .transform(new realmobjectschema.function() { @override public void apply(dynamicrealmobject obj) { int balance = obj.getint("balance"); dynamicrealmobject valueobj = obj.getobject("balance_tmp"); valueobj.setint("value", balance); valueobj.setstring("formattedvalue", format(balance)); } }) .removefield("balance") .renamefield("balance_tmp", "balance");
Comments
Post a Comment