// Copyright 2007 The Android Open Source Project package com.google.wireless.gdata.client; import com.google.wireless.gdata.parser.GDataParser; import com.google.wireless.gdata.parser.ParseException; import com.google.wireless.gdata.data.Entry; import com.google.wireless.gdata.serializer.GDataSerializer; import java.io.InputStream; /** * Factory that creates {@link GDataParser}s and {@link GDataSerializer}s. */ public interface GDataParserFactory { /** * Creates a new {@link GDataParser} for the provided InputStream. * * @param entryClass Specify the class of Entry objects that are to be parsed. This * lets createParser know which parser to create. * @param is The InputStream that should be parsed. @return The GDataParser that will parse is. * @throws ParseException Thrown if the GDataParser could not be created. * @throws IllegalArgumentException if the feed type is unknown. */ GDataParser createParser(Class entryClass, InputStream is) throws ParseException; /** * Creates a new {@link GDataParser} for the provided InputStream, using the * default feed type for the client. * * @param is The InputStream that should be parsed. * @return The GDataParser that will parse is. * @throws ParseException Thrown if the GDataParser could not be created. * Note that this can occur if the feed in the InputStream is not of * the default type assumed by this method. * @see #createParser(Class,InputStream) */ GDataParser createParser(InputStream is) throws ParseException; /** * Creates a new {@link GDataSerializer} for the provided Entry. * * @param entry The Entry that should be serialized. * @return The GDataSerializer that will serialize entry. */ GDataSerializer createSerializer(Entry entry); }