Class AbstractScriptEvaluator

    • Field Detail

      • log

        @Nonnull
        private final org.slf4j.Logger log
        Class logger.
      • script

        @Nonnull
        private final EvaluableScript script
        The script we care about.
      • logPrefix

        @Nullable
        private String logPrefix
        Debugging info.
      • outputType

        @Nullable
        private Class<?> outputType
        The output type to validate.
      • customObject

        @Nullable
        private Object customObject
        A custom object to inject into the script.
      • hideExceptions

        private boolean hideExceptions
        Whether to raise runtime exceptions if a script fails.
      • returnOnError

        @Nullable
        private Object returnOnError
        Value to return from script if an error occurs.
    • Constructor Detail

      • AbstractScriptEvaluator

        public AbstractScriptEvaluator​(@Nonnull @ParameterName(name="theScript")
                                       EvaluableScript theScript)
        Constructor.
        Parameters:
        theScript - the script we will evaluate.
    • Method Detail

      • getLogPrefix

        @Nullable
        protected String getLogPrefix()
        Get log prefix for debugging.
        Returns:
        log prefix
      • setLogPrefix

        public void setLogPrefix​(@Nullable
                                 String prefix)
        Set log prefix for debugging.
        Parameters:
        prefix - log prefix
      • getOutputType

        @Nullable
        protected Class<?> getOutputType()
        Get the output type to be enforced.
        Returns:
        output type
      • setOutputType

        protected void setOutputType​(@Nullable
                                     Class<?> type)
        Set the output type to be enforced.
        Parameters:
        type - output type
      • getCustomObject

        @Nullable
        protected Object getCustomObject()
        Return the custom (externally provided) object.
        Returns:
        the custom object
      • setCustomObject

        public void setCustomObject​(@Nullable
                                    Object object)
        Set the custom (externally provided) object.
        Parameters:
        object - the custom object
      • getHideExceptions

        protected boolean getHideExceptions()
        Get whether to hide exceptions in script execution.
        Returns:
        whether to hide exceptions in script execution
      • setHideExceptions

        public void setHideExceptions​(boolean flag)
        Set whether to hide exceptions in script execution (default is false).
        Parameters:
        flag - flag to set
      • getReturnOnError

        @Nullable
        protected Object getReturnOnError()
        Get value to return if an error occurs.
        Returns:
        value to return
      • setReturnOnError

        protected void setReturnOnError​(@Nullable
                                        Object value)
        Set value to return if an error occurs.
        Parameters:
        value - value to return
      • evaluate

        @Nullable
        protected Object evaluate​(@Nullable
                                  Object... input)
        Evaluate the script.
        Parameters:
        input - input parameters
        Returns:
        script result
      • prepareContext

        protected abstract void prepareContext​(@Nonnull
                                               ScriptContext scriptContext,
                                               @Nullable
                                               Object... input)
        Pre-process the script context before execution.
        Parameters:
        scriptContext - the script context
        input - the input
      • finalizeContext

        @Nullable
        protected Object finalizeContext​(@Nonnull
                                         ScriptContext scriptContext,
                                         @Nullable
                                         Object scriptResult)
                                  throws ScriptException
        Complete processing by evaluating the result of the script and returning the final result to the caller.

        The default implementation just returns the result.

        Parameters:
        scriptContext - the context after execution
        scriptResult - the result of script execution
        Returns:
        the final result to return, or null
        Throws:
        ScriptException - to signal a failure after script execution