From 7a2f89266c8f6337e4e81a2fd8488e0f80f4f9bd Mon Sep 17 00:00:00 2001
From: Vitaly Takmazov
Date: Fri, 3 Apr 2020 23:53:23 +0300
Subject: Reorganize layout and code cleanup
---
.../www/rss/extension/JuickModuleGenerator.java | 66 ++++++++++++++++++++++
1 file changed, 66 insertions(+)
create mode 100644 src/main/java/com/juick/www/rss/extension/JuickModuleGenerator.java
(limited to 'src/main/java/com/juick/www/rss/extension/JuickModuleGenerator.java')
diff --git a/src/main/java/com/juick/www/rss/extension/JuickModuleGenerator.java b/src/main/java/com/juick/www/rss/extension/JuickModuleGenerator.java
new file mode 100644
index 00000000..61368785
--- /dev/null
+++ b/src/main/java/com/juick/www/rss/extension/JuickModuleGenerator.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2008-2019, Juick
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+package com.juick.www.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.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 {
+ NAMESPACES = Set.of(JUICK_NS);
+ }
+
+ @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.getParentElement();
+ }
+ 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);
+ }
+ }
+}
--
cgit v1.2.3