Package org.apache.sling.scripting.sightly.compiler.expression.nodes

## Class RuntimeCall

- java.lang.Object
- - org.apache.sling.scripting.sightly.compiler.expression.nodes.RuntimeCall

All Implemented Interfaces:
  `ExpressionNode`

    public final class RuntimeCall
    extends Object
    implements ExpressionNode

A `RuntimeCall` is a special expression which provides access to utility functions from the runtime.

### Field Summary

Fields
`static String` `FORMAT` The name of the `RuntimeCall` function that will process string formatting.
`static String` `I18N` The name of the `RuntimeCall` function that will process i18n.
`static String` `INCLUDE` The name of the `RuntimeCall` function that will perform script execution delegation.
`static String` `JOIN` The name of the `RuntimeCall` function that will process join operations on arrays.
`static String` `RESOURCE` The name of the `RuntimeCall` function that will perform resource inclusion in the rendering process.
`static String` `URI_MANIPULATION` The name of the `RuntimeCall` function that will provide URI manipulation support.
`static String` `USE` The name of the `RuntimeCall` function that will provide the support for loading Use-API objects.
`static String` `XSS` The name of the `RuntimeCall` function that will provide XSS escaping and filtering support.

### Constructor Summary

Constructors
`RuntimeCall​(String functionName, List<ExpressionNode> arguments)` Creates a `RuntimeCall` based on a `functionName` and a list of `arguments`.
`RuntimeCall​(String functionName, ExpressionNode... arguments)` Creates a `RuntimeCall` based on a `functionName` and an array of `arguments`.

### Method Summary

All Methods Instance Methods Concrete Methods
`<T> T` `accept​(NodeVisitor<T> visitor)` Accept a visitor to process this node.
`List<ExpressionNode>` `getArguments()` Get the nodes of the argument calls.
`String` `getFunctionName()` Get the name of the runtime call.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### FORMAT

    public static final String FORMAT

The name of the `RuntimeCall` function that will process string formatting. The function will receive the following parameters:

1. the format String (e.g. 'Hello {0}, welcome to {1}')
2. an array of objects that will replace the format placeholders

For more details check https://github.com/Adobe-Marketing-Cloud/htl-spec/blob/1.2/SPECIFICATION.md#122-format.

See Also:
  Constant Field Values

#### I18N

    public static final String I18N

The name of the `RuntimeCall` function that will process i18n. The function will receive the following parameters:

1. the String to translate
2. optional: locale information
3. optional: hint information
4. optional (not part of the specification): basename information; for more details see `ResourceBundle.getBundle(String, java.util.Locale)`

For more details check https://github.com/Adobe-Marketing-Cloud/htl-spec/blob/1.2/SPECIFICATION.md#123-i18n.

See Also:
  Constant Field Values

#### JOIN

    public static final String JOIN

The name of the `RuntimeCall` function that will process join operations on arrays. The function will receive the following parameters:

1. the array of objects to join (e.g. [1, 2, 3])
2. the join string (e.g. ';')

For more details check https://github.com/Adobe-Marketing-Cloud/htl-spec/blob/1.2/SPECIFICATION.md#124-array-join.

See Also:
  Constant Field Values

#### URI_MANIPULATION

    public static final String URI_MANIPULATION

The name of the `RuntimeCall` function that will provide URI manipulation support. The function will receive the following parameters:

1. optional: a URI string to process
2. optional: a Map containing URI manipulation options

For more details check https://github.com/Adobe-Marketing-Cloud/htl-spec/blob/1.2/SPECIFICATION.md#125-uri-manipulation.

See Also:
  Constant Field Values

#### XSS

    public static final String XSS

The name of the `RuntimeCall` function that will provide XSS escaping and filtering support. The function will receive the following parameters:

1. the original string to escape / filter
2. the context to be applied - see `MarkupContext`

For more details check https://github.com/Adobe-Marketing-Cloud/htl-spec/blob/1.2/SPECIFICATION.md#121-display-context.

See Also:
  Constant Field Values

#### INCLUDE

    public static final String INCLUDE

The name of the `RuntimeCall` function that will perform script execution delegation. The function will receive the following parameters:

1. optional: the relative or absolute path of the script to execute
2. optional: a Map of options to perform script include processing

For more details about the supported options check https://github.com/Adobe-Marketing-Cloud/htl-spec/blob/1.2/SPECIFICATION.md#228-include.

See Also:
  Constant Field Values

#### RESOURCE

    public static final String RESOURCE

The name of the `RuntimeCall` function that will perform resource inclusion in the rendering process. The function will receive the following parameters:

1. optional: a relative or absolute path of the resource to be included
2. optional: a Map containing the resource processing options

For more details about the supported options check https://github.com/Adobe-Marketing-Cloud/htl-spec/blob/1.2/SPECIFICATION.md#229-resource.

See Also:
  Constant Field Values

#### USE

    public static final String USE

The name of the `RuntimeCall` function that will provide the support for loading Use-API objects. The function will receive the following parameters:

1. an identifier that allows to discover the Use-API object that needs to be loaded
2. optional: a Map of the arguments that are passed to the Use-API object for initialisation or to provide context

For more details check https://github.com/Adobe-Marketing-Cloud/htl-spec/blob/1.2/SPECIFICATION.md#221-use.

See Also:
  Constant Field Values

### Constructor Detail

#### RuntimeCall

    public RuntimeCall​(String functionName,
                       ExpressionNode... arguments)

Creates a `RuntimeCall` based on a `functionName` and an array of `arguments`.

Parameters:
  `functionName` - the name of the function identifying the runtime call
  `arguments` - the arguments passed to the runtime call

#### RuntimeCall

    public RuntimeCall​(String functionName,
                       List<ExpressionNode> arguments)

Creates a `RuntimeCall` based on a `functionName` and a list of `arguments`.

Parameters:
  `functionName` - the name of the function identifying the runtime call
  `arguments` - the arguments passed to the runtime call

### Method Detail

#### getFunctionName

    public String getFunctionName()

Get the name of the runtime call.

Returns:
  the name of the runtime call

#### getArguments

    public List<ExpressionNode> getArguments()

Get the nodes of the argument calls.

Returns:
  the arguments list

#### accept

    public <T> T accept​(NodeVisitor<T> visitor)

Description copied from interface: `ExpressionNode`
Accept a visitor to process this node.

Specified by:
  `accept` in interface `ExpressionNode`
Type Parameters:
  `T` - the type of the visitor
Parameters:
  `visitor` - The visitor
Returns:
  the node after it has been evaluated by the visitor