Android Open Source - android-http Base Class Loader






From Project

Back to project page android-http.

License

The source code is released under:

Apache License

If you think the Android project android-http listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.markom.android.http.loader;
/*from w  w w  . j  a  va 2 s.  c  om*/
import android.content.Context;

import com.google.gson.Gson;
import com.markom.android.http.exceptions.GsonParsingException;
import com.markom.android.http.model.ServiceResponse;
import com.markom.android.http.parser.GSONParser;

/**
 * Extends {@link BaseGsonLoader} and enables parsing an plain object data from json by providing {@link Class} of
 * parsed element. By default {@link BaseGsonLoader#parseServiceResponse(String)} methods try's to parse received
 * response with {@link GSONParser} immediately. In order to parse objects from custom json schema (example: meta,
 * pagination, data...), create custom {@link ServiceResponse} class and override this class to implement your own
 * parsing logic.
 * <p>
 * Example:
 * <p>
 * 
 * <pre>
 * public class ExampleActivity extends FragmentActivity implements LoaderCallbacks&#60;LoaderResponse&#60;Person&#62;&#62; {
 * 
 *     &#064;Override
 *     public Loader&#60;LoaderResponse&#60;Person&#62;&#62; onCreateLoader(int id, Bundle bundle) {
 *         BaseClassLoader loader = new BaseClassLoader(this, "www.example.com", Person.class);
 *         // additional loader HTTP setup like request parameters, http method etc.
 *         return loader;
 *     }
 *     
 *     &#064;Override
 *     public void onLoadFinished(Loader&#60;LoaderResponse&#60;Person&#62;&#62; loader, LoaderResponse&#60;Person&#62; response) {
 *         if (response.isSuccess()) {
 *            Person person = response.getServiceResponse().getData();
 *            // Handle succes response
 *         } else {
 *            // Handle failure response
 *         }
 *     }
 *     
 *     &#064;Override
 *     public void onLoaderReset(Loader&#60;LoaderResponse&#60;Person&#62;&#62; loader) {
 *     }
 *     
 * });
 * </pre>
 * 
 * @param <T> generic type of data encapsulated by {@link LoaderResponse}.
 * 
 * @author Marko Milos
 */
public class BaseClassLoader<T> extends BaseGsonLoader<T> {

  /**
   * {@link Class} instance of object to be parsed. Needed by {@link Gson} in order to do parse.
   */
  protected Class<T> clazz;

  /**
   * Creates new instance of {@link BaseClassLoader} that is going to execute HTTP GET method with no url parameters.
   * Use set methods provided by this class to customize http request.
   * 
   * @param context used by loader.
   * @param url for HTTP request.
   * @param clazz {@link Class} instance of object to be parsed. Needed by {@link Gson} in oreder to do parse.
   */
  public BaseClassLoader(Context context, String url, Class<T> clazz) {
    super(context, url);
    this.clazz = clazz;
  }

  @Override
  protected ServiceResponse<T> parseServiceResponse(String response) throws GsonParsingException {
    T data = GSONParser.createObjectFromResponse(clazz, response);

    ServiceResponse<T> serviceResponse = new ServiceResponse<T>();
    serviceResponse.setData(data);
    return serviceResponse;
  }

}




Java Source Code List

com.example.loopj.ExampleUsage.java
com.example.loopj.TwitterRestClientUsage.java
com.example.loopj.TwitterRestClient.java
com.example.markom.CustomCollectionLoaderActivity.java
com.example.markom.CustomObjectLoaderActivity.java
com.example.markom.ExampleHandlersActivity.java
com.example.markom.MainActivity.java
com.example.markom.RawResponseLoaderActivty.java
com.example.markom.TestUrls.java
com.example.markom.http.handler.CustomClassHandler.java
com.example.markom.http.handler.CustomGenericHandler.java
com.example.markom.http.loader.CustomClassLoader.java
com.example.markom.http.loader.CustomGenericLoader.java
com.example.markom.http.schema.CustomServiceResponse.java
com.example.markom.http.schema.Meta.java
com.example.markom.http.schema.Pagination.java
com.example.markom.model.Person.java
com.loopj.android.http.AsyncHttpClient.java
com.loopj.android.http.AsyncHttpRequest.java
com.loopj.android.http.AsyncHttpResponseHandler.java
com.loopj.android.http.BinaryHttpResponseHandler.java
com.loopj.android.http.JsonHttpResponseHandler.java
com.loopj.android.http.PersistentCookieStore.java
com.loopj.android.http.RequestParams.java
com.loopj.android.http.RetryHandler.java
com.loopj.android.http.SerializableCookie.java
com.loopj.android.http.SimpleMultipartEntity.java
com.loopj.android.http.SyncHttpClient.java
com.markom.android.http.exceptions.GsonParsingException.java
com.markom.android.http.exceptions.ParsingNotImplementedException.java
com.markom.android.http.handler.BaseClassHandler.java
com.markom.android.http.handler.BaseGenericHandler.java
com.markom.android.http.handler.BaseGsonHandler.java
com.markom.android.http.loader.BaseClassLoader.java
com.markom.android.http.loader.BaseGenericLoader.java
com.markom.android.http.loader.BaseGsonLoader.java
com.markom.android.http.loader.LoaderResponse.java
com.markom.android.http.loader.RawResponseLoader.java
com.markom.android.http.model.HttpMethod.java
com.markom.android.http.model.ServiceResponse.java
com.markom.android.http.parser.GSONParser.java