/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.gettingmobile.google.reader.rest; import com.gettingmobile.rest.AbstractRequest; import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.client.methods.HttpUriRequest; import java.net.URI; import java.net.URISyntaxException; /** * * @author sven.wiegand */ public abstract class ReaderRequest<R extends HttpRequestBase, T> extends AbstractRequest<T> { protected static final String BASE_URI = "https://www.google.com/reader"; protected static final int MAX_URI_LENGTH = 2048; private final URI uri; private HttpUriRequest request = null; protected ReaderRequest(String relativeUri) throws URISyntaxException { super(); uri = new URI(BASE_URI + relativeUri); } protected URI getUri() { return uri; } protected abstract R createRequest(); protected void initRequest(R request) { request.setURI(uri); request.setHeader("Accept-Encoding", "gzip"); } @Override public HttpUriRequest getRequest() { if (request == null) { final R r = createRequest(); initRequest(r); request = r; } return request; } @Override public String toString() { return uri.toString(); } }