aboutsummaryrefslogtreecommitdiff
path: root/juick-rss/src/main/java/com/juick/rss/extension/JuickModuleGenerator.java
diff options
context:
space:
mode:
Diffstat (limited to 'juick-rss/src/main/java/com/juick/rss/extension/JuickModuleGenerator.java')
-rw-r--r--juick-rss/src/main/java/com/juick/rss/extension/JuickModuleGenerator.java53
1 files changed, 53 insertions, 0 deletions
diff --git a/juick-rss/src/main/java/com/juick/rss/extension/JuickModuleGenerator.java b/juick-rss/src/main/java/com/juick/rss/extension/JuickModuleGenerator.java
new file mode 100644
index 00000000..caecde7e
--- /dev/null
+++ b/juick-rss/src/main/java/com/juick/rss/extension/JuickModuleGenerator.java
@@ -0,0 +1,53 @@
+package com.juick.rss.extension;
+
+import com.rometools.rome.feed.module.Module;
+import com.rometools.rome.io.ModuleGenerator;
+import org.jdom2.Element;
+import org.jdom2.Namespace;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Created by vt on 13/12/2016.
+ */
+public class JuickModuleGenerator implements ModuleGenerator {
+
+ private static final Namespace JUICK_NS = Namespace.getNamespace("juick", JuickModule.URI);
+
+ @Override
+ public String getNamespaceUri() {
+ return JuickModule.URI;
+ }
+
+ private static final Set NAMESPACES;
+
+ static {
+ Set nss = new HashSet();
+ nss.add(JUICK_NS);
+ NAMESPACES = Collections.unmodifiableSet(nss);
+ }
+
+ @Override
+ public Set getNamespaces() {
+ return NAMESPACES;
+ }
+
+ @Override
+ public void generate(Module module, Element element) {
+ // this is not necessary, it is done to avoid the namespace definition in every item.
+ Element root = element;
+ while (root.getParent()!=null && root.getParent() instanceof Element) {
+ root = (Element) element.getParent();
+ }
+ root.addNamespaceDeclaration(JUICK_NS);
+
+ JuickModule juickModule = (JuickModule) module;
+ if (juickModule.getUid() > 0) {
+ Element user = new Element("user", JUICK_NS);
+ user.setAttribute("uid", String.valueOf(juickModule.getUid()), JUICK_NS);
+ element.addContent(user);
+ }
+ }
+}