Class TemplateContextType


  • public class TemplateContextType
    extends Object
    A context type defines a context within which templates are resolved. It stores a number of TemplateVariableResolvers. A TemplateBuffer can be resolved in a TemplateContext using the resolve(TemplateBuffer, TemplateContext) method.

    Clients may extend this class.

    Since:
    3.0
    • Constructor Detail

      • TemplateContextType

        public TemplateContextType​(String id)
        Creates a context type with an identifier. The identifier must be unique, a qualified name is suggested. The id is also used as name.
        Parameters:
        id - the unique identifier of the context type
      • TemplateContextType

        public TemplateContextType​(String id,
                                   String name)
        Creates a context type with an identifier. The identifier must be unique, a qualified name is suggested.
        Parameters:
        id - the unique identifier of the context type
        name - the name of the context type
      • TemplateContextType

        public TemplateContextType()
        Creates a context type with a null identifier.

        This is a framework-only constructor that exists only so that context types can be contributed via an extension point and that should not be called in client code except for subclass constructors; use TemplateContextType(String) instead.

    • Method Detail

      • getId

        public String getId()
        Returns the id of the context type.
        Returns:
        the id of the receiver
      • getName

        public String getName()
        Returns the name of the context type.
        Returns:
        the name of the context type
      • setId

        public final void setId​(String id)
                         throws RuntimeException
        Sets the id of this context.

        This is a framework-only method that exists solely so that context types can be contributed via an extension point and that should not be called in client code; use TemplateContextType(String) instead.

        Parameters:
        id - the identifier of this context
        Throws:
        RuntimeException - an unspecified exception if the id has already been set on this context type
      • setName

        public final void setName​(String name)
        Sets the name of the context type.

        This is a framework-only method that exists solely so that context types can be contributed via an extension point and that should not be called in client code; use TemplateContextType(String, String) instead.

        Parameters:
        name - the name of the context type
      • addResolver

        public void addResolver​(TemplateVariableResolver resolver)
        Adds a variable resolver to the context type. If there already is a resolver for the same type, the previous one gets replaced by resolver.
        Parameters:
        resolver - the resolver to be added under its name
      • removeResolver

        public void removeResolver​(TemplateVariableResolver resolver)
        Removes a template variable from the context type.
        Parameters:
        resolver - the variable to be removed
      • removeAllResolvers

        public void removeAllResolvers()
        Removes all template variables from the context type.
      • resolvers

        public Iterator<TemplateVariableResolver> resolvers()
        Returns an iterator for the variables known to the context type.
        Returns:
        an iterator over the variables in this context type
      • getResolver

        protected TemplateVariableResolver getResolver​(String type)
        Returns the resolver for the given type.
        Parameters:
        type - the type for which a resolver is needed
        Returns:
        a resolver for the given type, or null if none is registered
      • validate

        public void validate​(String pattern)
                      throws TemplateException
        Validates a pattern, a TemplateException is thrown if validation fails.
        Parameters:
        pattern - the template pattern to validate
        Throws:
        TemplateException - if the pattern is invalid
      • validateVariables

        protected void validateVariables​(TemplateVariable[] variables)
                                  throws TemplateException
        Validates the variables in this context type. If a variable is not valid, e.g. if its type is not known in this context type, a TemplateException is thrown.

        The default implementation does nothing.

        Parameters:
        variables - the variables to validate
        Throws:
        TemplateException - if one of the variables is not valid in this context type
      • resolve

        public void resolve​(TemplateVariable variable,
                            TemplateContext context)
        Resolves a single variable in a context. Resolving is delegated to the registered resolver.
        Parameters:
        variable - the variable to resolve
        context - the context in which to resolve the variable
        Since:
        3.3