package ca.uwaterloo.uwfoodservices;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import ca.uwaterloo.uwfoodservicesutility.MenuUtilities;
import ca.uwaterloo.uwfoodservicesutility.RestaurantMenuHolder;
public class ParseLocationData {
private String data = "data";
private String result = "result";
private String name = "Name";
private String location = "Location";
private String hours = "Hours";
private String response = "response";
private RestaurantObject[] location_objects;
private String[] details;
protected InitialiseSingleton init;
public ParseLocationData(Activity activity){
init = (InitialiseSingleton)activity.getApplication();
}
public void Parse(JSONObject json){
try {
JSONObject response_object = json.getJSONObject(response);
JSONObject data_array = response_object.getJSONObject(data);
JSONArray result_array = data_array.getJSONArray(result);
location_objects = new RestaurantObject[result_array.length()];
RestaurantMenuHolder menuHolder = RestaurantMenuHolder.getInstance();
for(int i=0; i < result_array.length(); i++){
JSONObject restaurant_details = result_array.getJSONObject(i);
String restaurant_name = MenuUtilities.checkName(restaurant_details.getString(name));
String location_name = restaurant_details.getString(location);
JSONObject hour_details = restaurant_details.getJSONObject(hours);
JSONArray result_array1 = hour_details.getJSONArray(result);
details = new String[result_array1.length()];
for(int j = 0; j < result_array1.length(); j++){
details[j] = result_array1.getString(j);
}
result_array = data_array.getJSONArray(result);
location_objects[i] = new RestaurantObject(i, restaurant_name, location_name, details);
for (int j = 0; j < menuHolder.getCount(); j++) {
if (menuHolder.getRestaurantMenu().get(j).getRestaurant().equals(restaurant_name)) {
menuHolder.getRestaurantMenu().get(j).setLocation(location_name);
}
}
}
init.initLocations(location_objects);
} catch (JSONException e) {
e.printStackTrace();
}
}
}