com.ecyrd.jspwiki.filters
Interface PageFilter

All Known Implementing Classes:
BasicPageFilter, CreoleFilter, PageEventFilter, PingWeblogsComFilter, ProfanityFilter, ReferenceManager, SearchManager, SpamFilter

public interface PageFilter

Provides a definition for a page filter. A page filter is a class that can be used to transform the WikiPage content being saved or being loaded at any given time.

Note that the WikiContext.getPage() method always returns the context in which text is rendered, i.e. the original request. Thus the content may actually be different content than what what the wikiContext.getPage() implies! This happens often if you are for example including multiple pages on the same page.

PageFilters must be thread-safe! There is only one instance of each PageFilter per each WikiEngine invocation. If you need to store data persistently, use VariableManager, or WikiContext.

As of 2.5.30, initialize() gains access to the WikiEngine.


Method Summary
 void destroy(WikiEngine engine)
          Called for every filter, e.g. on wiki eingine shutdown.
 void initialize(WikiEngine engine, Properties properties)
          Is called whenever the a new PageFilter is instantiated and reset.
 void postSave(WikiContext wikiContext, String content)
          This method is called after the page has been successfully saved.
 String postTranslate(WikiContext wikiContext, String htmlContent)
          This method is called after a page has been fed through the translation process, so anything you are seeing here is translated content.
 String preSave(WikiContext wikiContext, String content)
          This method is called before the page has been saved to the PageProvider.
 String preTranslate(WikiContext wikiContext, String content)
          This method is called whenever a page has been loaded from the provider, but not yet been sent through the markup-translation process.
 

Method Detail

initialize

void initialize(WikiEngine engine,
                Properties properties)
                throws FilterException
Is called whenever the a new PageFilter is instantiated and reset.

Parameters:
engine - The WikiEngine whic owns this PageFilter
properties - The properties ripped from filters.xml.
Throws:
FilterException - If the filter could not be initialized. If this is thrown, the filter is not added to the internal queues.

preTranslate

String preTranslate(WikiContext wikiContext,
                    String content)
                    throws FilterException
This method is called whenever a page has been loaded from the provider, but not yet been sent through the markup-translation process. Note that you cannot do HTML translation here, because it will be escaped.

Parameters:
wikiContext - The current wikicontext.
content - WikiMarkup.
Returns:
The modified wikimarkup content.
Throws:
FilterException - If something goes wrong. Throwing this causes the entire page processing to be abandoned.

postTranslate

String postTranslate(WikiContext wikiContext,
                     String htmlContent)
                     throws FilterException
This method is called after a page has been fed through the translation process, so anything you are seeing here is translated content. If you want to do any of your own WikiMarkup2HTML translation, do it here.

Parameters:
wikiContext - The WikiContext.
htmlContent - The translated HTML
Returns:
The modified HTML
Throws:
FilterException - If something goes wrong. Throwing this causes the entire page processing to be abandoned.

preSave

String preSave(WikiContext wikiContext,
               String content)
               throws FilterException
This method is called before the page has been saved to the PageProvider.

Parameters:
wikiContext - The WikiContext
content - The wikimarkup that the user just wanted to save.
Returns:
The modified wikimarkup
Throws:
FilterException - If something goes wrong. Throwing this causes the entire page processing to be abandoned.

postSave

void postSave(WikiContext wikiContext,
              String content)
              throws FilterException
This method is called after the page has been successfully saved. If the saving fails for any reason, then this method will not be called.

Since the result is discarded from this method, this is only useful for things like counters, etc.

Parameters:
wikiContext - The WikiContext
content - The content which was just stored.
Throws:
FilterException - If something goes wrong. As the page is already saved, This is just logged.

destroy

void destroy(WikiEngine engine)
Called for every filter, e.g. on wiki eingine shutdown. Use this if you have to clean up or close global resources you allocated in the initialize() method.

Parameters:
engine - The WikiEngine which owns this filter.
Since:
2.5.36