summaryrefslogtreecommitdiff
path: root/src/de/podfetcher/syndication
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/podfetcher/syndication')
-rw-r--r--src/de/podfetcher/syndication/handler/FeedHandler.java (renamed from src/de/podfetcher/syndication/FeedHandler.java)2
-rw-r--r--src/de/podfetcher/syndication/handler/HandlerState.java30
-rw-r--r--src/de/podfetcher/syndication/handler/RSSHandler.java (renamed from src/de/podfetcher/syndication/RSSHandler.java)2
-rw-r--r--src/de/podfetcher/syndication/handler/SyndHandler.java16
-rw-r--r--src/de/podfetcher/syndication/handler/TypeGetter.java (renamed from src/de/podfetcher/syndication/TypeGetter.java)2
-rw-r--r--src/de/podfetcher/syndication/namespace/NSElement.java11
-rw-r--r--src/de/podfetcher/syndication/namespace/Namespace.java18
-rw-r--r--src/de/podfetcher/syndication/namespace/atom/NSAtom.java38
8 files changed, 116 insertions, 3 deletions
diff --git a/src/de/podfetcher/syndication/FeedHandler.java b/src/de/podfetcher/syndication/handler/FeedHandler.java
index dc9f660c0..46fe4399c 100644
--- a/src/de/podfetcher/syndication/FeedHandler.java
+++ b/src/de/podfetcher/syndication/handler/FeedHandler.java
@@ -1,4 +1,4 @@
-package de.podfetcher.syndication;
+package de.podfetcher.syndication.handler;
import java.io.File;
import java.io.IOException;
diff --git a/src/de/podfetcher/syndication/handler/HandlerState.java b/src/de/podfetcher/syndication/handler/HandlerState.java
new file mode 100644
index 000000000..7e0c07585
--- /dev/null
+++ b/src/de/podfetcher/syndication/handler/HandlerState.java
@@ -0,0 +1,30 @@
+package de.podfetcher.syndication.handler;
+
+import java.util.ArrayList;
+import java.util.Stack;
+
+import de.podfetcher.syndication.namespace.Namespace;
+import de.podfetcher.feed.Feed;
+import de.podfetcher.feed.FeedItem;
+
+/** Contains all relevant information to describe the current state of a SyndHandler.*/
+public class HandlerState {
+ /** Feed that the Handler is currently processing. */
+ protected Feed feed;
+ protected FeedItem currentItem;
+ protected Stack<String> tagstack;
+ /** Namespaces that have been defined so far. */
+ protected ArrayList<Namespace> namespaces;
+
+ public Feed getFeed() {
+ return feed;
+ }
+ public FeedItem getCurrentItem() {
+ return currentItem;
+ }
+ public Stack<String> getTagstack() {
+ return tagstack;
+ }
+
+
+}
diff --git a/src/de/podfetcher/syndication/RSSHandler.java b/src/de/podfetcher/syndication/handler/RSSHandler.java
index cfabd1415..279cfca63 100644
--- a/src/de/podfetcher/syndication/RSSHandler.java
+++ b/src/de/podfetcher/syndication/handler/RSSHandler.java
@@ -1,4 +1,4 @@
-package de.podfetcher.syndication;
+package de.podfetcher.syndication.handler;
import java.util.ArrayList;
diff --git a/src/de/podfetcher/syndication/handler/SyndHandler.java b/src/de/podfetcher/syndication/handler/SyndHandler.java
new file mode 100644
index 000000000..5f20a2b87
--- /dev/null
+++ b/src/de/podfetcher/syndication/handler/SyndHandler.java
@@ -0,0 +1,16 @@
+package de.podfetcher.syndication.handler;
+
+import org.xml.sax.helpers.DefaultHandler;
+
+import de.podfetcher.feed.Feed;
+import de.podfetcher.feed.FeedItem;
+
+/** Superclass for all SAX Handlers which process Syndication formats */
+public abstract class SyndHandler extends DefaultHandler{
+ protected HandlerState state;
+
+ public HandlerState getState() {
+ return state;
+ }
+
+}
diff --git a/src/de/podfetcher/syndication/TypeGetter.java b/src/de/podfetcher/syndication/handler/TypeGetter.java
index b3fd2bb54..9dab56af8 100644
--- a/src/de/podfetcher/syndication/TypeGetter.java
+++ b/src/de/podfetcher/syndication/handler/TypeGetter.java
@@ -1,4 +1,4 @@
-package de.podfetcher.syndication;
+package de.podfetcher.syndication.handler;
import java.io.File;
import java.io.FileNotFoundException;
diff --git a/src/de/podfetcher/syndication/namespace/NSElement.java b/src/de/podfetcher/syndication/namespace/NSElement.java
new file mode 100644
index 000000000..6b62def77
--- /dev/null
+++ b/src/de/podfetcher/syndication/namespace/NSElement.java
@@ -0,0 +1,11 @@
+package de.podfetcher.syndication.namespace;
+
+import org.xml.sax.Attributes;
+
+import de.podfetcher.feed.Feed;
+
+/** Defines a XML Element of a specific namespace */
+public abstract class NSElement {
+ /** Called by its namespace if the processing of the element gets more complex */
+ public abstract void handleElement(String localName, Feed feed, Attributes attributes);
+}
diff --git a/src/de/podfetcher/syndication/namespace/Namespace.java b/src/de/podfetcher/syndication/namespace/Namespace.java
new file mode 100644
index 000000000..152c53652
--- /dev/null
+++ b/src/de/podfetcher/syndication/namespace/Namespace.java
@@ -0,0 +1,18 @@
+package de.podfetcher.syndication.namespace;
+
+import org.xml.sax.Attributes;
+
+import de.podfetcher.feed.Feed;
+
+
+public abstract class Namespace {
+
+ /** Called by a Feedhandler when in startElement and it detects a namespace element */
+ public abstract void handleElement(String localName, Feed feed, Attributes attributes);
+
+ /** Called by a Feedhandler when in characters and it detects a namespace element */
+ public abstract void handleCharacters(String localName, Feed feed, char ch[], int start, int length);
+
+ public abstract String getNsTag();
+ public abstract String getNsURI();
+}
diff --git a/src/de/podfetcher/syndication/namespace/atom/NSAtom.java b/src/de/podfetcher/syndication/namespace/atom/NSAtom.java
new file mode 100644
index 000000000..c55e9fcd6
--- /dev/null
+++ b/src/de/podfetcher/syndication/namespace/atom/NSAtom.java
@@ -0,0 +1,38 @@
+package de.podfetcher.syndication.namespace.atom;
+
+import org.xml.sax.Attributes;
+
+import de.podfetcher.feed.Feed;
+import de.podfetcher.syndication.namespace.Namespace;
+
+public class NSAtom extends Namespace {
+ private static final String TITLE = "title";
+ private static final String LINK = "link";
+ private static final String UPDATED = "updated";
+ private static final String AUTHOR = "author";
+
+ @Override
+ public void handleElement(String localName, Feed feed, Attributes attributes) {
+ if (localName.equals(TITLE)) {
+
+ }
+
+ }
+
+ @Override
+ public void handleCharacters(String localName, Feed feed, char[] ch,
+ int start, int length) {
+
+ }
+
+ @Override
+ public String getNsTag() {
+ return "atom";
+ }
+
+ @Override
+ public String getNsURI() {
+ return "http://www.w3.org/2005/Atom";
+ }
+
+}