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 TypeMethodDescriptionInvokes 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!get(int index)
Retrieves the i-th template model in this sequence.protected Member
int
size()
toString()
-
Method Details
-
exec
Invokes the method, passing it the arguments from the list.- Specified by:
exec
in interfaceTemplateMethodModel
- Specified by:
exec
in interfaceTemplateMethodModelEx
- Parameters:
arguments
- aList
ofTemplateModel
-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 theDeepUnwrap
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 originalTemplateModel
value as much as possible.- Returns:
- the return value of the method, or
null
. If the returned value does not implementTemplateModel
, it will be automatically wrapped using theenvironment's object wrapper
. - Throws:
TemplateModelException
-
get
Description copied from interface:TemplateSequenceModel
Retrieves the i-th template model in this sequence.- Specified by:
get
in interfaceTemplateSequenceModel
- Returns:
- the item at the specified index, or
null
if the index is out of bounds. Note that anull
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
- Specified by:
size
in interfaceTemplateSequenceModel
- Returns:
- the number of items in the list.
- Throws:
TemplateModelException
-
toString
-
explainTypeError
Implementation of experimental interface; don't use it, no backward compatibility guarantee!- Specified by:
explainTypeError
in interfacefreemarker.core._UnexpectedTypeErrorExplainerTemplateModel
-
getMember
-