/* * Copyright (C) 2008-2017, 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.server.api.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.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); } } }