/* * Copyright (C) 2008-2020, 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 <http://www.gnu.org/licenses/>. */ 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<Namespace> NAMESPACES; static { NAMESPACES = Set.of(JUICK_NS); } @Override public Set<Namespace> 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); } } }