Package org.apache.wiki.filters
Class DefaultFilterManager
java.lang.Object
org.apache.wiki.modules.BaseModuleManager
org.apache.wiki.filters.DefaultFilterManager
- All Implemented Interfaces:
FilterManager
,ModuleManager
public class DefaultFilterManager extends BaseModuleManager implements FilterManager
Manages the page filters. Page filters are components that can be executed at certain places:
- Before the page is translated into HTML.
- After the page has been translated into HTML.
- Before the page is saved.
- After the page has been saved.
The initial page filter configuration is kept in a file called "filters.xml". The format is really very simple:
<pagefilters> <filter> <class>org.apache.wiki.filters.ProfanityFilter</class> <filter> <filter> <class>org.apache.wiki.filters.TestFilter</class> <param> <name>foobar</name> <value>Zippadippadai</value> </param> <param> <name>blatblaa</name> <value>5</value> </param> </filter> </pagefilters>The <filter> -sections define the filters. For more information, please see the PageFilterConfiguration page in the JSPWiki distribution.
-
Field Summary
Fields inherited from class org.apache.wiki.modules.BaseModuleManager
m_engine
Fields inherited from interface org.apache.wiki.filters.FilterManager
DEFAULT_XMLFILE, PROP_FILTERXML, SYSTEM_FILTER_PRIORITY, USER_FILTER_PRIORITY
Fields inherited from interface org.apache.wiki.modules.ModuleManager
PLUGIN_RESOURCE_LOCATION
-
Constructor Summary
Constructors Constructor Description DefaultFilterManager(Engine engine, java.util.Properties props)
Constructs a new FilterManager object. -
Method Summary
Modifier and Type Method Description void
addPageFilter(PageFilter f, int priority)
Adds a page filter to the queue.void
destroy()
Notifies PageFilters to clean up their ressources.void
doPostSaveFiltering(Context context, java.lang.String pageData)
Does the page filtering after the page has been saved.java.lang.String
doPostTranslateFiltering(Context context, java.lang.String htmlData)
Does the filtering after HTML translation.java.lang.String
doPreSaveFiltering(Context context, java.lang.String pageData)
Does the filtering before a save to the page repository.java.lang.String
doPreTranslateFiltering(Context context, java.lang.String pageData)
Does the filtering before a translation.void
fireEvent(int type, Context context)
Fires a WikiPageEvent of the provided type and WikiContext.java.util.List<PageFilter>
getFilterList()
Returns the list of filters currently installed.org.apache.wiki.filters.DefaultFilterManager.PageFilterInfo
getModuleInfo(java.lang.String moduleName)
Returns theWikiModuleInfo
information about the provided moduleName.protected void
initialize(java.util.Properties props)
Initializes the filters from an XML file.java.util.Collection<WikiModuleInfo>
modules()
Returns a collection of modules currently managed by this ModuleManager.Methods inherited from class org.apache.wiki.modules.BaseModuleManager
checkCompatibility, modules
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.wiki.modules.ModuleManager
checkCompatibility
-
Constructor Details
-
DefaultFilterManager
Constructs a new FilterManager object.- Parameters:
engine
- The Engine which owns the FilterManagerprops
- Properties to initialize the FilterManager with- Throws:
WikiException
- If something goes wrong.
-
-
Method Details
-
addPageFilter
Adds a page filter to the queue. The priority defines in which order the page filters are run, the highest priority filters go in the queue first.In case two filters have the same priority, their execution order is the insertion order.
- Specified by:
addPageFilter
in interfaceFilterManager
- Parameters:
f
- PageFilter to addpriority
- The priority in which position to add it in.- Throws:
java.lang.IllegalArgumentException
- If the PageFilter is null or invalid.- Since:
- 2.1.44.
-
initialize
Initializes the filters from an XML file.- Parameters:
props
- The list of properties. Typically jspwiki.properties- Throws:
WikiException
- If something goes wrong.
-
doPreTranslateFiltering
public java.lang.String doPreTranslateFiltering(Context context, java.lang.String pageData) throws FilterExceptionDoes the filtering before a translation.- Specified by:
doPreTranslateFiltering
in interfaceFilterManager
- Parameters:
context
- The WikiContextpageData
- WikiMarkup data to be passed through the preTranslate chain.- Returns:
- The modified WikiMarkup
- Throws:
FilterException
- If any of the filters throws a FilterException- See Also:
PageFilter.preTranslate(Context, String)
-
doPostTranslateFiltering
public java.lang.String doPostTranslateFiltering(Context context, java.lang.String htmlData) throws FilterExceptionDoes the filtering after HTML translation.- Specified by:
doPostTranslateFiltering
in interfaceFilterManager
- Parameters:
context
- The WikiContexthtmlData
- HTML data to be passed through the postTranslate- Returns:
- The modified HTML
- Throws:
FilterException
- If any of the filters throws a FilterException- See Also:
PageFilter.postTranslate(Context, String)
-
doPreSaveFiltering
public java.lang.String doPreSaveFiltering(Context context, java.lang.String pageData) throws FilterExceptionDoes the filtering before a save to the page repository.- Specified by:
doPreSaveFiltering
in interfaceFilterManager
- Parameters:
context
- The WikiContextpageData
- WikiMarkup data to be passed through the preSave chain.- Returns:
- The modified WikiMarkup
- Throws:
FilterException
- If any of the filters throws a FilterException- See Also:
PageFilter.preSave(Context, String)
-
doPostSaveFiltering
Does the page filtering after the page has been saved.- Specified by:
doPostSaveFiltering
in interfaceFilterManager
- Parameters:
context
- The WikiContextpageData
- WikiMarkup data to be passed through the postSave chain.- Throws:
FilterException
- If any of the filters throws a FilterException- See Also:
PageFilter.postSave(Context, String)
-
getFilterList
Returns the list of filters currently installed. Note that this is not a copy, but the actual list. So be careful with it.- Specified by:
getFilterList
in interfaceFilterManager
- Returns:
- A List of PageFilter objects
-
destroy
Notifies PageFilters to clean up their ressources.- Specified by:
destroy
in interfaceFilterManager
-
fireEvent
Fires a WikiPageEvent of the provided type and WikiContext. Invalid WikiPageEvent types are ignored.- Parameters:
type
- the WikiPageEvent type to be fired.context
- the WikiContext of the event.- See Also:
WikiPageEvent
-
modules
Returns a collection of modules currently managed by this ModuleManager. Each entry is an instance of the WikiModuleInfo class. This method should return something which is safe to iterate over, even if the underlying collection changes.- Specified by:
modules
in interfaceModuleManager
- Returns:
- A Collection of WikiModuleInfo instances.
-
getModuleInfo
public org.apache.wiki.filters.DefaultFilterManager.PageFilterInfo getModuleInfo(java.lang.String moduleName)Returns theWikiModuleInfo
information about the provided moduleName.- Specified by:
getModuleInfo
in interfaceModuleManager
- Returns:
- The wikiModuleInfo
-