Class TemplateScript
java.lang.Object
org.apache.commons.jexl3.internal.TemplateScript
- All Implemented Interfaces:
JxltEngine.Template
A Template instance.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final TemplateEngine.TemplateExpression[]
The TemplateEngine expressions called by the script.private final TemplateEngine
The engine.private final String
The prefix marker.private final ASTJexlScript
The resulting script.private final TemplateEngine.Block[]
The array of source blocks. -
Constructor Summary
ConstructorsConstructorDescriptionTemplateScript
(TemplateEngine engine, String thePrefix, TemplateEngine.Block[] theSource, ASTJexlScript theScript, TemplateEngine.TemplateExpression[] theExprs) Private ctor used to expand deferred expressions during prepare.TemplateScript
(TemplateEngine engine, JexlInfo jexlInfo, String directive, Reader reader, String... parms) Creates a new template from an character input. -
Method Summary
Modifier and TypeMethodDescriptionasString()
Recreate the template source from its inner components.private static void
collectPrintScope
(JexlNode node, Map<Integer, JexlNode.Info> minfo) Collects the scope surrounding a call to jexl:print(i).void
evaluate
(JexlContext context, Writer writer) Evaluates this template.void
evaluate
(JexlContext context, Writer writer, Object... args) Evaluates this template.(package private) TemplateEngine.TemplateExpression[]
String[]
Gets the list of parameters expected by this template.Gets this script pragmas.(package private) ASTJexlScript
Gets the list of variables accessed by this template.prepare
(JexlContext context) Prepares this template by expanding any contained deferred TemplateExpression.private static Scope
scopeOf
(JexlNode.Info info) Gets the scope from an info.toString()
-
Field Details
-
prefix
The prefix marker. -
source
The array of source blocks. -
script
The resulting script. -
exprs
The TemplateEngine expressions called by the script. -
jxlt
The engine.
-
-
Constructor Details
-
TemplateScript
public TemplateScript(TemplateEngine engine, JexlInfo jexlInfo, String directive, Reader reader, String... parms) Creates a new template from an character input.- Parameters:
engine
- the template enginejexlInfo
- the source infodirective
- the prefix for lines of code; can not be "$", "${", "#" or "#{" since this would preclude being able to differentiate directives and jxlt expressionsreader
- the input readerparms
- the parameter names- Throws:
NullPointerException
- if either the directive prefix or input is nullIllegalArgumentException
- if the directive prefix is invalid
-
TemplateScript
TemplateScript(TemplateEngine engine, String thePrefix, TemplateEngine.Block[] theSource, ASTJexlScript theScript, TemplateEngine.TemplateExpression[] theExprs) Private ctor used to expand deferred expressions during prepare.- Parameters:
engine
- the template enginethePrefix
- the directive prefixtheSource
- the sourcetheScript
- the scripttheExprs
- the expressions
-
-
Method Details
-
scopeOf
Gets the scope from an info.- Parameters:
info
- the node info- Returns:
- the scope
-
collectPrintScope
Collects the scope surrounding a call to jexl:print(i).This allows to later parse the blocks with the known symbols in the frame visible to the parser.
- Parameters:
node
- the visited nodeminfo
- the map of printed expression number to node info
-
getScript
ASTJexlScript getScript()- Returns:
- script
-
getExpressions
TemplateEngine.TemplateExpression[] getExpressions()- Returns:
- exprs
-
toString
-
asString
Description copied from interface:JxltEngine.Template
Recreate the template source from its inner components.- Specified by:
asString
in interfaceJxltEngine.Template
- Returns:
- the template source rewritten
-
prepare
Description copied from interface:JxltEngine.Template
Prepares this template by expanding any contained deferred TemplateExpression.- Specified by:
prepare
in interfaceJxltEngine.Template
- Parameters:
context
- the context to prepare against- Returns:
- the prepared version of the template
-
evaluate
Description copied from interface:JxltEngine.Template
Evaluates this template.- Specified by:
evaluate
in interfaceJxltEngine.Template
- Parameters:
context
- the context to use during evaluationwriter
- the writer to use for output
-
evaluate
Description copied from interface:JxltEngine.Template
Evaluates this template.- Specified by:
evaluate
in interfaceJxltEngine.Template
- Parameters:
context
- the context to use during evaluationwriter
- the writer to use for outputargs
- the arguments
-
getVariables
Description copied from interface:JxltEngine.Template
Gets the list of variables accessed by this template.This method will visit all nodes of the sub-expressions and extract all variables whether they are written in 'dot' or 'bracketed' notation. (a.b is equivalent to a['b']).
- Specified by:
getVariables
in interfaceJxltEngine.Template
- Returns:
- the set of variables, each as a list of strings (ant-ish variables use more than 1 string) or the empty set if no variables are used
-
getParameters
Description copied from interface:JxltEngine.Template
Gets the list of parameters expected by this template.- Specified by:
getParameters
in interfaceJxltEngine.Template
- Returns:
- the parameter names array
-
getPragmas
Description copied from interface:JxltEngine.Template
Gets this script pragmas.- Specified by:
getPragmas
in interfaceJxltEngine.Template
- Returns:
- the (non null, may be empty) pragmas map
-