package com.uservoice.uservoicesdk.model; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.List; public class CustomField extends BaseModel { private String name; private List<String> predefinedValues; private boolean required; @Override public void load(JSONObject object) throws JSONException { super.load(object); name = getString(object, "name"); required = !object.getBoolean("allow_blank"); predefinedValues = new ArrayList<String>(); if (object.has("possible_values")) { JSONArray values = object.getJSONArray("possible_values"); for (int i = 0; i < values.length(); i++) { JSONObject value = values.getJSONObject(i); predefinedValues.add(getString(value, "value")); } } } @Override public void save(JSONObject object) throws JSONException { super.save(object); object.put("name", name); object.put("allow_blank", !required); JSONArray jsonPredefinedValues = new JSONArray(); for (String value : predefinedValues) { JSONObject predefinedValue = new JSONObject(); predefinedValue.put("value", value); jsonPredefinedValues.put(predefinedValue); } object.put("possible_values", jsonPredefinedValues); } public boolean isRequired() { return required; } public boolean isPredefined() { return predefinedValues.size() > 0; } public List<String> getPredefinedValues() { return predefinedValues; } public String getName() { return name; } }