Package org.apache.sling.api.scripting

# Interface SlingScript

@ConsumerType public interface SlingScript
The `SlingScript` defines the API for objects which encapsulate a script. To evaluate a script prepare a `SlingBindings` instance of variables used as global variables to the script and call the `eval(SlingBindings)` method.

You can obtain scripts by resolving a script resource through `ResourceResolver.resolve(String)` and then trying to adapt the resource to a script by calling `Adaptable.adaptTo(Class)`.

## Method Summary

Modifier and Type
Method
Description
`Object`
`call(@NotNull SlingBindings props, @NotNull String method, Object... args)`
Evaluates this script using the bound variables as global variables to the script and then calls the given method with the arguments.
`Object`
`eval(@NotNull SlingBindings props)`
Evaluates this script using the bound variables as global variables to the script.
`@NotNull Resource`
`getScriptResource()`
Returns the Resource providing the script source code.

## Method Details

### getScriptResource

@NotNull @NotNull Resource getScriptResource()
Returns the Resource providing the script source code.

Returns:
  The script resource.

### eval

Object eval(@NotNull @NotNull SlingBindings props)
Evaluates this script using the bound variables as global variables to the script.

Parameters:
  `props` - The `SlingBindings` providing the bound variables for evaluating the script. Any bound variables must conform to the requirements of the `SlingBindings` predefined variables set.
Returns:
  The value returned by the script.
Throws:
  `ScriptEvaluationException` - If an error occurs executing the script or preparing the script execution. The cause of the evaluation exception is available as the exception cause.

### call

Object call(@NotNull @NotNull SlingBindings props, @NotNull @NotNull String method, Object... args)
Evaluates this script using the bound variables as global variables to the script and then calls the given method with the arguments.

Parameters:
  `props` - The `SlingBindings` providing the bound variables for evaluating the script. Any bound variables must conform to the requirements of the `SlingBindings` predefined variables set.
  `method` - The name of the method to call.
  `args` - The arguments for the method call.
Returns:
  The value returned by the method from the script.
Throws:
  `ScriptEvaluationException` - If an error occurs executing the script or preparing the script execution. The cause of the evaluation exception is available as the exception cause.