Package org.apache.velocity.app.event.implement

# 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.*

Regular expressions should follow the format used by the Java language. More info in the Pattern class documentation.

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

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.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### log

protected org.slf4j.Logger log

## Constructor Details

### EscapeReference

public EscapeReference()

## Method Details

### 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 form

    eventhandler.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 interface `ReferenceInsertionEventHandler`
Parameters:
  `context` - current context
  `reference` -
  `value` -
Returns:
  Escaped text.

### setRuntimeServices

public void setRuntimeServices(RuntimeServices rs)
Called automatically when event cartridge is initialized.

Specified by:
  `setRuntimeServices` in interface `RuntimeServicesAware`
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.