Class 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 like ThreadLocal, a class that allows one to associate custom data with a thread.
    • 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 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 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.
      • 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 attribute
        t - the template
        Throws:
        UnsupportedOperationException - if this custom attribute is not a template-scope attribute
        NullPointerException - if t is null