Class AbstractFreeMarkerDirective
- All Implemented Interfaces:
freemarker.template.TemplateDirectiveModel,freemarker.template.TemplateModel
- Direct Known Subclasses:
AbstractExtensibilityDirective
Should be extended to take advantage of the helper methods it provides for retrieving properties required for the directive represented by the subclass. Extending this class and using the helper methods will prevent unnecessary duplication of code.
The helper methods provided are initially for finding properties and ensuring that they are of the expected type, although more methods could be provided in the future.
- Author:
- David Draper
-
Field Summary
Fields inherited from interface freemarker.template.TemplateModel
NOTHING -
Constructor Summary
ConstructorsConstructorDescriptionAbstractFreeMarkerDirective(String directiveName) This constructor will need to invoked by subclasses and ensures that a directive name is provided. -
Method Summary
Modifier and TypeMethodDescriptionprotected booleangetBooleanProperty(Map<String, Object> params, String targetProp, boolean required) Attempts to retrieve a boolean property from the map of parameters supplied using the key provided.protected StringgetStringProperty(Map<String, Object> params, String targetProp, boolean required) Attempts to retrieve a String property from the map of parameters supplied using the key provided.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface freemarker.template.TemplateDirectiveModel
execute
-
Constructor Details
-
AbstractFreeMarkerDirective
This constructor will need to invoked by subclasses and ensures that a directive name is provided. The directive name is used in exception messages to assist debugging.
- Parameters:
directiveName- The name of the directive represented by the subclass.
-
-
Method Details
-
getDirectiveName
-
getStringProperty
protected String getStringProperty(Map<String, Object> params, String targetProp, boolean required) throws freemarker.template.TemplateModelExceptionAttempts to retrieve a String property from the map of parameters supplied using the key provided.
- If a property is found but it is not a String then an exception will be thrown.
- If a property is not found and not required then
nullwill be returned. - If a property is not found and is required then an exception will be thrown
- Parameters:
params- A map of parameters (this is supplied to theexecutemethod that must be implemented by subclasses.targetProp- The name of the property to attempt to retrieve.required- Indicates whether or not the property is required for the directive to process successfully.- Returns:
- A String value for the property name supplied (or
nullif it could not be found) - Throws:
freemarker.template.TemplateModelException- When a property matching the supplied name is found but is not a String.
-
getBooleanProperty
protected boolean getBooleanProperty(Map<String, Object> params, String targetProp, boolean required) throws freemarker.template.TemplateModelExceptionAttempts to retrieve a boolean property from the map of parameters supplied using the key provided.
- If a property is found but it is not a boolean then an exception will be thrown.
- If a property is not found and not required then
falsewill be returned. - If a property is not found and is required then an exception will be thrown
- Parameters:
params- A map of parameters (this is supplied to theexecutemethod that must be implemented by subclasses.targetProp- The name of the property to attempt to retrieve.required- Indicates whether or not the property is required for the directive to process successfully.- Returns:
- A boolean value for the property name supplied (or
falseif it could not be found) - Throws:
freemarker.template.TemplateModelException- When a property matching the supplied name is found but is not a boolean.
-