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 Context#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 Context#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 Engine invocation. If you need to store data persistently, use VariableManager, or WikiContext.
Design notes
As of 2.5.30, initialize() gains access to the Engine.
As of 2.11.0.M7, almost all methods from BasicPageFilter end up here as default methods.
In order to preserve backwards compatibility with filters not using the public API, these default methods checks if a given filter is using the old, non public API and, if that's the case attempt to execute the old, non public api corresponding method. If the filter uses the public API, then the default callback is used. None of the default callbacks do anything, so it is a good idea for you to implement only methods that you need.
| Modifier and Type | Method and Description |
|---|---|
default void |
destroy(Engine engine)
Called for every filter, e.g. on wiki engine shutdown.
|
void |
initialize(Engine engine,
java.util.Properties properties)
Is called whenever the a new PageFilter is instantiated and reset.
|
default void |
postSave(Context context,
java.lang.String content)
This method is called after the page has been successfully saved.
|
default java.lang.String |
postTranslate(Context context,
java.lang.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.
|
default java.lang.String |
preSave(Context context,
java.lang.String content)
This method is called before the page has been saved to the PageProvider.
|
default java.lang.String |
preTranslate(Context context,
java.lang.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.
|
void initialize(Engine engine, java.util.Properties properties) throws FilterException
engine - The Engine which owns this PageFilterproperties - The properties ripped from filters.xml.FilterException - If the filter could not be initialized. If this is thrown, the filter is not added to the internal queues.default java.lang.String preTranslate(Context context, java.lang.String content) throws FilterException
context - The current context.content - WikiMarkup.FilterException - If something goes wrong. Throwing this causes the entire page processing to be abandoned.default java.lang.String postTranslate(Context context, java.lang.String htmlContent) throws FilterException
context - The WikiContext.htmlContent - The translated HTML.FilterException - If something goes wrong. Throwing this causes the entire page processing to be abandoned.default java.lang.String preSave(Context context, java.lang.String content) throws FilterException
context - The WikiContextcontent - The wikimarkup that the user just wanted to save.FilterException - If something goes wrong. Throwing this causes the entire page processing to be abandoned.default void postSave(Context context, java.lang.String content) throws FilterException
Since the result is discarded from this method, this is only useful for things like counters, etc.
context - The WikiContextcontent - The content which was just stored.FilterException - If something goes wrong. As the page is already saved, This is just logged.Copyright (c) 2001-2022 The Apache Software Foundation. All rights reserved.