Class SyntheticMapRemoval
- java.lang.Object
-
- org.apache.sling.scripting.sightly.impl.compiler.visitor.UniformVisitor
-
- org.apache.sling.scripting.sightly.impl.compiler.visitor.TrackingVisitor<MapLiteral>
-
- org.apache.sling.scripting.sightly.impl.compiler.optimization.SyntheticMapRemoval
-
- All Implemented Interfaces:
CommandVisitor,EmitterVisitor
public final class SyntheticMapRemoval extends TrackingVisitor<MapLiteral> implements EmitterVisitor
This optimization handles variables initialized to map literals. It initially assigns the values in the map to variables and wherever the map literal is accessed, the property access is replaced with the value variable, thus removing the need for a map lookup.
-
-
Field Summary
Fields Modifier and Type Field Description static StreamTransformerTRANSFORMER-
Fields inherited from class org.apache.sling.scripting.sightly.impl.compiler.visitor.TrackingVisitor
tracker
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected MapLiteralassignDefault(Command command)PushStreamgetOutputStream()Get the output streamvoidonCommand(Command command)voidvisit(VariableBinding.End variableBindingEnd)Process aVariableBinding.Endcommand.voidvisit(VariableBinding.Start variableBindingStart)Process aVariableBinding.Startcommand.-
Methods inherited from class org.apache.sling.scripting.sightly.impl.compiler.visitor.TrackingVisitor
visit, visit
-
Methods inherited from class org.apache.sling.scripting.sightly.impl.compiler.visitor.UniformVisitor
visit, visit, visit, visit, visit, visit, visit, visit
-
-
-
-
Field Detail
-
TRANSFORMER
public static final StreamTransformer TRANSFORMER
-
-
Method Detail
-
visit
public void visit(VariableBinding.Start variableBindingStart)
Description copied from interface:CommandVisitorProcess aVariableBinding.Startcommand.- Specified by:
visitin interfaceCommandVisitor- Overrides:
visitin classTrackingVisitor<MapLiteral>- Parameters:
variableBindingStart- the command
-
visit
public void visit(VariableBinding.End variableBindingEnd)
Description copied from interface:CommandVisitorProcess aVariableBinding.Endcommand.- Specified by:
visitin interfaceCommandVisitor- Overrides:
visitin classTrackingVisitor<MapLiteral>- Parameters:
variableBindingEnd- the command
-
assignDefault
protected MapLiteral assignDefault(Command command)
- Specified by:
assignDefaultin classTrackingVisitor<MapLiteral>
-
onCommand
public void onCommand(Command command)
- Specified by:
onCommandin classUniformVisitor
-
getOutputStream
public PushStream getOutputStream()
Description copied from interface:EmitterVisitorGet the output stream- Specified by:
getOutputStreamin interfaceEmitterVisitor- Returns:
- the output stream of this visitor
-
-