⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 googlebasequery.java

📁 google的gdata api包
💻 JAVA
字号:
/* Copyright (c) 2006 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package com.google.api.gbase.client;import com.google.gdata.client.Query;import java.util.List;import java.net.URL;/** * Adds support for the "bq" and "max-values" parameters to a gdata query. * {@link com.google.gdata.client.Query}. */public class GoogleBaseQuery extends Query {  private static final String BQ_PARAMETER = "bq";  private static final String MAX_VALUES_PARAMETER = "max-values";  private static final String ORDER_BY = "orderby";  private static final String CROWD_BY = "crowdby";  private static final String SORT_ORDER = "sortorder";  private static final String CONTENT = "content";  private static final String REFINE = "refine";  /**   * Creates a Google Base query.   *   * @param feedUrl the URL to connect to   */  public GoogleBaseQuery(URL feedUrl) {    super(feedUrl);  }  /**   * Sets the Google Base query to execute.   *   * When running queries on Google Base, you have a choice   * between a Google Base query, which will be interpreted   * and executed strictly following the Google Base query   * language, and a Fulltext query (see {@link #setFullTextQuery(String)})   * which will be interpreted just like a query typed in the   * search box on the Google Base website - including some   * user-friendly preprocessing that might be useful or confusing   * depending on what you're trying to do.   *   * You cannot specify both a Google Base query and a Fulltext query.   *   * @param query google base query   * @exception IllegalStateException if a fulltext query   *   is already set.   */  public void setGoogleBaseQuery(String query) {    overwriteCustomParameter(BQ_PARAMETER, query);  }  /**   * Gets the Google Base query that will be executed.   *   * @return the query or null if none was set   */  public String getGoogleBaseQuery() {    String parameterName = BQ_PARAMETER;    return getCustomParameterValue(parameterName);  }  private String getCustomParameterValue(String parameterName) {    List<CustomParameter> customParams = getCustomParameters(parameterName);    if (customParams.isEmpty()) {      return null;    }    return customParams.get(0).getValue();  }  private void overwriteCustomParameter(String name, String value) {    List<CustomParameter> customParams = getCustomParameters();    // Remove any existing value.    for (CustomParameter existingValue : getCustomParameters(name)) {      customParams.remove(existingValue);    }    // Add the specified value.    if (value != null) {      customParams.add(new CustomParameter(name, value));    }  }  /**   * Sets the <code>max-values</code> parameter used by histogram feeds   * to limit the number of unique values to return for one attribute.   *   * @param maxValues   */  public void setMaxValues(Integer maxValues) {    String stringValue = maxValues == null ? null:maxValues.toString();    overwriteCustomParameter(MAX_VALUES_PARAMETER, stringValue);  }  /**   * Gets the current value for the <code>max-values</code> parameter.   *   * @return current value or null   */  public Integer getMaxValues() {    String valueAsString = getCustomParameterValue(MAX_VALUES_PARAMETER);    if (valueAsString == null) {      return null;    } else {      return new Integer(valueAsString);    }  }  /**   * Enables query refinement.   *   * By default results are not refined.   *   * @param refine true to enable query refinment   */  public void setRefine(boolean refine) {    overwriteCustomParameter(REFINE, refine ? "true" : "false");  }  /**   * Checks whether the query should be refined.   *   * @return true if the query should be refined   */  public boolean getRefine() {    return "true".equals(getCustomParameterValue(REFINE));  }  /**   * Selects what to return, on the customer feed.   *   * @param content what should be returned (see documentation)   */  public void setContent(String content) {    overwriteCustomParameter(CONTENT, content);  }  /**   * Gets what will be returned, on the customer feed.   *   * @return what will be returned   */  public String getContent() {    return getCustomParameterValue(CONTENT);  }  /**   * Sets the criteria used to sort the results.   *   * By default results are ordered by relevancy.   *   * @param orderBy sorting criteria (see documentation)   */  public void setOrderBy(String orderBy) {    overwriteCustomParameter(ORDER_BY, orderBy);  }  /**   * Sets the criteria used for crowding the results in groups.   *   * @param crowdBy crowding criteria (see documentation)   */  public void setCrowdingBy(String crowdBy) {    overwriteCustomParameter(CROWD_BY, crowdBy);  }    /**   * Gets the criteria that will be used to sort the results.   *   * @return criteria or null if no order has been set   */  public String getOrderBy() {    return getCustomParameterValue(ORDER_BY);  }  /**   * Gets the criteria that will be used to crowd the results.   *   * @return criteria or null if no crowding has been set   */  public String getCrowdBy() {    return getCustomParameterValue(CROWD_BY);  }    /**   * Changes the order in which results are returned (ascending   * or descending).   *   * Descending order (from the largest value   * to the smallest value) is the default.   *   * @param ascending if true, return the result in ascending   *   order   */  public void setAscendingOrder(boolean ascending) {    overwriteCustomParameter(SORT_ORDER,        ascending ? "ascending" : "descending");  }  /**   * Checks whether the results will be returned in ascending   * order.   *   * @return if true, the results will be returned in ascending order,   *   otherwise they will be returned in descending order   */  public boolean isAscendingOrder() {    return "ascending".equals(getCustomParameterValue(SORT_ORDER));  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -