package edu.mit.mitmobile2.shuttles;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import edu.mit.mitmobile2.Global;
import edu.mit.mitmobile2.JSONParser;
import edu.mit.mitmobile2.objs.RouteItem.Stops;
public class StopsParser extends JSONParser {
public String ROUTES_BASE_URL = "http://" + Global.getMobileWebDomain() + "/api/shuttles/";
@Override
public String getBaseUrl() {
return ROUTES_BASE_URL;
}
public StopsParser()
{
items = new ArrayList<Stops>();
}
/****************************************/
@SuppressWarnings("unchecked")
@Override
protected
void parseObj(){
try {
JSONArray jStops = jItem.optJSONArray("stops");
int now = jItem.getInt("now");
if (jStops!=null) {
for(int s=0; s<jStops.length(); s++)
{
JSONObject jStop = jStops.getJSONObject(s);
Stops si = new Stops();
si.id = jStop.getString("id");
//si.title = jStop.getString("title"); // no such?
si.lat = jStop.getString("lat");
si.lon = jStop.getString("lon");
si.next = jStop.getInt("next"); // TODO long?
si.now = now;
//si.path = jStop.optJSONArray("path");
si.direction = jStop.optString("direction");
si.route_id = jStop.optString("route_id");
si.gps = jStop.getBoolean("gps");
// predicted delays
JSONArray predictions = jStop.optJSONArray("predictions");
if (predictions!=null) {
int delay;
for(int p=0; p<predictions.length(); p++)
{
delay = predictions.getInt(p);
si.predictions.add(delay);
}
}
// FIXME add Array<Array>
//r.stops.add(si);
items.add(si);
}
}
//JSONArray jCoords = jItem.optJSONArray("coordinate");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}