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.
  • 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()