public PluginInvoke invoke()

in src/main/java/org/apache/sling/scripting/sightly/impl/plugin/UsePlugin.java [38:58]


    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;
            }
        };
    }