/** * 2011 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.service; import com.foxykeep.datadroid.exception.CustomRequestException; import com.foxykeep.datadroid.requestmanager.Request; import com.foxykeep.datadroid.service.RequestService; import com.foxykeep.datadroidpoc.data.exception.MyCustomRequestException; import com.foxykeep.datadroidpoc.data.operation.AuthenticationOperation; import com.foxykeep.datadroidpoc.data.operation.CityList2Operation; import com.foxykeep.datadroidpoc.data.operation.CityListOperation; import com.foxykeep.datadroidpoc.data.operation.CrudSyncPhoneAddEditOperation; import com.foxykeep.datadroidpoc.data.operation.CrudSyncPhoneDeleteOperation; import com.foxykeep.datadroidpoc.data.operation.CrudSyncPhoneListOperation; import com.foxykeep.datadroidpoc.data.operation.CustomRequestExceptionOperation; import com.foxykeep.datadroidpoc.data.operation.PersonListOperation; import com.foxykeep.datadroidpoc.data.operation.RequestTypesOperation; import com.foxykeep.datadroidpoc.data.operation.RssFeedOperation; import com.foxykeep.datadroidpoc.data.requestmanager.PoCRequestFactory; import com.foxykeep.datadroidpoc.data.requestmanager.PoCRequestManager; import android.content.Intent; import android.os.Bundle; /** * This class is called by the {@link PoCRequestManager} through the {@link Intent} system. * * @author Foxykeep */ public final class PoCRequestService extends RequestService { @Override protected int getMaximumNumberOfThreads() { return 3; } @Override public Operation getOperationForType(int requestType) { switch (requestType) { case PoCRequestFactory.REQUEST_TYPE_PERSON_LIST: return new PersonListOperation(); case PoCRequestFactory.REQUEST_TYPE_CITY_LIST: return new CityListOperation(); case PoCRequestFactory.REQUEST_TYPE_CITY_LIST_2: return new CityList2Operation(); case PoCRequestFactory.REQUEST_TYPE_REQUEST_TYPES: return new RequestTypesOperation(); case PoCRequestFactory.REQUEST_TYPE_AUTHENTICATION: return new AuthenticationOperation(); case PoCRequestFactory.REQUEST_TYPE_CUSTOM_REQUEST_EXCEPTION: return new CustomRequestExceptionOperation(); case PoCRequestFactory.REQUEST_TYPE_CRUD_SYNC_PHONE_LIST: return new CrudSyncPhoneListOperation(); case PoCRequestFactory.REQUEST_TYPE_CRUD_SYNC_PHONE_DELETE: return new CrudSyncPhoneDeleteOperation(); case PoCRequestFactory.REQUEST_TYPE_CRUD_SYNC_PHONE_ADD: case PoCRequestFactory.REQUEST_TYPE_CRUD_SYNC_PHONE_EDIT: return new CrudSyncPhoneAddEditOperation(); case PoCRequestFactory.REQUEST_TYPE_RSS_FEED: return new RssFeedOperation(); } return null; } @Override protected Bundle onCustomRequestException(Request request, CustomRequestException exception) { if (exception instanceof MyCustomRequestException) { Bundle bundle = new Bundle(); bundle.putString(PoCRequestFactory.BUNDLE_EXTRA_ERROR_MESSAGE, "MyCustomRequestException thrown."); return bundle; } return super.onCustomRequestException(request, exception); } }