@Override protected Void executeImpl(FileDescriptor request) { StringBuilder builder = new StringBuilder(); BufferedReader br = null; try { br = new BufferedReader(new FileReader(request)); String line; while ((line = br.readLine()) != null) { builder.append(line); builder.append("\n"); } br.close(); Json.JsonObject json = Json.createFromString(builder.toString()).asObject(); loadDeviceAliases(json.asArray("device_aliases")); restoreProfiles(json.asArray("profiles")); } catch (IOException e) { if (br != null) { try { br.close(); } catch (IOException e1) { } } throw new RuntimeException(e); } catch (JSONException e) { throw new RuntimeException(e); } return null; }
private void loadDeviceAliases(Json.JsonArray device_aliases) { for (int i = 0; i < device_aliases.size(); i++) { Json.JsonObject device = device_aliases.asObject(i); using(Model.class) .execute( DeviceAliasAdd.class, new P<String, DeviceAlias>( device.asString("mac"), new DeviceAlias(device.asString("alias"), device.value("icon", Integer.class)))); } }
private void restoreProfiles(Json.JsonArray profilesJson) { for (int i = 0; i < profilesJson.size(); i++) { Json.JsonObject profile = profilesJson.asObject(i); using(BandwidthProfileManager.class) .updateOrCreate( new BandwidthProfile( profile.asString("title"), profile.asString("description"), profile.value("out", Integer.class), profile.value("in", Integer.class))); } }