org.springframework.web.servlet.view.feed
Class AbstractAtomFeedView

java.lang.Object
  extended by org.springframework.context.support.ApplicationObjectSupport
      extended by org.springframework.web.context.support.WebApplicationObjectSupport
          extended by org.springframework.web.servlet.view.AbstractView
              extended by org.springframework.web.servlet.view.feed.AbstractFeedView<com.sun.syndication.feed.atom.Feed>
                  extended by org.springframework.web.servlet.view.feed.AbstractAtomFeedView
All Implemented Interfaces:
Aware, BeanNameAware, ApplicationContextAware, ServletContextAware, View

public abstract class AbstractAtomFeedView
extends AbstractFeedView<com.sun.syndication.feed.atom.Feed>

Abstract superclass for Atom Feed views, using java.net's ROME package.

Application-specific view classes will extend this class. The view will be held in the subclass itself, not in a template.

Main entry points are the AbstractFeedView.buildFeedMetadata(Map, WireFeed, HttpServletRequest) and buildFeedEntries(Map, HttpServletRequest, HttpServletResponse).

Thanks to Jettro Coenradie and Sergio Bossa for the original feed view prototype!

Since:
3.0
Author:
Arjen Poutsma, Juergen Hoeller
See Also:
AbstractFeedView.buildFeedMetadata(Map, WireFeed, HttpServletRequest), buildFeedEntries(Map, HttpServletRequest, HttpServletResponse), Atom Syndication Format

Field Summary
static String DEFAULT_FEED_TYPE
           
 
Fields inherited from class org.springframework.web.servlet.view.AbstractView
DEFAULT_CONTENT_TYPE
 
Fields inherited from class org.springframework.context.support.ApplicationObjectSupport
logger
 
Fields inherited from interface org.springframework.web.servlet.View
RESPONSE_STATUS_ATTRIBUTE
 
Constructor Summary
AbstractAtomFeedView()
           
 
Method Summary
protected  void buildFeedEntries(Map<String,Object> model, com.sun.syndication.feed.atom.Feed feed, HttpServletRequest request, HttpServletResponse response)
          Invokes buildFeedEntries(Map, HttpServletRequest, HttpServletResponse) to get a list of feed entries.
protected abstract  List<com.sun.syndication.feed.atom.Entry> buildFeedEntries(Map<String,Object> model, HttpServletRequest request, HttpServletResponse response)
          Subclasses must implement this method to build feed entries, given the model.
protected  com.sun.syndication.feed.atom.Feed newFeed()
          Create a new Feed instance to hold the entries.
 void setFeedType(String feedType)
          Sets the Rome feed type to use.
 
Methods inherited from class org.springframework.web.servlet.view.feed.AbstractFeedView
buildFeedMetadata, renderMergedOutputModel
 
Methods inherited from class org.springframework.web.servlet.view.AbstractView
addStaticAttribute, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, generatesDownloadContent, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getStaticAttributes, prepareResponse, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setRequestContextAttribute, toString, writeToResponse
 
Methods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
 
Methods inherited from class org.springframework.context.support.ApplicationObjectSupport
getApplicationContext, getMessageSourceAccessor, initApplicationContext, requiredContextClass, setApplicationContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_FEED_TYPE

public static final String DEFAULT_FEED_TYPE
See Also:
Constant Field Values
Constructor Detail

AbstractAtomFeedView

public AbstractAtomFeedView()
Method Detail

setFeedType

public void setFeedType(String feedType)
Sets the Rome feed type to use.

Defaults to Atom 1.0.

See Also:
WireFeed.setFeedType(String), DEFAULT_FEED_TYPE

newFeed

protected com.sun.syndication.feed.atom.Feed newFeed()
Create a new Feed instance to hold the entries.

By default returns an Atom 1.0 feed, but the subclass can specify any Feed.

Specified by:
newFeed in class AbstractFeedView<com.sun.syndication.feed.atom.Feed>
Returns:
the newly created Feed instance
See Also:
setFeedType(String)

buildFeedEntries

protected final void buildFeedEntries(Map<String,Object> model,
                                      com.sun.syndication.feed.atom.Feed feed,
                                      HttpServletRequest request,
                                      HttpServletResponse response)
                               throws Exception
Invokes buildFeedEntries(Map, HttpServletRequest, HttpServletResponse) to get a list of feed entries.

Specified by:
buildFeedEntries in class AbstractFeedView<com.sun.syndication.feed.atom.Feed>
Parameters:
model - the model Map
feed - the feed to add entries to
request - in case we need locale etc. Shouldn't look at attributes.
response - in case we need to set cookies. Shouldn't write to it.
Throws:
Exception - any exception that occured during building

buildFeedEntries

protected abstract List<com.sun.syndication.feed.atom.Entry> buildFeedEntries(Map<String,Object> model,
                                                                              HttpServletRequest request,
                                                                              HttpServletResponse response)
                                                                       throws Exception
Subclasses must implement this method to build feed entries, given the model.

Note that the passed-in HTTP response is just supposed to be used for setting cookies or other HTTP headers. The built feed itself will automatically get written to the response after this method returns.

Parameters:
model - the model Map
request - in case we need locale etc. Shouldn't look at attributes.
response - in case we need to set cookies. Shouldn't write to it.
Returns:
the feed entries to be added to the feed
Throws:
Exception - any exception that occured during document building
See Also:
Entry