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 Details

    • 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:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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:
  • Constructor Details

    • 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 Details

    • 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