package no.nordicsemi.puckcentral.models; import org.droidparts.annotation.sql.Column; import org.droidparts.annotation.sql.Table; import org.droidparts.model.Entity; import org.json.JSONException; import org.json.JSONObject; import no.nordicsemi.puckcentral.actuators.Actuator; @Table public class Action extends Entity { @Column private Integer actuatorId; @Column private String arguments; public Action() {} public Action(int actuatorId, String arguments) { this.actuatorId = actuatorId; this.arguments = arguments; } public Integer getActuatorId() { return actuatorId; } public Actuator getActuator() { return Actuator.getActuatorForId(actuatorId); } public void setActuatorId(Integer actuatorId) { this.actuatorId = actuatorId; } public String getArguments() { return arguments; } public void setArguments(String arguments) { this.arguments = arguments; } public String describeArguments() { return getActuator().describeArguments(arguments); } public String describeActuator() { return getActuator().describeActuator(); } public static String jsonStringBuilder(Object... keyVals) { if (keyVals.length % 2 == 1) { throw new IllegalArgumentException("Arguments must be a multiple of two."); } JSONObject jsonObject = new JSONObject(); for (int i=0; i<keyVals.length; i += 2) { try { jsonObject.put(String.valueOf(keyVals[i]), JSONObject.wrap(keyVals[i+1])); } catch (JSONException e) { e.printStackTrace(); } } return jsonObject.toString(); } }