freemarker.core
Class CustomAttribute

java.lang.Object
  extended by freemarker.core.CustomAttribute

public class CustomAttribute
extends java.lang.Object

A class that allows one to associate custom data with a configuration, a template, or environment. It works pretty much like ThreadLocal, a class that allows one to associate custom data with a thread.

Version:
$Id: CustomAttribute.java,v 1.3 2003/11/10 14:05:22 ddekany Exp $
Author:
Attila Szegedi

Field Summary
static int SCOPE_CONFIGURATION
          Constant used in the constructor specifying that this attribute is scoped by the configuration.
static int SCOPE_ENVIRONMENT
          Constant used in the constructor specifying that this attribute is scoped by the environment.
static int SCOPE_TEMPLATE
          Constant used in the constructor specifying that this attribute is scoped by the template.
 
Constructor Summary
CustomAttribute(int scope)
          Creates a new custom attribute with the specified scope
 
Method Summary
protected  java.lang.Object create()
          This method is invoked when get() is invoked without set(Object) being invoked before it to define the value in the current scope.
 java.lang.Object get()
           
 java.lang.Object get(Template t)
           
 void set(java.lang.Object value)
          Sets the value of the attribute in the context of the current environment.
 void set(java.lang.Object value, Template t)
          Sets the value of a template-scope attribute in the context of the given template.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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
Constructor Detail

CustomAttribute

public CustomAttribute(int scope)
Creates a new custom attribute with the specified scope

Parameters:
scope - one of SCOPE_ constants.
Method Detail

create

protected java.lang.Object create()
This method is invoked when get() is invoked without set(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 java.lang.Object get()
Returns:
the value of the attribute in the context of the current environment.
Throws:
java.lang.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 java.lang.Object get(Template t)
Returns:
the value of a template-scope attribute in the context of a given template.
Throws:
java.lang.UnsupportedOperationException - if this custom attribute is not a template-scope attribute
java.lang.NullPointerException - if t is null

set

public final void set(java.lang.Object value)
Sets the value of the attribute in the context of the current environment.

Parameters:
value - the new value of the attribute
Throws:
java.lang.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(java.lang.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 attribute
t - the template
Throws:
java.lang.UnsupportedOperationException - if this custom attribute is not a template-scope attribute
java.lang.NullPointerException - if t is null