blob: 5f5cb6d90aa82525919ee1e3e637a5e83db879bd [file] [log] [blame]
// Copyright 2007 The Android Open Source Project
package com.google.wireless.gdata2.subscribedfeeds.parser.xml;
import com.google.wireless.gdata2.data.Entry;
import com.google.wireless.gdata2.data.Feed;
import com.google.wireless.gdata2.data.XmlUtils;
import com.google.wireless.gdata2.parser.ParseException;
import com.google.wireless.gdata2.parser.xml.XmlGDataParser;
import com.google.wireless.gdata2.subscribedfeeds.data.FeedUrl;
import com.google.wireless.gdata2.subscribedfeeds.data.SubscribedFeedsEntry;
import com.google.wireless.gdata2.subscribedfeeds.data.SubscribedFeedsFeed;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
import java.io.InputStream;
/**
* GDataParser for a subscribed feeds feed.
*/
public class XmlSubscribedFeedsGDataParser extends XmlGDataParser {
/**
* Creates a new XmlSubscribedFeedsGDataParser.
* @param is The InputStream that should be parsed.
* @throws ParseException Thrown if a parser cannot be created.
*/
public XmlSubscribedFeedsGDataParser(InputStream is, XmlPullParser parser)
throws ParseException {
super(is, parser);
}
/*
* (non-Javadoc)
* @see com.google.wireless.gdata2.parser.xml.XmlGDataParser#createFeed()
*/
protected Feed createFeed() {
return new SubscribedFeedsFeed();
}
/*
* (non-Javadoc)
* @see com.google.wireless.gdata2.parser.xml.XmlGDataParser#createEntry()
*/
protected Entry createEntry() {
return new SubscribedFeedsEntry();
}
protected void handleExtraElementInEntry(Entry entry)
throws XmlPullParserException, IOException {
XmlPullParser parser = getParser();
if (!(entry instanceof SubscribedFeedsEntry)) {
throw new IllegalArgumentException("Expected SubscribedFeedsEntry!");
}
SubscribedFeedsEntry subscribedFeedsEntry =
(SubscribedFeedsEntry) entry;
String name = parser.getName();
if ("feedurl".equals(name)) {
FeedUrl feedUrl = new FeedUrl();
feedUrl.setFeed(parser.getAttributeValue(null /* ns */, "value"));
feedUrl.setService(parser.getAttributeValue(null /* ns */, "service"));
feedUrl.setAuthToken(parser.getAttributeValue(null /* ns */, "authtoken"));
subscribedFeedsEntry.setSubscribedFeed(feedUrl);
}
if ("routingInfo".equals(name)) {
subscribedFeedsEntry.setRoutingInfo(
XmlUtils.extractChildText(parser));
}
if ("clientToken".equals(name)) {
subscribedFeedsEntry.setClientToken(
XmlUtils.extractChildText(parser));
}
}
}