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

📄 feedurlfactory.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 java.io.UnsupportedEncodingException;import java.net.MalformedURLException;import java.net.URL;import java.net.URLEncoder;/** * Provides feed URLs that can be used with a GoogleBase server. */public class FeedURLFactory {  /**   * URL of the server to connect to by default.   * Currently {@value #DEFAULT_BASE_URL}.   */  public static final String DEFAULT_BASE_URL =      "http://www.google.com/base/";  /** The url used as a base when creating urls. */  private URL baseUrl;  private URL feedSnippets;  private URL feedItems;  private URL feedItemsBatch;  private URL feedLocales;  private URL feedAttributes;  private URL feedSnippetsBatch;  /**   * The default FeedURLFactory instance targeted   * to the default URL.   */  private static final FeedURLFactory instance = new FeedURLFactory();  /**   * Gets the default instance of this factory, targeted   * to {@value #DEFAULT_BASE_URL}.   *   * @return the default FeedURLFactory   */  public static FeedURLFactory getDefault() {    return instance;  }  /**   * Creates an URL factory targeted to {@value #DEFAULT_BASE_URL}.   *   * Access it using {@link #getDefault()}.   */  private FeedURLFactory() {    try {      init(DEFAULT_BASE_URL);    } catch (MalformedURLException e) {      throw new RuntimeException("Unexpected malformed URL", e);    }  }  /**   * Creates an URL factory targeted to a server.   *   * As long as you don't need to connect to a nonstandard   * URL, different from {@value #DEFAULT_BASE_URL}, you should   * consider calling {@link #getDefault()} instead.   *   * @param url an URL used as a base for the generated URLs   * @throws MalformedURLException   */  public FeedURLFactory(String url) throws MalformedURLException {    init(url);  }    private void init(String url) throws MalformedURLException {    baseUrl = new URL(url);    feedSnippets = new URL(baseUrl, "feeds/snippets/");    feedSnippetsBatch = new URL(baseUrl, "feeds/snippets/batch");    feedItems = new URL(baseUrl, "feeds/items/");    feedItemsBatch = new URL(baseUrl, "feeds/items/batch");    feedLocales = new URL(baseUrl, "feeds/locales/");    feedAttributes = new URL(baseUrl, "feeds/attributes/");  }  /** Returns the URL used as a base for the generated URLs. */  public URL getBaseURL() {    return baseUrl;  }    /**    * Encodes a string using UTF-8.    *    * @param s string to be encoded   * @throws RuntimeException when the JVM does not support UTF-8   */  private String encode(String s) {    try {      return URLEncoder.encode(s, "UTF-8");    } catch (UnsupportedEncodingException e) {      throw new RuntimeException("UTF-8 is not supported by the JVM", e);    }  }  /**   * Gets an URL for accessing a public feed, which allows users to perform   * queries.   * The formatting of the textual attributes returned by this feed   * is not guaranteed. This is an unauthenticated read-only feed.   *   * @return an URL to be used when creating a {@link GoogleBaseQuery}   */  public URL getSnippetsFeedURL() {    return feedSnippets;  }  /**   * Gets an URL for accessing a public batch feed, which allows users to   * get a series of entries.   *   * A query on this batch feed returns the same result as a series   * of calls to {@link #getSnippetsFeedURL()} in one HTTP request.   *   * @return an URL to post a batch query to.   */  public URL getSnippetsBatchFeedURL() {    return feedSnippetsBatch;  }  /**   * Gets an URL for accessing a snippet.   *   * @see #getSnippetsFeedURL()   * @param id the id of the snippet   * @return an URL to be used when reading a snippet of an item with a   *         {@link GoogleBaseService}   * @throws MalformedURLException   */  public URL getSnippetsEntryURL(String id) throws MalformedURLException {    if (id == null) {      throw new NullPointerException("entryId is null");    }    return new URL(feedSnippets, encode(id));  }  /**   * Gets an URL for accessing a customer feed, which allows users   * to query, insert, update and delete their own items.   * The textual attributes of the items are returned in their original format.   * This is a read/write feed that is only accessible to authenticated users.   *   * @return an URL to be used for creating a {@link GoogleBaseQuery}   */  public URL getItemsFeedURL() {    return feedItems;  }  /**   * Gets an URL for accessing an item.   *   * @see #getItemsFeedURL()   * @param entryId   * @return an URL to be used when reading an item or when   *         performing an insert, update or delete operation with a   *         {@link GoogleBaseService}   * @throws MalformedURLException   */  public URL getItemsEntryURL(String entryId)      throws MalformedURLException {    if (entryId == null) {      throw new NullPointerException("entryId is null");    }    return new URL(feedItems, encode(entryId));  }  /**   * Gets an URL for posting batch operations   * to the customer feed.   *   * @return an URL to be passed to   *   {@link com.google.gdata.client.Service#batch(java.net.URL,   *   com.google.gdata.data.BaseFeed)}    */  public URL getItemsBatchFeedURL() {    return feedItemsBatch;  }  /**   * Gets the URL of the list of all the supported locales.   * The feed is read-only and unauthenticated.   *   * @return an URL of a feed containing the supported locales   */  public URL getLocalesFeedURL() {    return feedLocales;  }  /**   * Gets an URL for querying the item types Google suggest using   * for a given locale.   * The feed is read-only and unauthenticated.   *   * @param locale a locale, for example "de_DE", "en_GB", "en_US"   * @return an URL of a feed containing item types   * @throws MalformedURLException   */  public URL getItemTypesFeedURL(String locale) throws MalformedURLException {    if (locale == null) {      throw new NullPointerException("locale is null");    }    return new URL(baseUrl, "feeds/itemtypes/" + encode(locale));  }  /**   * Gets an URL for getting the item types Google suggest using   * for a given itemtype for a given locale.   * The feed is read-only and unauthenticated.   *   * @param locale a locale, for example "de_DE", "en_GB", "en_US"   * @param itemType the item type to be analysed   * @return an URL of a feed containing item types   * @throws MalformedURLException   */  public URL getItemTypesEntryURL(String locale,                                  String itemType)       throws MalformedURLException {    if (locale == null) {      throw new NullPointerException("locale is null");    }    if (itemType == null) {      throw new NullPointerException("itemType is null");    }    return new URL(baseUrl, "feeds/itemtypes/" + encode(locale) +                            "/" + encode(itemType));  }  /**   * Gets an URL for the list of the most used attributes   * and their most used values.   *   * @return an URL to be used for creating a {@link GoogleBaseQuery}   */  public URL getAttributesFeedURL() {    return feedAttributes;  }}

⌨️ 快捷键说明

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