Class EscapeReference
- java.lang.Object
-
- org.apache.velocity.app.event.implement.EscapeReference
-
- All Implemented Interfaces:
EventHandler
,ReferenceInsertionEventHandler
,RuntimeServicesAware
- Direct Known Subclasses:
EscapeHtmlReference
,EscapeJavaScriptReference
,EscapeSqlReference
,EscapeXmlReference
public abstract class EscapeReference extends Object implements ReferenceInsertionEventHandler, RuntimeServicesAware
Base class for escaping references. To use it, override the following methods:String escape(String text)
- escape the provided text
String getMatchAttribute()
- retrieve the configuration attribute used to match references (see below)
By default, all references are escaped. However, by setting the match attribute in the configuration file to a regular expression, users can specify which references to escape. For example the following configuration property tells the EscapeSqlReference event handler to only escape references that start with "sql". (e.g.
$sql
,$sql.toString(),
, etc).eventhandler.escape.sql.match = sql.*
- Since:
- 1.5
- Version:
- $Id$
- Author:
- Will Glass-Husain
-
-
Field Summary
Fields Modifier and Type Field Description protected org.slf4j.Logger
log
-
Constructor Summary
Constructors Constructor Description EscapeReference()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract String
escape(Object text)
Escape the given text.protected abstract String
getMatchAttribute()
Specify the configuration attribute that specifies the regular expression.protected RuntimeServices
getRuntimeServices()
Retrieve a reference to RuntimeServices.Object
referenceInsert(Context context, String reference, Object value)
Escape the provided text if it matches the configured regular expression.void
setRuntimeServices(RuntimeServices rs)
Called automatically when event cartridge is initialized.
-
-
-
Method Detail
-
escape
protected abstract String escape(Object text)
Escape the given text. Override this in a subclass to do the actual escaping.- Parameters:
text
- the text to escape- Returns:
- the escaped text
-
getMatchAttribute
protected abstract String getMatchAttribute()
Specify the configuration attribute that specifies the regular expression. Ideally should be in a formeventhandler.escape.XYZ.match
where
XYZ
is the type of escaping being done.- Returns:
- configuration attribute
-
referenceInsert
public Object referenceInsert(Context context, String reference, Object value)
Escape the provided text if it matches the configured regular expression.- Specified by:
referenceInsert
in interfaceReferenceInsertionEventHandler
- Parameters:
reference
-value
-context
- current context- Returns:
- Escaped text.
-
setRuntimeServices
public void setRuntimeServices(RuntimeServices rs)
Called automatically when event cartridge is initialized.- Specified by:
setRuntimeServices
in interfaceRuntimeServicesAware
- Parameters:
rs
- instance of RuntimeServices
-
getRuntimeServices
protected RuntimeServices getRuntimeServices()
Retrieve a reference to RuntimeServices. Use this for checking additional configuration properties.- Returns:
- The current runtime services object.
-
-