Android Open Source - ReadabilitySDK Base Command






From Project

Back to project page ReadabilitySDK.

License

The source code is released under:

MIT License

If you think the Android project ReadabilitySDK 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.idemidov.readability.command;
/*from   ww  w.j a  v  a  2  s.c om*/
import android.content.Context;
import android.util.Log;

import com.idemidov.readability.data.CommandResponse;
import com.idemidov.readability.exception.AuthorizationException;
import com.idemidov.readability.exception.BadRequestException;
import com.idemidov.readability.exception.ForbiddenException;
import com.idemidov.readability.exception.InternalErrorException;
import com.idemidov.readability.exception.NoConnectionException;
import com.idemidov.readability.exception.NotFoundException;
import com.idemidov.readability.parser.Parser;
import com.idemidov.readability.util.ErrorHandler;
import com.idemidov.readability.util.InternetAccessUtil;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.URISyntaxException;

import oauth.signpost.OAuthConsumer;
import oauth.signpost.exception.OAuthCommunicationException;
import oauth.signpost.exception.OAuthExpectationFailedException;
import oauth.signpost.exception.OAuthMessageSignerException;

/**
 * Created by Ilya on 25/02/14.
 */
@SuppressWarnings("serial")
public abstract class BaseCommand<T> implements Command<T> {

    protected final static String CONTENT_TYPE_NAME = "Content-Type";
    protected final static String CONTENT_TYPE_VALUE = "application/x-www-form-urlencoded";

    protected String TAG = getClass().getSimpleName();
    protected String ROOT_URL = "https://readability.com/api/rest/v1/";

    private OAuthConsumer consumer;

    public BaseCommand(OAuthConsumer consumer) {
        this.consumer = consumer;
    }

    @Override
    public CommandResponse<T> execute(Context context) throws NoConnectionException, IOException, JSONException, OAuthCommunicationException, OAuthExpectationFailedException, OAuthMessageSignerException, URISyntaxException, BadRequestException, AuthorizationException, ForbiddenException, NotFoundException, InternalErrorException {
      if (!InternetAccessUtil.hasConnection(context)) {
        throw new NoConnectionException();
      }
      
      Log.d(TAG, "=== REQUEST === : ".concat(getUrl()));

        HttpClient httpClient = new DefaultHttpClient();
        HttpUriRequest httpRequest = getHttpUriRequest();
        consumer.sign(httpRequest);
        HttpResponse response = httpClient.execute(httpRequest);
        Log.d(TAG, "=== STATUS CODE === : " + response.getStatusLine().getStatusCode());
        ErrorHandler.handleHttpCode(response.getStatusLine().getStatusCode());
        HttpEntity entity = response.getEntity();
        if (entity != null) {
            InputStream inStream = entity.getContent();
            String result = convertStreamToString(inStream);

            Log.d(TAG, "=== RESULT === : ".concat(result));

            inStream.close();
            return getParser() == null ? null : getParser().parse(result);
        }
        return null;
    }

    abstract Parser<T> getParser();

    abstract String getUrl();

    abstract HttpUriRequest getHttpUriRequest() throws UnsupportedEncodingException, JSONException, OAuthCommunicationException, OAuthExpectationFailedException, OAuthMessageSignerException, URISyntaxException;

    private static String convertStreamToString(InputStream is) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        return sb.toString();
    }
}




Java Source Code List

com.idemidov.readability.ApiClient.java
com.idemidov.readability.command.AddTagsToBookmarkCommand.java
com.idemidov.readability.command.AuthCommand.java
com.idemidov.readability.command.BaseCommand.java
com.idemidov.readability.command.Command.java
com.idemidov.readability.command.DeleteBookmarkByIdCommand.java
com.idemidov.readability.command.DeleteTagByIdCommand.java
com.idemidov.readability.command.DeleteTagFromBookmarkById.java
com.idemidov.readability.command.GetArticleByIdCommand.java
com.idemidov.readability.command.GetBookmarkByIdCommand.java
com.idemidov.readability.command.GetBookmarkTagsByIdCommand.java
com.idemidov.readability.command.GetBookmarksCommand.java
com.idemidov.readability.command.GetTagByIdCommand.java
com.idemidov.readability.command.GetTagsCommand.java
com.idemidov.readability.command.GetUserCurrentCommand.java
com.idemidov.readability.command.PostBookmarkCommand.java
com.idemidov.readability.command.UpdateBookmarkByIdCommand.java
com.idemidov.readability.command.params_builders.BasicParamsBuilder.java
com.idemidov.readability.command.params_builders.GetBookmarksParamsBuilder.java
com.idemidov.readability.command.params_builders.ParamsBuilder.java
com.idemidov.readability.command.params_builders.PostBookmarkParamsBuilder.java
com.idemidov.readability.command.params_builders.UpdateBookmarkByIdParamsBuilder.java
com.idemidov.readability.data.Article.java
com.idemidov.readability.data.BookmarkOrder.java
com.idemidov.readability.data.Bookmark.java
com.idemidov.readability.data.BookmarksRootResponse.java
com.idemidov.readability.data.CommandResponse.java
com.idemidov.readability.data.Conditions.java
com.idemidov.readability.data.Meta.java
com.idemidov.readability.data.Tag.java
com.idemidov.readability.data.User.java
com.idemidov.readability.exception.AuthorizationException.java
com.idemidov.readability.exception.BadRequestException.java
com.idemidov.readability.exception.ForbiddenException.java
com.idemidov.readability.exception.InternalErrorException.java
com.idemidov.readability.exception.NoConnectionException.java
com.idemidov.readability.exception.NotFoundException.java
com.idemidov.readability.parser.AuthParser.java
com.idemidov.readability.parser.BookmarksRootParser.java
com.idemidov.readability.parser.GetArticleByIdParser.java
com.idemidov.readability.parser.GetBookmarkByIdParser.java
com.idemidov.readability.parser.GetTagByIdParser.java
com.idemidov.readability.parser.GetTagsParser.java
com.idemidov.readability.parser.GetUserCurrentParser.java
com.idemidov.readability.parser.Parser.java
com.idemidov.readability.util.CommandExecutor.java
com.idemidov.readability.util.ErrorHandler.java
com.idemidov.readability.util.InternetAccessUtil.java
com.idemidov.readability.util.ParseUtil.java
com.idemidov.readability.util.ResultCode.java
com.idemidov.sample.readability.MainActivity.java