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

All Methods Instance Methods Concrete Methods
`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 Detail

#### 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()