public class ExtraBlockEmitter extends Emitter
This permits to render several strings and sections within a single template.
startOfBlock
Constructor and Description |
---|
ExtraBlockEmitter(String name,
Emitter body)
Creates a new instance with the given name and body.
|
Modifier and Type | Method and Description |
---|---|
Emitter |
copy()
Creates a deep copy of this emitter.
|
protected void |
emitToContext(LocalRenderContext context)
Actually produces the output while relying on the caller to properly handle any exception.
|
Emitter |
propagateVisitor(EmitterVisitor visitor)
Invokes the visitor on all sub emitters and on this emitter itself.
|
Emitter |
reduce()
Performs static optimizations at compile time.
|
void |
visitExpressions(Function<parsii.tokenizer.Position,ExpressionVisitor> visitor)
Visits all expressions contained in this emitter or its children.
|
emit, getStartOfBlock
protected void emitToContext(@Nonnull LocalRenderContext context) throws Exception
Emitter
emitToContext
in class Emitter
context
- the render context which provides access to the local and global environment and also the target
for the generated textException
- all thrown exceptions are caught and converted into a RenderException
@Nonnull public Emitter copy()
Emitter
When templates are inlined, the parameters are propagated and constant expressions and conditions are evaluated at compile time. This yields faster and more efficient templates. In order to perform these optimizations, we need a copy of the template and all its emitters which can safely be modified.
@Nonnull public Emitter reduce()
Emitter
Certain emitters can perform optimizations (evaluate constant expressions, combine constant outputs etc.) to create more efficient templates. This is especially important when a template is inlined, as this most probably provides a higher level of optimizations.
@Nonnull public Emitter propagateVisitor(@Nonnull EmitterVisitor visitor)
Emitter
propagateVisitor
in class Emitter
visitor
- the visitor to invokepublic void visitExpressions(@Nonnull Function<parsii.tokenizer.Position,ExpressionVisitor> visitor)
Emitter
visitExpressions
in class Emitter
visitor
- a function which generates an ExpressionVisitor
while supplying the current position (for
improved error messages).Copyright © 2018. All rights reserved.