Inital commit
This commit is contained in:
@@ -0,0 +1,129 @@
|
||||
/* Copyright (c) 2008 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 sample.spreadsheet.gui;
|
||||
|
||||
import com.google.gdata.client.spreadsheet.ListQuery;
|
||||
import com.google.gdata.client.spreadsheet.SpreadsheetService;
|
||||
import com.google.gdata.data.spreadsheet.ListEntry;
|
||||
import com.google.gdata.data.spreadsheet.ListFeed;
|
||||
import com.google.gdata.util.ServiceException;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* This class helps you access your spreadsheet like a list or like a
|
||||
* database.
|
||||
*
|
||||
*
|
||||
* In this model, each row is treated like a separate entry, with multiple
|
||||
* fields. Each field is named based on the top row of your speradsheet.
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class ListFeedHelper {
|
||||
|
||||
/** The SpreadsheetService to contact Google with. */
|
||||
private SpreadsheetService service;
|
||||
|
||||
/** List feed URL. */
|
||||
private URL feedUrl;
|
||||
|
||||
|
||||
/**
|
||||
* Creates a list feed helper for a particular URL.
|
||||
*
|
||||
* @param inService the SpreadsheetService to contact Google with
|
||||
* @param inFeedUrl the URL of the list feed; to get this URL, you can
|
||||
* use SpreadsheetFeedHelper, or if you have a WorksheetEntry
|
||||
* you can use its method to get the list feed URL
|
||||
*/
|
||||
public ListFeedHelper(SpreadsheetService inService, URL inFeedUrl) {
|
||||
service = inService;
|
||||
feedUrl = inFeedUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a new list entry to the spreadsheet.
|
||||
*
|
||||
* @param entry the new entry
|
||||
* @throws IOException if there was a problem contacting Google
|
||||
* @throws ServiceException if there was an error processnig the request
|
||||
*/
|
||||
public ListEntry addListEntry(ListEntry entry)
|
||||
throws IOException, ServiceException {
|
||||
return service.insert(feedUrl, entry);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a list of all the list entries.
|
||||
*
|
||||
* @return a list of all non-empty rows in the spreadsheet
|
||||
* @throws IOException if there was a problem contacting Google
|
||||
* @throws ServiceException if there was an error processnig the request
|
||||
*/
|
||||
public List<ListEntry> getAllListEntries()
|
||||
throws IOException, ServiceException {
|
||||
ListQuery query = new ListQuery(feedUrl);
|
||||
ListFeed feed = service.query(query, ListFeed.class);
|
||||
return feed.getEntries();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a list of all entries that match a full-text search.
|
||||
*
|
||||
* Full-text searches look for the keywords you specify, that may
|
||||
* occur in any order in the row. Right now only the simplest syntax
|
||||
* is supported, as a convenience feature.
|
||||
*
|
||||
* @param search the search string like "adam technical writer"
|
||||
* @return all matching entries
|
||||
* @throws IOException if there was a problem contacting Google
|
||||
* @throws ServiceException if there was an error processnig the request
|
||||
*/
|
||||
public List<ListEntry> getFullTextSearch(String search)
|
||||
throws IOException, ServiceException {
|
||||
ListQuery query = new ListQuery(feedUrl);
|
||||
query.setFullTextQuery(search);
|
||||
ListFeed feed = service.query(query, ListFeed.class);
|
||||
return feed.getEntries();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a list of all entries that match a structured query.
|
||||
*
|
||||
* Structured queries are in format:
|
||||
* name = 'adam' and (job = 'technical writer' or job = 'artist')
|
||||
*
|
||||
* In short, it is case-insensitive, supporting both SQL-like and
|
||||
* C-like syntaxes for all varieties of new and seasoned programmers.
|
||||
*
|
||||
* @param structuredQuery the search string
|
||||
* @return all matching entries
|
||||
* @throws IOException if there was a problem contacting Google
|
||||
* @throws ServiceException if there was an error processnig the request
|
||||
*/
|
||||
public List<ListEntry> getStructuredQuery(
|
||||
String structuredQuery)
|
||||
throws IOException, ServiceException {
|
||||
ListQuery query = new ListQuery(feedUrl);
|
||||
query.setFullTextQuery(structuredQuery);
|
||||
ListFeed feed = service.query(query, ListFeed.class);
|
||||
return feed.getEntries();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user