diff options
Diffstat (limited to 'src/de/podfetcher/syndication/handler')
-rw-r--r-- | src/de/podfetcher/syndication/handler/HandlerState.java | 7 | ||||
-rw-r--r-- | src/de/podfetcher/syndication/handler/RSSHandler.java | 8 | ||||
-rw-r--r-- | src/de/podfetcher/syndication/handler/SyndHandler.java | 3 |
3 files changed, 11 insertions, 7 deletions
diff --git a/src/de/podfetcher/syndication/handler/HandlerState.java b/src/de/podfetcher/syndication/handler/HandlerState.java index 159f646f5..9eccf4f74 100644 --- a/src/de/podfetcher/syndication/handler/HandlerState.java +++ b/src/de/podfetcher/syndication/handler/HandlerState.java @@ -5,6 +5,7 @@ import java.util.HashMap; import java.util.Stack; import de.podfetcher.syndication.namespace.Namespace; +import de.podfetcher.syndication.namespace.SyndElement; import de.podfetcher.feed.Feed; import de.podfetcher.feed.FeedItem; @@ -13,13 +14,13 @@ public class HandlerState { /** Feed that the Handler is currently processing. */ protected Feed feed; protected FeedItem currentItem; - protected Stack<String> tagstack; + protected Stack<SyndElement> tagstack; /** Namespaces that have been defined so far. */ protected HashMap<String, Namespace> namespaces; public HandlerState(Feed feed) { this.feed = feed; - tagstack = new Stack<String>(); + tagstack = new Stack<SyndElement>(); namespaces = new HashMap<String, Namespace>(); } @@ -30,7 +31,7 @@ public class HandlerState { public FeedItem getCurrentItem() { return currentItem; } - public Stack<String> getTagstack() { + public Stack<SyndElement> getTagstack() { return tagstack; } diff --git a/src/de/podfetcher/syndication/handler/RSSHandler.java b/src/de/podfetcher/syndication/handler/RSSHandler.java index f750b0a92..5a61b9daa 100644 --- a/src/de/podfetcher/syndication/handler/RSSHandler.java +++ b/src/de/podfetcher/syndication/handler/RSSHandler.java @@ -6,6 +6,7 @@ import de.podfetcher.feed.Feed; import de.podfetcher.feed.FeedImage; import de.podfetcher.feed.FeedItem; import de.podfetcher.feed.FeedMedia; +import de.podfetcher.syndication.namespace.SyndElement; import org.xml.sax.Attributes; import org.xml.sax.SAXException; @@ -42,9 +43,10 @@ public class RSSHandler extends SyndHandler { throws SAXException { if (state.tagstack.size() >= 2) { String content = new String(ch, start, length); - String top = state.tagstack.pop(); - String second = state.tagstack.peek(); - state.tagstack.push(top); + SyndElement topElement = state.tagstack.pop(); + String top = topElement.getName(); + String second = state.tagstack.peek().getName(); + state.tagstack.push(topElement); if (top.equals(TITLE)) { if (second.equals(ITEM)) { state.currentItem.setTitle(content); diff --git a/src/de/podfetcher/syndication/handler/SyndHandler.java b/src/de/podfetcher/syndication/handler/SyndHandler.java index 9ee604244..4fc47fb63 100644 --- a/src/de/podfetcher/syndication/handler/SyndHandler.java +++ b/src/de/podfetcher/syndication/handler/SyndHandler.java @@ -8,6 +8,7 @@ import android.util.Log; import de.podfetcher.feed.Feed; import de.podfetcher.syndication.namespace.Namespace; +import de.podfetcher.syndication.namespace.SyndElement; import de.podfetcher.syndication.namespace.atom.NSAtom; /** Superclass for all SAX Handlers which process Syndication formats */ @@ -22,7 +23,7 @@ public abstract class SyndHandler extends DefaultHandler{ @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { - state.tagstack.push(qName); + state.tagstack.push(new SyndElement(qName)); String[] parts = qName.split(":"); String prefix = ""; |