blob: f1319c7cb270607d20093dbdd62994550bd64314 [file] [log] [blame]
package autotest.moblab.rpc;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONBoolean;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.json.client.JSONValue;
/**
* The network information RPC entity.
*/
public class NetworkInfo extends JsonRpcEntity {
public static final String JSON_FIELD_IS_CONNECTED = "is_connected";
public static final String JSON_FIELD_SERVER_IPS = "server_ips";
private String[] serverIps;
private boolean connectedToGoogle;
public NetworkInfo() {
this(new String[0], false);
}
public NetworkInfo(String[] serverIps, boolean connectedToGoogle) {
reset();
if (serverIps != null) {
this.serverIps = serverIps;
}
this.connectedToGoogle = connectedToGoogle;
}
public String[] getServerIps() {
return serverIps;
}
public boolean isConnectedToGoogle() {
return connectedToGoogle;
}
private void reset() {
serverIps = new String[0];
connectedToGoogle = false;
}
@Override
public void fromJson(JSONObject object) {
reset();
if (object != null) {
JSONValue serverIpsObject = object.get(JSON_FIELD_SERVER_IPS);
if (serverIpsObject != null) {
JSONArray serverIpsArray = serverIpsObject.isArray();
serverIps = new String[serverIpsArray.size()];
for (int i = 0; i < serverIps.length; i++) {
serverIps[i] = serverIpsArray.get(i).isString().stringValue();
}
} else {
serverIps = new String[0];
}
JSONValue connectedObject = object.get(JSON_FIELD_IS_CONNECTED);
if (connectedObject != null) {
connectedToGoogle = connectedObject.isBoolean().booleanValue();
}
}
}
@Override
public JSONObject toJson() {
JSONObject object = new JSONObject();
if (serverIps != null) {
JSONArray serverIpsArray = new JSONArray();
for (int index = 0; index < serverIps.length; index++) {
serverIpsArray.set(index, new JSONString(serverIps[index]));
}
object.put(JSON_FIELD_SERVER_IPS, serverIpsArray);
}
object.put(JSON_FIELD_IS_CONNECTED, JSONBoolean.getInstance(connectedToGoogle));
return object;
}
}