java.lang.Object
com.samskivert.mustache.Template
Represents a compiled template. Templates are executed with a context to generate
output. The context can be any tree of objects. Variables are resolved against the context.
Given a name
foo
, the following mechanisms are supported for resolving its value
(and are sought in this order):
- If the variable has the special name
this
the context object itself will be returned. This is useful when iterating over lists. - If the object is a
Map
,Map.get(java.lang.Object)
will be called with the stringfoo
as the key. - A method named
foo
in the supplied object (with non-void return value). - A method named
getFoo
in the supplied object (with non-void return value). - A field named
foo
in the supplied object.
The field type, method return type, or map value type should correspond to the desired
behavior if the resolved name corresponds to a section. Boolean
is used for showing or
hiding sections without binding a sub-context. Arrays, Iterator
and Iterable
implementations are used for sections that repeat, with the context bound to the elements of the
array, iterator or iterable. Lambdas are current unsupported, though they would be easy enough
to add if desire exists. See the Mustache
documentation for more details on section behavior.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static class
class
Encapsulates a fragment of a template that is passed to a lambda.protected static class
Used to cache variable fetchers for a given context class, name combination.protected static class
A template is broken into segments. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final Mustache.Compiler
protected final Map
<Template.Key, Mustache.VariableFetcher> protected final Template.Segment[]
protected static final String
protected static final String
protected static final String
protected static final String
static final Object
A sentinel object that can be returned by aMustache.Collector
to indicate that a variable does not exist in a particular context.protected static Mustache.VariableFetcher
A fetcher cached for lookups that failed to find a fetcher.protected static final String
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Template
(Template.Segment[] segs, Mustache.Compiler compiler) -
Method Summary
Modifier and TypeMethodDescriptionprotected Object
checkForMissing
(String name, int line, boolean missingIsNull, Object value) protected Template.Fragment
createFragment
(Template.Segment[] segs, Template.Context currentCtx) Executes this template with the given context, returning the results as a string.void
Executes this template with the given context, writing the results to the supplied writer.void
Executes this template with the supplied context and parent context, writing the results to the supplied writer.protected void
executeSegs
(Template.Context ctx, Writer out) protected Object
getCompoundValue
(Template.Context ctx, String name, int line, boolean missingIsNull) Decomposes the compound keyname
into components and resolves the value they reference.protected Object
getSectionValue
(Template.Context ctx, String name, int line) Returns the value of the specified variable, noting that it is intended to be used as the contents for a section.protected Object
getValue
(Template.Context ctx, String name, int line, boolean missingIsNull) Called by executing segments to obtain the value of the specified variable in the supplied context.protected Object
getValueIn
(Object data, String name, int line) protected Object
getValueOrDefault
(Template.Context ctx, String name, int line) Returns the value for the specified variable, or the configured default value if the variable resolves to null.protected Template
protected static boolean
isThisName
(String name) protected Template
replaceBlocks
(Map<String, Mustache.BlockSegment> blocks) void
visit
(Mustache.Visitor visitor) Visits the tags in this template (viavisitor
) without executing it.
-
Field Details
-
NO_FETCHER_FOUND
A sentinel object that can be returned by aMustache.Collector
to indicate that a variable does not exist in a particular context. -
_segs
-
_compiler
-
_fcache
-
DOT_NAME
- See Also:
-
THIS_NAME
- See Also:
-
FIRST_NAME
- See Also:
-
LAST_NAME
- See Also:
-
INDEX_NAME
- See Also:
-
NOT_FOUND_FETCHER
A fetcher cached for lookups that failed to find a fetcher.
-
-
Constructor Details
-
Template
-
-
Method Details
-
execute
Executes this template with the given context, returning the results as a string.- Throws:
MustacheException
- if an error occurs while executing or writing the template.
-
execute
Executes this template with the given context, writing the results to the supplied writer.- Throws:
MustacheException
- if an error occurs while executing or writing the template.
-
execute
Executes this template with the supplied context and parent context, writing the results to the supplied writer. The parent context will be searched for variables that cannot be found in the main context, in the same way the main context becomes a parent context when entering a block.- Throws:
MustacheException
- if an error occurs while executing or writing the template.
-
visit
Visits the tags in this template (viavisitor
) without executing it.- Parameters:
visitor
- the visitor to be called back on each tag in the template.
-
indent
-
replaceBlocks
-
executeSegs
- Throws:
MustacheException
-
createFragment
-
getValue
Called by executing segments to obtain the value of the specified variable in the supplied context.- Parameters:
ctx
- the context in which to look up the variable.name
- the name of the variable to be resolved.missingIsNull
- whether to fail if a variable cannot be resolved, or to return null in that case.- Returns:
- the value associated with the supplied name or null if no value could be resolved.
-
getCompoundValue
protected Object getCompoundValue(Template.Context ctx, String name, int line, boolean missingIsNull) Decomposes the compound keyname
into components and resolves the value they reference. -
getSectionValue
Returns the value of the specified variable, noting that it is intended to be used as the contents for a section. -
getValueOrDefault
Returns the value for the specified variable, or the configured default value if the variable resolves to null. SeegetValue(com.samskivert.mustache.Template.Context, java.lang.String, int, boolean)
. -
getValueIn
-
checkForMissing
-
isThisName
-