use of com.sun.syndication.feed.synd.SyndCategoryImpl in project xwiki-platform by xwiki.
the class SyndEntryDocumentSource method getCategories.
protected List<SyndCategory> getCategories(Document doc, Map<String, Object> params, XWikiContext context) throws XWikiException {
String mapping = (String) params.get(FIELD_CATEGORIES);
if (mapping == null) {
return getDefaultCategories(doc, params, context);
}
List<Object> categories;
if (isVelocityCode(mapping)) {
categories = parseList(mapping, doc, context);
} else {
categories = getListValue(mapping, doc, context);
}
List<SyndCategory> result = new ArrayList<SyndCategory>();
for (Object category : categories) {
if (category instanceof SyndCategory) {
result.add((SyndCategory) category);
} else if (category != null) {
SyndCategory scat = new SyndCategoryImpl();
scat.setName(category.toString());
result.add(scat);
}
}
return result;
}
use of com.sun.syndication.feed.synd.SyndCategoryImpl in project gitblit by gitblit.
the class SyndicationUtils method toRSS.
/**
* Outputs an RSS feed of the list of entries to the outputstream.
*
* @param hostUrl
* @param feedLink
* @param title
* @param description
* @param entryModels
* @param os
* @throws IOException
* @throws FeedException
*/
public static void toRSS(String hostUrl, String feedLink, String title, String description, List<FeedEntryModel> entryModels, OutputStream os) throws IOException, FeedException {
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType("rss_2.0");
feed.setEncoding("UTF-8");
feed.setTitle(title);
feed.setLink(feedLink);
if (StringUtils.isEmpty(description)) {
feed.setDescription(title);
} else {
feed.setDescription(description);
}
SyndImageImpl image = new SyndImageImpl();
image.setTitle(Constants.NAME);
image.setUrl(hostUrl + "/gitblt_25.png");
image.setLink(hostUrl);
feed.setImage(image);
List<SyndEntry> entries = new ArrayList<SyndEntry>();
for (FeedEntryModel entryModel : entryModels) {
SyndEntry entry = new SyndEntryImpl();
entry.setTitle(entryModel.title);
entry.setAuthor(entryModel.author);
entry.setLink(entryModel.link);
entry.setPublishedDate(entryModel.published);
if (entryModel.tags != null && entryModel.tags.size() > 0) {
List<SyndCategory> tags = new ArrayList<SyndCategory>();
for (String tag : entryModel.tags) {
SyndCategoryImpl cat = new SyndCategoryImpl();
cat.setName(tag);
tags.add(cat);
}
entry.setCategories(tags);
}
SyndContent content = new SyndContentImpl();
if (StringUtils.isEmpty(entryModel.contentType) || entryModel.contentType.equalsIgnoreCase("text/plain")) {
content.setType("text/html");
content.setValue(StringUtils.breakLinesForHtml(entryModel.content));
} else {
content.setType(entryModel.contentType);
content.setValue(entryModel.content);
}
entry.setDescription(content);
entries.add(entry);
}
feed.setEntries(entries);
OutputStreamWriter writer = new OutputStreamWriter(os, "UTF-8");
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed, writer);
writer.close();
}
Aggregations