package ecologylab.serialization.library.yahoo; import java.util.ArrayList; import ecologylab.net.ParsedURL; import ecologylab.serialization.ElementState; import ecologylab.serialization.SIMPLTranslationException; import ecologylab.serialization.SimplTypesScope; import ecologylab.serialization.annotations.simpl_collection; import ecologylab.serialization.annotations.simpl_inherit; import ecologylab.serialization.annotations.simpl_nowrap; import ecologylab.serialization.annotations.simpl_scalar; import ecologylab.serialization.annotations.simpl_tag; import ecologylab.serialization.formatenums.Format; import ecologylab.serialization.formatenums.StringFormat; /** * Top level result set collection element for Yahoo search. The collected elements are all of type * result. * * http://www.yahooapis.com/search/web/V1/webSearch.html * * @author andruid */ @simpl_inherit @simpl_tag("ResultSet") public class ResultSet extends ElementState { @simpl_scalar @simpl_tag("xsi:schemaLocation") String schemaLocation; @simpl_scalar @simpl_tag("type") String type; @simpl_scalar @simpl_tag("moreSearch") String moreSearch; @simpl_scalar @simpl_tag("totalResultsAvailable") int totalResultsAvailable; @simpl_scalar @simpl_tag("totalResultsReturned") int totalResultsReturned; @simpl_scalar @simpl_tag("firstResultPosition") int firstResultPosition; @simpl_nowrap @simpl_collection("Result") ArrayList<Result> results; public static final String YAHOO = "yahoo"; public static final Class[] YAHOO_CLASSES = { ResultSet.class, Result.class, ThumbnailState.class, }; public static SimplTypesScope getTranslationScope() { return SimplTypesScope.get(YAHOO, YAHOO_CLASSES); } public static String SEOUL_SHOPPING = "http://api.search.yahoo.com/WebSearchService/V1/webSearch?appid=yahoosearchwebrss&results=15&start=1&query=shopping+seoul"; public static void main(String[] a) { ParsedURL purl = ParsedURL.getAbsolute(SEOUL_SHOPPING, "uck"); try { ResultSet resultSet = (ResultSet) ResultSet.getTranslationScope().deserialize(purl, Format.XML); SimplTypesScope.serialize(resultSet, System.out, StringFormat.XML); } catch (SIMPLTranslationException e) { e.printStackTrace(); } } public Result get(int i) { return results == null ? null : results.get(i); } public int size() { return results == null ? 0 : results.size(); } }