// Static methods public static void fetchAllCampaigns(final APIResponseHandler responseHandler) { APIClient.get( Constants.ENDPOINT_FEATURED_CAMPAIGNS, new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONArray responseArray) { super.onSuccess(statusCode, headers, responseArray); final Campaign[] campaigns = new Campaign[responseArray.length()]; for (int i = 0; i < responseArray.length(); ++i) { JSONObject responseObject; Campaign campaign; responseObject = JSONProcessor.jsonObjectFromArray(responseArray, i); campaign = campaignFromJSONObject(responseObject); campaigns[i] = campaign; } responseHandler.onCompletion(campaigns, null); } @Override public void onFailure( int statusCode, Header[] headers, String responseString, Throwable throwable) { super.onFailure(statusCode, headers, responseString, throwable); responseHandler.onCompletion((Campaign[]) null, throwable); } }); }