Class 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 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