1package autotest.moblab.rpc;
2
3import com.google.gwt.json.client.JSONBoolean;
4import com.google.gwt.json.client.JSONObject;
5import com.google.gwt.json.client.JSONString;
6import com.google.gwt.json.client.JSONValue;
7
8/**
9 * Moblab RPC operation status.
10 */
11public class OperationStatus extends JsonRpcEntity {
12  public static final String JSON_FIELD_STATUS_OK = "status_ok";
13  public static final String JSON_FIELD_STATUS_DETAILS = "status_details";
14
15  private boolean ok;
16  private String details;
17
18  public OperationStatus() {
19    this(true);
20  }
21
22  public OperationStatus(boolean valid) {
23    this(valid, null);
24  }
25
26  public OperationStatus(boolean valid, String details) {
27    this.ok = valid;
28    this.details = details;
29  }
30
31  public boolean isOk() {
32    return ok;
33  }
34
35  public String getDetails() {
36    return details;
37  }
38
39  @Override
40  public void fromJson(JSONObject object) {
41    JSONValue value = object.get(OperationStatus.JSON_FIELD_STATUS_OK);
42    ok = value != null && value.isBoolean() != null && value.isBoolean().booleanValue();
43    details = null;
44    value = object.get(OperationStatus.JSON_FIELD_STATUS_DETAILS);
45    if (value != null && value.isString() != null) {
46      details = value.isString().stringValue();
47    }
48  }
49
50  @Override
51  public JSONObject toJson() {
52    JSONObject object = new JSONObject();
53    object.put(JSON_FIELD_STATUS_OK, JSONBoolean.getInstance(ok));
54    if (details != null) {
55      object.put(JSON_FIELD_STATUS_DETAILS, new JSONString(details));
56    }
57    return object;
58  }
59}
60