summaryrefslogtreecommitdiff
path: root/src/com/google/wireless/gdata/subscribedfeeds/parser/xml/XmlSubscribedFeedsGDataParser.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/google/wireless/gdata/subscribedfeeds/parser/xml/XmlSubscribedFeedsGDataParser.java')
-rw-r--r--src/com/google/wireless/gdata/subscribedfeeds/parser/xml/XmlSubscribedFeedsGDataParser.java75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/com/google/wireless/gdata/subscribedfeeds/parser/xml/XmlSubscribedFeedsGDataParser.java b/src/com/google/wireless/gdata/subscribedfeeds/parser/xml/XmlSubscribedFeedsGDataParser.java
new file mode 100644
index 0000000..d13449f
--- /dev/null
+++ b/src/com/google/wireless/gdata/subscribedfeeds/parser/xml/XmlSubscribedFeedsGDataParser.java
@@ -0,0 +1,75 @@
+// Copyright 2007 The Android Open Source Project
+package com.google.wireless.gdata.subscribedfeeds.parser.xml;
+
+import com.google.wireless.gdata.data.Entry;
+import com.google.wireless.gdata.data.Feed;
+import com.google.wireless.gdata.data.XmlUtils;
+import com.google.wireless.gdata.parser.ParseException;
+import com.google.wireless.gdata.parser.xml.XmlGDataParser;
+import com.google.wireless.gdata.subscribedfeeds.data.FeedUrl;
+import com.google.wireless.gdata.subscribedfeeds.data.SubscribedFeedsEntry;
+import com.google.wireless.gdata.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.gdata.parser.xml.XmlGDataParser#createFeed()
+ */
+ protected Feed createFeed() {
+ return new SubscribedFeedsFeed();
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.google.wireless.gdata.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));
+ }
+ }
+}