TemplateMethodModelEx (FreeMarker 2.3.23 API)
Date: 2015-07-05

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

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `exec(List arguments)` Executes the method call.

- - ### Method Detail

    - #### 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`