Package org.apache.wiki.rss
Class DefaultRSSGenerator
java.lang.Object
org.apache.wiki.rss.DefaultRSSGenerator
- All Implemented Interfaces:
Initializable
,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
ConstructorsConstructorDescriptionDefaultRSSGenerator
(Engine engine, Properties properties) Builds the RSS generator for a given Engine. -
Method Summary
Modifier and TypeMethodDescriptiongenerate()
Generates the RSS resource.generateBlogRSS
(Context wikiContext, List<Page> changed, Feed feed) Creates RSS from modifications as if this page was a blog (using the WeblogPlugin).Generates a feed based on a context and list of changes.generateFullWikiRSS
(Context wikiContext, Feed feed) Generates an RSS feed for the entire wiki.generateWikiPageRSS
(Context wikiContext, List<Page> changed, Feed feed) Create RSS/Atom as if this page was a wikipage (in contrast to Blog mode).returns the rss file.void
initialize
(Engine engine, Properties properties) Initializes this Engine component.boolean
Returnstrue
if RSS generation is enabled.void
setEnabled
(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:
initialize
in 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:
generate
in 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 IllegalArgumentException Generates a feed based on a context and list of changes.- Specified by:
generateFeed
in 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
Returnstrue
if RSS generation is enabled.- Specified by:
isEnabled
in 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:
setEnabled
in interfaceRSSGenerator
- Parameters:
enabled
- whether RSS generation is considered enabled.
-
getRssFile
returns the rss file.- Specified by:
getRssFile
in 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:
generateFullWikiRSS
in 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:
generateWikiPageRSS
in 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:
generateBlogRSS
in 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.
-