Class RuntimeCall

  • All Implemented Interfaces:
    ExpressionNode

    public final class RuntimeCall
    extends java.lang.Object
    implements ExpressionNode
    A RuntimeCall is a special expression which provides access to utility functions from the runtime.
    • Field Summary

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

      Constructors 
      Constructor Description
      RuntimeCall​(java.lang.String functionName, java.util.List<ExpressionNode> arguments)
      Creates a RuntimeCall based on a functionName and a list of arguments.
      RuntimeCall​(java.lang.String functionName, ExpressionNode... arguments)
      Creates a RuntimeCall based on a functionName and an array of arguments.
    • Field Detail

      • FORMAT

        public static final java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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​(java.lang.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​(java.lang.String functionName,
                           java.util.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 java.lang.String getFunctionName()
        Get the name of the runtime call.
        Returns:
        the name of the runtime call
      • getArguments

        public java.util.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