sunlabs.brazil.template
Class RewriteContext
public
class
RewriteContext
extends HtmlRewriter
A variant containing instance variables that may be referenced by
rewriting filters. Every implementation of the template class
may define methods of the form:
tag_xxx
or
tag_slash_xxx
which will get called when the corrosponding HTML entity
<xxx ...>
or
</xxx ...>
is found in the content being filtered.
An instance of this class is passed to each tag
method, permitting introspection of the current filtering context.
Version: %V% RewriteContext.java
Field Summary |
String | prefix
The prefix to use for locating keys in the server or request properties
objects. |
Request | request
The Request object, as passed to a handler's respond method. |
Server | server
The server object, as passed to a handler's init method. |
String | sessionId
A unique session id, if available. |
String | templatePrefix
This is the prefix defined by the invoker of a set of templates. |
Method Summary |
void | abort()
Cause this RewriteContext to abort its processing. |
void | addClosingTag(String tag)
Add a closing tag to the list of tags that mark un-interpreted text
Deal with the tag prefix, if any |
boolean | checkRewriteState(int state)
Check whether this RewriteContext is in the specified state. |
void | decrNestingLevel()
Decrement the nesting level counter. |
String | get(String name)
overwrite "get" to automatically do ${...} substitutions
The default is "true". |
String | get(String name, boolean subst)
Get an attribute value, and optionally perform ${...} substitutions. |
String | get(String name, String dflt)
Get a tag attribute, with a default value.
|
Properties | getNamespaceProperties()
Get the proper properties table based on the "namespace"
attribute. |
int | getNestingLevel()
Return the current nesting level counter. |
void | incrNestingLevel()
Increment the nesting level counter. |
boolean | isClosingFor(String tag)
See if the current token is the closing tag for the given string.
|
boolean | isClosingFor(String tag, boolean close)
See if the current token is the closing tag for the given string.
|
boolean | isTrue(String name)
Determine the value of a boolean attribute in the current tag.
|
void | process()
Invoke a template on this token, if any template is interested in this
token. |
boolean | setRewriteState(int state)
Set the given state of this RewriteContext. |
String | snarfTillClose()
Grab all the markup between the current tag, and the corrosponding
closing tag. |
void | substAttributeValues()
Substitute all attribute values. |
int | tagsSeen()
Return the number of HTML tags seen to this point.
|
Template | templateFromTag(String tag)
Get the template that will process the supplied tag (if any).
|
void | unsetRewriteState(int state)
Unset the given state of this RewriteContext. |
public String prefix
The prefix to use for locating keys in the server or request properties
objects. This is a dynamic value that changes during template
processing. Before each template is processed, it is set to the
prefix associated with the template class that the current tag belongs
to.
The Request object, as passed to a handler's respond method.
The server object, as passed to a handler's init method.
public String sessionId
A unique session id, if available.
public String templatePrefix
This is the prefix defined by the invoker of a set of templates. Its
value corrosponds to the class that invokes a set of templates.
public RewriteContext(
Server server, String prefix,
Request request, String content, String sessionId,
TemplateRunner runner, Vector templates)
public void abort()
Cause this RewriteContext to abort its processing.
public void addClosingTag(String tag)
Add a closing tag to the list of tags that mark un-interpreted text
Deal with the tag prefix, if any
public boolean checkRewriteState(int state)
Check whether this RewriteContext is in the specified state.
public void decrNestingLevel()
Decrement the nesting level counter.
public String get(String name)
overwrite "get" to automatically do ${...} substitutions
The default is "true". Setting the default to "false" and
recompiling is more backward compatible (but less useful).
public String get(String name, boolean subst)
Get an attribute value, and optionally perform ${...} substitutions.
public String get(String name, String dflt)
Get a tag attribute, with a default value.
The name is looked-up as an attribute in the current tag. If
it is not found, the configuration property by the same name is used.
If that is not found,
dflt
is used instead.
Parameters: name The name of the attribute to look up dflt The default attribute value (may be null)
Returns: The value of "name"
public Properties getNamespaceProperties()
Get the proper properties table based on the "namespace"
attribute. The namespaces "local" (the default) and "server"
are special. The "sessionTable" cinfiguration
property can be used to override the default session-table,
which defaults to the template handler/filter prefix.
public int getNestingLevel()
Return the current nesting level counter.
public void incrNestingLevel()
Increment the nesting level counter.
public boolean isClosingFor(String tag)
See if the current token is the closing tag for the given string.
Account for tag prefix, if any.
Parameters: tag tag whose match ( e.g. /[prefix]tag is to be found
Returns: true if the current tag closes "tag"
public boolean isClosingFor(String tag, boolean close)
See if the current token is the closing tag for the given string.
Account for tag prefix, if any.
Parameters: tag tag whose match ( e.g. /[prefix]tag is to be found close if set, "tag" matches "/[prefix]tag", otherwise
tag matches "[prefix]tag".
Returns: true if the current tag closes "tag"
public boolean isTrue(String name)
Determine the value of a boolean attribute in the current tag.
${...} substitution is performed on the value.
Parameters: name The name of the boolean attribute
Returns: false if the value is:
null, "", "0", "no", "off", or "false"
true otherwise.
"attribute=" is false, but "attribute" with no
value is true;
public void process()
Invoke a template on this token, if any template is interested in this
token. The template may consume more than just this token, if it
wants.
public boolean setRewriteState(int state)
Set the given state of this RewriteContext.
public String snarfTillClose()
Grab all the markup between the current tag, and the corrosponding
closing tag. Nesting is supported. If there is no markup, or
the current tag is a singleton, the empty string is returned.
The starting and ending tags are not included in the markup.
public void substAttributeValues()
Substitute all attribute values.
public int tagsSeen()
Return the number of HTML tags seen to this point.
public
Template templateFromTag(String tag)
Get the template that will process the supplied tag (if any).
This allows template classes to get a handle on the template instances
of other classes running in the same template processing step. If
you need this (and sometimes you do), then there is an architectual
flaw, either in the template system or your classes or both.
Parameters: tag the name of the html tag that will get processed
Returns: The template instance, if one exists.
public void unsetRewriteState(int state)
Unset the given state of this RewriteContext.