in src/main/java/org/apache/sling/scripting/sightly/impl/plugin/UsePlugin.java [38:59]
public PluginInvoke invoke(
final Expression expression, final PluginCallInfo callInfo, final CompilerContext compilerContext) {
return new DefaultPluginInvoke() {
@Override
public void beforeElement(PushStream stream, String tagName) {
String variableName = decodeVariableName();
stream.write(new VariableBinding.Global(
variableName,
new RuntimeCall(
RuntimeCall.USE, expression.getRoot(), new MapLiteral(expression.getOptions()))));
}
private String decodeVariableName() {
String[] arguments = callInfo.getArguments();
if (arguments.length > 0) {
return arguments[0];
}
return DEFAULT_VARIABLE_NAME;
}
};
}