Package freemarker.core
Class CustomAttribute
- java.lang.Object
-
- freemarker.core.CustomAttribute
-
public class CustomAttribute extends Object
A class that allows one to associate custom data with a configuration, a template, or environment. It works pretty much likeThreadLocal, a class that allows one to associate custom data with a thread.
-
-
Field Summary
Fields Modifier and Type Field Description static intSCOPE_CONFIGURATIONConstant used in the constructor specifying that this attribute is scoped by the configuration.static intSCOPE_ENVIRONMENTConstant used in the constructor specifying that this attribute is scoped by the environment.static intSCOPE_TEMPLATEConstant used in the constructor specifying that this attribute is scoped by the template.
-
Constructor Summary
Constructors Constructor Description CustomAttribute(int scope)Creates a new custom attribute with the specified scope
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Objectcreate()This method is invoked whenget()is invoked withoutset(Object)being invoked before it to define the value in the current scope.Objectget()Objectget(Template t)voidset(Object value)Sets the value of the attribute in the context of the current environment.voidset(Object value, Template t)Sets the value of a template-scope attribute in the context of the given template.
-
-
-
Field Detail
-
SCOPE_ENVIRONMENT
public static final int SCOPE_ENVIRONMENT
Constant used in the constructor specifying that this attribute is scoped by the environment.- See Also:
- Constant Field Values
-
SCOPE_TEMPLATE
public static final int SCOPE_TEMPLATE
Constant used in the constructor specifying that this attribute is scoped by the template.- See Also:
- Constant Field Values
-
SCOPE_CONFIGURATION
public static final int SCOPE_CONFIGURATION
Constant used in the constructor specifying that this attribute is scoped by the configuration.- See Also:
- Constant Field Values
-
-
Method Detail
-
create
protected Object create()
This method is invoked whenget()is invoked withoutset(Object)being invoked before it to define the value in the current scope. Override it to create the attribute value on-demand.- Returns:
- the initial value for the custom attribute. By default returns null.
-
get
public final Object get()
- Returns:
- the value of the attribute in the context of the current environment.
- Throws:
IllegalStateException- if there is no current environment (and hence also no current template and configuration), therefore the attribute's current scope object can't be resolved.
-
get
public final Object get(Template t)
- Returns:
- the value of a template-scope attribute in the context of a given template.
- Throws:
UnsupportedOperationException- if this custom attribute is not a template-scope attributeNullPointerException- if t is null
-
set
public final void set(Object value)
Sets the value of the attribute in the context of the current environment.- Parameters:
value- the new value of the attribute- Throws:
IllegalStateException- if there is no current environment (and hence also no current template and configuration), therefore the attribute's current scope object can't be resolved.
-
set
public final void set(Object value, Template t)
Sets the value of a template-scope attribute in the context of the given template.- Parameters:
value- the new value of the attributet- the template- Throws:
UnsupportedOperationException- if this custom attribute is not a template-scope attributeNullPointerException- if t is null
-
-