package org.genedb.web.mvc.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.view.feed.AbstractRssFeedView;
import org.genedb.web.mvc.model.AnnotationChangesRssContent;
import com.sun.syndication.feed.rss.Channel;
import com.sun.syndication.feed.rss.Content;
import com.sun.syndication.feed.rss.Item;
public class AnnotationChangesRssViewer extends AbstractRssFeedView {
@Override
protected void buildFeedMetadata(Map<String, Object> model, Channel feed,
HttpServletRequest request) {
String orgName = (String) model.get("orgName");
String dateSince = (String) model.get("dateSince");
feed.setTitle("GeneDB annotation activity for " + orgName);
feed.setDescription("Annotation activity for " + orgName + " since " + dateSince + ".");
feed.setLink("http://www.genedb.org/Homepage/" + orgName);
super.buildFeedMetadata(model, feed, request);
}
@Override
protected List<Item> buildFeedItems(Map<String, Object> model,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
@SuppressWarnings("unchecked")
List<AnnotationChangesRssContent> listContent = (List<AnnotationChangesRssContent>) model.get("feedContent");
List<Item> items = new ArrayList<Item>(listContent.size());
for(AnnotationChangesRssContent tempContent : listContent ){
Item item = new Item();
Content content = new Content();
content.setValue(tempContent.getSummary());
item.setContent(content);
item.setTitle(tempContent.getGene());
item.setLink(tempContent.getUrl());
item.setPubDate(tempContent.getDate());
items.add(item);
}
return items;
}
}