Class RewriteContext
java.lang.Object
sunlabs.brazil.handler.HtmlRewriter
sunlabs.brazil.template.RewriteContext
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
FieldsModifier and TypeFieldDescriptionThe prefix to use for locating keys in the server or request properties objects.The Request object, as passed to a handler's respond method.The server object, as passed to a handler's init method.A unique session id, if available.This is the prefix defined by the invoker of a set of templates.Fields inherited from class HtmlRewriter
lex, sb
-
Constructor Summary
ConstructorsConstructorDescriptionRewriteContext
(Server server, String prefix, Request request, String content, String sessionId, TemplateRunner runner, Vector templates) -
Method Summary
Modifier and TypeMethodDescriptionvoid
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 anyboolean
checkRewriteState
(int state) Check whether this RewriteContext is in the specified state.void
Decrement the nesting level counter.overwrite "get" to automatically do ${...} substitutions The default is "true".Get an attribute value, and optionally perform ${...} substitutions.Get a tag attribute, with a default value.Get the proper properties table based on the "namespace" attribute.int
Return the current nesting level counter.void
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
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.Grab all the markup between the current tag, and the corrosponding closing tag.void
Substitute all attribute values.int
tagsSeen()
Return the number of HTML tags seen to this point.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.Methods inherited from class HtmlRewriter
accumulate, append, appendToken, getArgs, getBody, getMap, getTag, getToken, getType, isSingleton, keys, killToken, nextTag, nextToken, pushback, put, quote, remove, reset, setSingleton, setTag, setType, tagCount, tokenCount, toString
-
Field Details
-
server
The server object, as passed to a handler's init method. -
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. -
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. -
request
The Request object, as passed to a handler's respond method. -
sessionId
A unique session id, if available.
-
-
Constructor Details
-
RewriteContext
-
-
Method Details
-
abort
public void abort()Cause this RewriteContext to abort its processing. -
setRewriteState
public boolean setRewriteState(int state) Set the given state of this RewriteContext. -
unsetRewriteState
public void unsetRewriteState(int state) Unset the given state of this RewriteContext. -
checkRewriteState
public boolean checkRewriteState(int state) Check whether this RewriteContext is in the specified state. -
incrNestingLevel
public void incrNestingLevel()Increment the nesting level counter. -
decrNestingLevel
public void decrNestingLevel()Decrement the nesting level counter. -
getNestingLevel
public int getNestingLevel()Return the current nesting level counter. -
process
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. -
tagsSeen
public int tagsSeen()Return the number of HTML tags seen to this point. -
get
overwrite "get" to automatically do ${...} substitutions The default is "true". Setting the default to "false" and recompiling is more backward compatible (but less useful).- Overrides:
get
in classHtmlRewriter
- Returns:
- The value to which the specified key is mapped, or
null
if the key was not in the attributes. - See Also:
-
get
-
get
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 updflt
- The default attribute value (may be null)- Returns:
- The value of "name"
-
isTrue
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;
-
isClosingFor
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"
-
isClosingFor
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 foundclose
- if set, "tag" matches "/[prefix]tag", otherwise tag matches "[prefix]tag".- Returns:
- true if the current tag closes "tag"
-
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. -
addClosingTag
Add a closing tag to the list of tags that mark un-interpreted text Deal with the tag prefix, if any -
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. -
templateFromTag
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.
-
substAttributeValues
public void substAttributeValues()Substitute all attribute values.
-