Class LazyContextVariable<T>
- Type Parameters:
T
- the type of the value being returned by this variable
- All Implemented Interfaces:
ILazyContextVariable<T>
Basic abstract implementation for the ILazyContextVariable
interface.
By extending this class instead of directly implementing the ILazyContextVariable
interface,
users can make sure that their variables will be initialized only once (per template execution). Once its
inner abstract loadValue()
method is called --which implementation has to be provided by the user--,
objects of this class will cache the results of such load and return these results every time the
variable value is accessed.
An example:
context.setVariable(
"users",
new LazyContextVariable<List<User>>() {
@Override
protected List<User> loadValue() {
return databaseRepository.findAllUsers();
}
});
- Since:
- 3.0.0
- Author:
- Daniel Fernández
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
LazyContextVariable
protected LazyContextVariable()
-
-
Method Details
-
getValue
Lazily resolve the value.
This will be transparently called by the Thymeleaf engine at template rendering time when an object of this class is resolved in a Thymeleaf expression.
Note lazy variables will be resolved just once, and their resolved values will be reused as many times as they appear in the template.
- Specified by:
getValue
in interfaceILazyContextVariable<T>
- Returns:
- the resolved value.
-
loadValue
Perform the actual resolution of the variable's value.
This method will be called only once, the first time this variable is resolved.
- Returns:
- the resolved value.
-