Package org.apache.wiki.rss
Class DefaultRSSGenerator
java.lang.Object
org.apache.wiki.rss.DefaultRSSGenerator
- All Implemented Interfaces:
Initializable,RSSGenerator
public class DefaultRSSGenerator extends Object implements RSSGenerator
Default implementation for
RSSGenerator.
-
Field Summary
Fields inherited from interface org.apache.wiki.rss.RSSGenerator
ATOM, MODE_BLOG, MODE_FULL, MODE_WIKI, PROP_CHANNEL_DESCRIPTION, PROP_CHANNEL_LANGUAGE, PROP_CHANNEL_TITLE, PROP_GENERATE_RSS, PROP_INTERVAL, PROP_RSS_AUTHOR, PROP_RSS_AUTHOREMAIL, PROP_RSSFILE, RSS10, RSS20 -
Constructor Summary
Constructors Constructor Description DefaultRSSGenerator(Engine engine, Properties properties)Builds the RSS generator for a given Engine. -
Method Summary
Modifier and Type Method Description Stringgenerate()Generates the RSS resource.StringgenerateBlogRSS(Context wikiContext, List<Page> changed, Feed feed)Creates RSS from modifications as if this page was a blog (using the WeblogPlugin).StringgenerateFeed(Context wikiContext, List<Page> changed, String mode, String type)Generates a feed based on a context and list of changes.StringgenerateFullWikiRSS(Context wikiContext, Feed feed)Generates an RSS feed for the entire wiki.StringgenerateWikiPageRSS(Context wikiContext, List<Page> changed, Feed feed)Create RSS/Atom as if this page was a wikipage (in contrast to Blog mode).StringgetRssFile()returns the rss file.voidinitialize(Engine engine, Properties properties)Initializes this Engine component.booleanisEnabled()Returnstrueif RSS generation is enabled.voidsetEnabled(boolean enabled)Turns RSS generation on or off.
-
Constructor Details
-
DefaultRSSGenerator
Builds the RSS generator for a given Engine.- Parameters:
engine- The Engine.properties- The properties.
-
-
Method Details
-
initialize
Initializes this Engine component. Note that the engine is not fully initialized at this point, so don't do anything fancy here - use lazy init, if you have to.
Start the RSS generator & generator thread
- Specified by:
initializein interfaceInitializable- Parameters:
engine- Engine performing the initialization.properties- Properties for setup.
-
generate
Generates the RSS resource. You probably want to output this result into a file or something, or serve as output from a servlet.- Specified by:
generatein interfaceRSSGenerator- Returns:
- A RSS 1.0 feed in the "full" mode.
-
generateFeed
public String generateFeed(Context wikiContext, List<Page> changed, String mode, String type) throws IllegalArgumentExceptionGenerates a feed based on a context and list of changes.- Specified by:
generateFeedin interfaceRSSGenerator- Parameters:
wikiContext- The WikiContextchanged- A list of Entry objectsmode- The mode (wiki/blog)type- The type (RSS10, RSS20, ATOM). Default is RSS 1.0- Returns:
- Fully formed XML.
- Throws:
IllegalArgumentException- If an illegal mode is given.
-
isEnabled
Returnstrueif RSS generation is enabled.- Specified by:
isEnabledin interfaceRSSGenerator- Returns:
- whether RSS generation is currently enabled
-
setEnabled
Turns RSS generation on or off. This setting is used to set the "enabled" flag only for use by callers, and does not actually affect whether theRSSGenerator.generate()orRSSGenerator.generateFeed(Context, List, String, String)methods output anything.- Specified by:
setEnabledin interfaceRSSGenerator- Parameters:
enabled- whether RSS generation is considered enabled.
-
getRssFile
returns the rss file.- Specified by:
getRssFilein interfaceRSSGenerator- Returns:
- the rss file.
-
generateFullWikiRSS
Generates an RSS feed for the entire wiki. Each item should be an instance of the RSSItem class.- Specified by:
generateFullWikiRSSin interfaceRSSGenerator- Parameters:
wikiContext- A WikiContextfeed- A Feed to generate the feed to.- Returns:
- feed.getString().
-
generateWikiPageRSS
Create RSS/Atom as if this page was a wikipage (in contrast to Blog mode).- Specified by:
generateWikiPageRSSin interfaceRSSGenerator- Parameters:
wikiContext- The WikiContextchanged- A List of changed WikiPages.feed- A Feed object to fill.- Returns:
- the RSS representation of the wiki context
-
generateBlogRSS
Creates RSS from modifications as if this page was a blog (using the WeblogPlugin).- Specified by:
generateBlogRSSin interfaceRSSGenerator- Parameters:
wikiContext- The WikiContext, as usual.changed- A list of the changed pages.feed- A valid Feed object. The feed will be used to create the RSS/Atom, depending on which kind of an object you want to put in it.- Returns:
- A String of valid RSS or Atom.
-