Java tutorial
/* * Copyright 2004 Sun Microsystems, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package com.sun.syndication.io.impl; import com.sun.syndication.feed.rss.Description; import com.sun.syndication.feed.rss.Item; import com.sun.syndication.feed.rss.Channel; import com.sun.syndication.io.FeedException; import org.jdom2.Element; import org.jdom2.Namespace; import java.util.List; /** * Feed Generator for RSS 1.0 * <p/> * * @author Elaine Chien * */ public class RSS10Generator extends RSS090Generator { private static final String RSS_URI = "http://purl.org/rss/1.0/"; private static final Namespace RSS_NS = Namespace.getNamespace(RSS_URI); public RSS10Generator() { super("rss_1.0"); } protected RSS10Generator(String feedType) { super(feedType); } protected Namespace getFeedNamespace() { return RSS_NS; } protected void populateChannel(Channel channel, Element eChannel) { super.populateChannel(channel, eChannel); if (channel.getUri() != null) { eChannel.setAttribute("about", channel.getUri(), getRDFNamespace()); } List items = channel.getItems(); if (items.size() > 0) { Element eItems = new Element("items", getFeedNamespace()); Element eSeq = new Element("Seq", getRDFNamespace()); for (int i = 0; i < items.size(); i++) { Item item = (Item) items.get(i); Element eLi = new Element("li", getRDFNamespace()); String uri = item.getUri(); if (uri != null) { eLi.setAttribute("resource", uri, getRDFNamespace()); } eSeq.addContent(eLi); } eItems.addContent(eSeq); eChannel.addContent(eItems); } } protected void populateItem(Item item, Element eItem, int index) { super.populateItem(item, eItem, index); String link = item.getLink(); String uri = item.getUri(); if (uri != null) { eItem.setAttribute("about", uri, getRDFNamespace()); } else if (link != null) { eItem.setAttribute("about", link, getRDFNamespace()); } Description description = item.getDescription(); if (description != null) { eItem.addContent(generateSimpleElement("description", description.getValue())); } if (item.getModule(getContentNamespace().getURI()) == null && item.getContent() != null) { Element elem = new Element("encoded", getContentNamespace()); elem.addContent(item.getContent().getValue()); eItem.addContent(elem); } } protected void checkChannelConstraints(Element eChannel) throws FeedException { checkNotNullAndLength(eChannel, "title", 0, -1); checkNotNullAndLength(eChannel, "description", 0, -1); checkNotNullAndLength(eChannel, "link", 0, -1); } protected void checkImageConstraints(Element eImage) throws FeedException { checkNotNullAndLength(eImage, "title", 0, -1); checkNotNullAndLength(eImage, "url", 0, -1); checkNotNullAndLength(eImage, "link", 0, -1); } protected void checkTextInputConstraints(Element eTextInput) throws FeedException { checkNotNullAndLength(eTextInput, "title", 0, -1); checkNotNullAndLength(eTextInput, "description", 0, -1); checkNotNullAndLength(eTextInput, "name", 0, -1); checkNotNullAndLength(eTextInput, "link", 0, -1); } protected void checkItemsConstraints(Element parent) throws FeedException { } protected void checkItemConstraints(Element eItem) throws FeedException { checkNotNullAndLength(eItem, "title", 0, -1); checkNotNullAndLength(eItem, "link", 0, -1); } }