SimpleMethodModel (FreeMarker 2.3.35 API)
Description: declaration: package: freemarker.ext.beans, class: SimpleMethodModel

Package freemarker.ext.beans

# Class SimpleMethodModel

java.lang.Object
freemarker.ext.beans.SimpleMethodModel

All Implemented Interfaces:
  `freemarker.core._UnexpectedTypeErrorExplainerTemplateModel`, `TemplateMethodModel`, `TemplateMethodModelEx`, `TemplateModel`, `TemplateSequenceModel`

public final class SimpleMethodModel extends Object implements TemplateMethodModelEx, TemplateSequenceModel, freemarker.core._UnexpectedTypeErrorExplainerTemplateModel
A class that will wrap a reflected method call into a `TemplateMethodModel` interface. It is used by `BeanModel` to wrap reflected method calls for non-overloaded methods.

- ## Field Summary

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

  `NOTHING`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `exec​(List arguments)`
  Invokes the method, passing it the arguments from the list.
  `Object[]`
  `explainTypeError​(Class[] expectedClasses)`
  Implementation of experimental interface; don't use it, no backward compatibility guarantee!
  `TemplateModel`
  `get​(int index)`
  Retrieves the i-th template model in this sequence.
  `protected Member`
  `getMember()`
  `int`
  `size()`
  `String`
  `toString()`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Method Details

  - ### exec

    public Object exec​(List arguments) throws TemplateModelException
    Invokes the method, passing it the arguments from the list.
    Specified by:
      `exec` in interface `TemplateMethodModel`
    Specified by:
      `exec` in interface `TemplateMethodModelEx`
    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`

  - ### get

    public TemplateModel get​(int index) throws TemplateModelException
    Description copied from interface: `TemplateSequenceModel`
    Retrieves the i-th template model in this sequence.
    Specified by:
      `get` in interface `TemplateSequenceModel`
    Returns:
      the item at the specified index, or `null` if the index is out of bounds. Note that a `null` value is interpreted by FreeMarker as "variable does not exist", and accessing a missing variables is usually considered as an error in the FreeMarker Template Language, so the usage of a bad index will not remain hidden, unless the default value for that case was also specified in the template.
    Throws:
      `TemplateModelException`

  - ### size

    public int size() throws TemplateModelException
    Specified by:
      `size` in interface `TemplateSequenceModel`
    Returns:
      the number of items in the list.
    Throws:
      `TemplateModelException`

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### explainTypeError

    public Object[] explainTypeError​(Class[] expectedClasses)
    Implementation of experimental interface; don't use it, no backward compatibility guarantee!
    Specified by:
      `explainTypeError` in interface `freemarker.core._UnexpectedTypeErrorExplainerTemplateModel`

  - ### getMember

    protected Member getMember()