Class TemplateVariableResolver

  • Direct Known Subclasses:
    SimpleTemplateVariableResolver

    public class TemplateVariableResolver
    extends java.lang.Object
    A TemplateVariableResolver resolves TemplateVariables of a certain type inside a TemplateContext.

    Clients may instantiate and extend this class.

    Since:
    3.0
    See Also:
    TemplateVariable
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
        TemplateVariableResolver()
      Creates an empty instance.
      protected TemplateVariableResolver​(java.lang.String type, java.lang.String description)
      Creates an instance of TemplateVariableResolver.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getDescription()
      Returns the description for the resolver.
      java.lang.String getType()
      Returns the type of this resolver.
      protected boolean isUnambiguous​(TemplateContext context)
      Returns whether this resolver is able to resolve unambiguously.
      protected java.lang.String resolve​(TemplateContext context)
      Returns an instance of the type resolved by the receiver available in context.
      void resolve​(TemplateVariable variable, TemplateContext context)
      Resolves variable in context.
      protected java.lang.String[] resolveAll​(TemplateContext context)
      Returns all possible bindings available in context.
      void setDescription​(java.lang.String description)
      Sets the description.
      void setType​(java.lang.String type)
      Sets the type name.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • TemplateVariableResolver

        protected TemplateVariableResolver​(java.lang.String type,
                                           java.lang.String description)
        Creates an instance of TemplateVariableResolver.
        Parameters:
        type - the name of the type
        description - the description for the type
      • TemplateVariableResolver

        public TemplateVariableResolver()
        Creates an empty instance.

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

    • Method Detail

      • getType

        public java.lang.String getType()
        Returns the type of this resolver.
        Returns:
        the type
      • getDescription

        public java.lang.String getDescription()
        Returns the description for the resolver.
        Returns:
        the description for the resolver
      • resolve

        protected java.lang.String resolve​(TemplateContext context)
        Returns an instance of the type resolved by the receiver available in context. To resolve means to provide a binding to a concrete text object (a String) in the given context.

        The default implementation looks up the type in the context.

        Parameters:
        context - the context in which to resolve the type
        Returns:
        the name of the text object of this type, or null if it cannot be determined
      • resolveAll

        protected java.lang.String[] resolveAll​(TemplateContext context)
        Returns all possible bindings available in context. The default implementation simply returns an array which contains the result of resolve(TemplateContext), or an empty array if that call returns null.
        Parameters:
        context - the context in which to resolve the type
        Returns:
        an array of possible bindings of this type in context
      • resolve

        public void resolve​(TemplateVariable variable,
                            TemplateContext context)
        Resolves variable in context. To resolve means to find a valid binding of the receiver's type in the given TemplateContext. If the variable can be successfully resolved, its value is set using TemplateVariable.setValues(String[]).
        Parameters:
        context - the context in which variable is resolved
        variable - the variable to resolve
      • isUnambiguous

        protected boolean isUnambiguous​(TemplateContext context)
        Returns whether this resolver is able to resolve unambiguously. When resolving a TemplateVariable, its isUmambiguous state is set to the one of this resolver. By default, this method returns false. Clients can overwrite this method to give a hint about whether there should be e.g. prompting for input values for ambiguous variables.
        Parameters:
        context - the context in which the resolved check should be evaluated
        Returns:
        true if the receiver is unambiguously resolvable in context, false otherwise
      • setDescription

        public final void setDescription​(java.lang.String description)
        Sets the description.

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

        Parameters:
        description - the description of this resolver
      • setType

        public final void setType​(java.lang.String type)
        Sets the type name.

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

        Parameters:
        type - the type name of this resolver