Interface RSSGenerator

  • All Superinterfaces:
    Initializable
    All Known Implementing Classes:
    DefaultRSSGenerator

    public interface RSSGenerator
    extends Initializable
    The master class for generating different kinds of Feeds (including RSS1.0, 2.0 and Atom).

    This class can produce quite a few different styles of feeds. The following modes are available:

    • wiki - All the changes to the given page are enumerated and announced as diffs.
    • full - Each page is only considered once. This produces a very RecentChanges-style feed, where each page is only listed once, even if it has changed multiple times.
    • blog - Each page change is assumed to be a blog entry, so no diffs are produced, but the page content is always completely in the entry in rendered HTML.
    Since:
    1.7.5.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String ATOM
      Parameter value to represent Atom feeds.
      static java.lang.String MODE_BLOG
      Parameter value to represent a 'blog' style feed.
      static java.lang.String MODE_FULL
      Parameter value to represent a 'full' style feed.
      static java.lang.String MODE_WIKI
      Parameter value to represent a 'wiki' style feed.
      static java.lang.String PROP_CHANNEL_DESCRIPTION
      Defines the property name for the RSS channel description.
      static java.lang.String PROP_CHANNEL_LANGUAGE
      Defines the property name for the RSS channel language.
      static java.lang.String PROP_CHANNEL_TITLE
      Defines the property name for the RSS channel title.
      static java.lang.String PROP_GENERATE_RSS
      Defines the property name for the RSS generator main switch.
      static java.lang.String PROP_INTERVAL
      Defines the property name for the RSS generation interval in seconds.
      static java.lang.String PROP_RSS_AUTHOR
      Defines the property name for the RSS author.
      static java.lang.String PROP_RSS_AUTHOREMAIL
      Defines the property name for the RSS author email.
      static java.lang.String PROP_RSSFILE
      Defines the property name for the RSS file that the wiki should generate.
      static java.lang.String RSS10
      Parameter value to represent RSS 1.0 feeds.
      static java.lang.String RSS20
      Parameter value to represent RSS 2.0 feeds.
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      static java.lang.String format​(java.lang.String s)
      Does the required formatting and entity replacement for XML.
      java.lang.String generate()
      Generates the RSS resource.
      java.lang.String generateBlogRSS​(Context wikiContext, java.util.List<Page> changed, Feed feed)
      Creates RSS from modifications as if this page was a blog (using the WeblogPlugin).
      java.lang.String generateFeed​(Context wikiContext, java.util.List<Page> changed, java.lang.String mode, java.lang.String type)
      Generates a feed based on a context and list of changes.
      java.lang.String generateFullWikiRSS​(Context wikiContext, Feed feed)
      Generates an RSS feed for the entire wiki.
      java.lang.String generateWikiPageRSS​(Context wikiContext, java.util.List<Page> changed, Feed feed)
      Create RSS/Atom as if this page was a wikipage (in contrast to Blog mode).
      static java.lang.String getContentType​(java.lang.String mode)
      Returns the content type of this RSS feed.
      java.lang.String getRssFile()
      returns the rss file.
      boolean isEnabled()
      Returns true if RSS generation is enabled.
      void setEnabled​(boolean enabled)
      Turns RSS generation on or off.
    • Method Detail

      • generate

        java.lang.String generate()
        Generates the RSS resource. You probably want to output this result into a file or something, or serve as output from a servlet.
        Returns:
        A RSS 1.0 feed in the "full" mode.
      • generateFeed

        java.lang.String generateFeed​(Context wikiContext,
                                      java.util.List<Page> changed,
                                      java.lang.String mode,
                                      java.lang.String type)
                               throws java.lang.IllegalArgumentException
        Generates a feed based on a context and list of changes.
        Parameters:
        wikiContext - The WikiContext
        changed - A list of Entry objects
        mode - The mode (wiki/blog)
        type - The type (RSS10, RSS20, ATOM). Default is RSS 1.0
        Returns:
        Fully formed XML.
        Throws:
        java.lang.IllegalArgumentException - If an illegal mode is given.
      • isEnabled

        boolean isEnabled()
        Returns true if RSS generation is enabled.
        Returns:
        whether RSS generation is currently enabled
      • setEnabled

        void setEnabled​(boolean enabled)
        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 the generate() or generateFeed(Context, List, String, String) methods output anything.
        Parameters:
        enabled - whether RSS generation is considered enabled.
      • getRssFile

        java.lang.String getRssFile()
        returns the rss file.
        Returns:
        the rss file.
      • generateFullWikiRSS

        java.lang.String generateFullWikiRSS​(Context wikiContext,
                                             Feed feed)
        Generates an RSS feed for the entire wiki. Each item should be an instance of the RSSItem class.
        Parameters:
        wikiContext - A WikiContext
        feed - A Feed to generate the feed to.
        Returns:
        feed.getString().
      • generateWikiPageRSS

        java.lang.String generateWikiPageRSS​(Context wikiContext,
                                             java.util.List<Page> changed,
                                             Feed feed)
        Create RSS/Atom as if this page was a wikipage (in contrast to Blog mode).
        Parameters:
        wikiContext - The WikiContext
        changed - A List of changed WikiPages.
        feed - A Feed object to fill.
        Returns:
        the RSS representation of the wiki context
      • generateBlogRSS

        java.lang.String generateBlogRSS​(Context wikiContext,
                                         java.util.List<Page> changed,
                                         Feed feed)
        Creates RSS from modifications as if this page was a blog (using the WeblogPlugin).
        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.
      • format

        static java.lang.String format​(java.lang.String s)
        Does the required formatting and entity replacement for XML.
        Parameters:
        s - String to format.
        Returns:
        A formatted string.
      • getContentType

        static java.lang.String getContentType​(java.lang.String mode)
        Returns the content type of this RSS feed.
        Parameters:
        mode - the RSS mode: RSS10, RSS20 or ATOM.
        Returns:
        the content type
        Since:
        2.3.15