diff options
Diffstat (limited to 'src/com/google/wireless/gdata/client/QueryParams.java')
-rw-r--r-- | src/com/google/wireless/gdata/client/QueryParams.java | 240 |
1 files changed, 240 insertions, 0 deletions
diff --git a/src/com/google/wireless/gdata/client/QueryParams.java b/src/com/google/wireless/gdata/client/QueryParams.java new file mode 100644 index 0000000..30deff8 --- /dev/null +++ b/src/com/google/wireless/gdata/client/QueryParams.java @@ -0,0 +1,240 @@ +// Copyright 2007 The Android Open Source Project + +package com.google.wireless.gdata.client; + +/** + * Class for specifying parameters and constraints for a GData feed. + * These are used to modify the feed URL and add querystring parameters to the + * feed URL. + * + * Note that if an entry ID has been set, no other query params can be set. + * + * @see QueryParams#generateQueryUrl(String) + */ +// TODO: add support for projections? +// TODO: add support for categories? +public abstract class QueryParams { + + /** + * Param name constant for a search query. + */ + public static final String QUERY_PARAM = "q"; + + /** + * Param name constant for filtering by author. + */ + public static final String AUTHOR_PARAM = "author"; + + /** + * Param name constant for alternate representations of GData. + */ + public static final String ALT_PARAM = "alt"; + public static final String ALT_RSS = "rss"; + public static final String ALT_JSON = "json"; + + /** + * Param name constant for the updated min. + */ + public static final String UPDATED_MIN_PARAM = "updated-min"; + + /** + * Param name constant for the updated max. + */ + public static final String UPDATED_MAX_PARAM = "updated-max"; + + /** + * Param name constant for the published min. + */ + public static final String PUBLISHED_MIN_PARAM = "published-min"; + + /** + * Param name constant for the published max. + */ + public static final String PUBLISHED_MAX_PARAM = "published-max"; + + /** + * Param name constant for the start index for results. + */ + public static final String START_INDEX_PARAM = "start-index"; + + /** + * Param name constant for the max number of results that should be fetched. + */ + public static final String MAX_RESULTS_PARAM = "max-results"; + + private String entryId; + + /** + * Creates a new empty QueryParams. + */ + public QueryParams() { + } + + /** + * Generates the url that should be used to query a GData feed. + * @param feedUrl The original feed URL. + * @return The URL that should be used to query the GData feed. + */ + public abstract String generateQueryUrl(String feedUrl); + + /** + * Gets a parameter value from this QueryParams. + * @param param The parameter name. + * @return The parameter value. Returns null if the parameter is not + * defined in this QueryParams. + */ + public abstract String getParamValue(String param); + + /** + * Sets a parameter value in this QueryParams. + * @param param The parameter name. + * @param value The parameter value. + */ + public abstract void setParamValue(String param, String value); + + /** + * Clears everything in this QueryParams. + */ + public abstract void clear(); + + /** + * @return the alt + */ + public String getAlt() { + return getParamValue(ALT_PARAM); + } + + /** + * @param alt the alt to set + */ + public void setAlt(String alt) { + setParamValue(ALT_PARAM, alt); + } + + /** + * @return the author + */ + public String getAuthor() { + return getParamValue(AUTHOR_PARAM); + } + + /** + * @param author the author to set + */ + public void setAuthor(String author) { + setParamValue(AUTHOR_PARAM, author); + } + + /** + * @return the entryId + */ + public String getEntryId() { + return entryId; + } + + /** + * @param entryId the entryId to set + */ + public void setEntryId(String entryId) { + this.entryId = entryId; + } + + /** + * @return the maxResults + */ + public String getMaxResults() { + return getParamValue(MAX_RESULTS_PARAM); + } + + // TODO: use an int! + /** + * @param maxResults the maxResults to set + */ + public void setMaxResults(String maxResults) { + setParamValue(MAX_RESULTS_PARAM, maxResults); + } + + /** + * @return the publishedMax + */ + public String getPublishedMax() { + return getParamValue(PUBLISHED_MAX_PARAM); + } + + /** + * @param publishedMax the publishedMax to set + */ + public void setPublishedMax(String publishedMax) { + setParamValue(PUBLISHED_MAX_PARAM, publishedMax); + } + + /** + * @return the publishedMin + */ + public String getPublishedMin() { + return getParamValue(PUBLISHED_MIN_PARAM); + } + + /** + * @param publishedMin the publishedMin to set + */ + public void setPublishedMin(String publishedMin) { + setParamValue(PUBLISHED_MIN_PARAM, publishedMin); + } + + /** + * @return the query + */ + public String getQuery() { + return getParamValue(QUERY_PARAM); + } + + /** + * @param query the query to set + */ + public void setQuery(String query) { + setParamValue(QUERY_PARAM, query); + } + + /** + * @return the startIndex + */ + public String getStartIndex() { + return getParamValue(START_INDEX_PARAM); + } + + /** + * @param startIndex the startIndex to set + */ + public void setStartIndex(String startIndex) { + setParamValue(START_INDEX_PARAM, startIndex); + } + + /** + * @return the updatedMax + */ + public String getUpdatedMax() { + return getParamValue(UPDATED_MAX_PARAM); + } + + /** + * @param updatedMax the updatedMax to set + */ + public void setUpdatedMax(String updatedMax) { + setParamValue(UPDATED_MAX_PARAM, updatedMax); + } + + /** + * @return the updatedMin + */ + public String getUpdatedMin() { + return getParamValue(UPDATED_MIN_PARAM); + } + + /** + * @param updatedMin the updatedMin to set + */ + public void setUpdatedMin(String updatedMin) { + setParamValue(UPDATED_MIN_PARAM, updatedMin); + } +} |