TemplateMethodModelEx (FreeMarker 2.3.35 API)
Description: declaration: package: freemarker.template, interface: TemplateMethodModelEx

Package freemarker.template

# Interface TemplateMethodModelEx

All Superinterfaces:
  `TemplateMethodModel`, `TemplateModel`

All Known Implementing Classes:
  `JythonHashModel`, `JythonModel`, `JythonNumberModel`, `JythonSequenceModel`, `MapModel`, `ObjectConstructor`, `OverloadedMethodsModel`, `ResourceBundleModel`, `RhinoFunctionModel`, `SimpleMapModel`, `SimpleMethodModel`

public interface TemplateMethodModelEx extends TemplateMethodModel
"extended method" template language data type: Objects that act like functions. Their main application is calling Java methods via `BeansWrapper`, but you can implement this interface to create top-level functions too. They are "extended" compared to the deprecated `TemplateMethodModel`, which could only accept string parameters.

In templates they are used like `myMethod(1, "foo")` or `myJavaObject.myJavaMethod(1, "foo")`.

- ## Field Summary

  ### Fields inherited from interface freemarker.template.TemplateModel

  `NOTHING`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `exec​(List arguments)`
  Executes the method call.

- ## Method Details

  - ### exec

    Object exec​(List arguments) throws TemplateModelException
    Executes the method call.
    Specified by:
      `exec` in interface `TemplateMethodModel`
    Parameters:
      `arguments` - a `List` of `TemplateModel`-s, containing the arguments passed to the method. If the implementation absolutely wants to operate on POJOs, it can use the static utility methods in the `DeepUnwrap` class to easily obtain them. However, unwrapping is not always possible (or not perfectly), and isn't always efficient, so it's recommended to use the original `TemplateModel` value as much as possible.
    Returns:
      the return value of the method, or `null`. If the returned value does not implement `TemplateModel`, it will be automatically wrapped using the `environment's object wrapper`.
    Throws:
      `TemplateModelException`