/** * 2012 Foxykeep (http://datadroid.foxykeep.com) * <p> * Licensed under the Beerware License : <br /> * As long as you retain this notice you can do whatever you want with this stuff. If we meet some * day, and you think this stuff is worth it, you can buy me a beer in return */ package com.foxykeep.datadroidpoc.data.operation; import com.foxykeep.datadroid.exception.ConnectionException; import com.foxykeep.datadroid.exception.CustomRequestException; import com.foxykeep.datadroid.exception.DataException; import com.foxykeep.datadroid.network.NetworkConnection; import com.foxykeep.datadroid.network.NetworkConnection.ConnectionResult; import com.foxykeep.datadroid.requestmanager.Request; import com.foxykeep.datadroid.service.RequestService.Operation; import com.foxykeep.datadroidpoc.config.WSConfig; import com.foxykeep.datadroidpoc.data.exception.MyCustomRequestException; import com.foxykeep.datadroidpoc.data.factory.CityListJsonFactory; import android.content.Context; import android.os.Bundle; /** * Sample WS call throwing a {@link CustomRequestException}. * <p> * Check {@link com.foxykeep.datadroidpoc.data.service.PoCRequestService#onCustomRequestException(Request, CustomRequestException)} to see how to * manage the thrown exception. */ public class CustomRequestExceptionOperation implements Operation { public static final String PARAM_WITH_EXCEPTION = "com.foxykeep.datadroidpoc.extra.withException"; @Override public Bundle execute(Context context, Request request) throws ConnectionException, DataException, CustomRequestException { boolean withException = request.getBoolean(PARAM_WITH_EXCEPTION); if (withException) { throw new MyCustomRequestException(); } NetworkConnection networkConnection = new NetworkConnection(context, WSConfig.WS_CITY_LIST_2_URL); ConnectionResult result = networkConnection.execute(); return CityListJsonFactory.parseResult(result.body); } }