Class TemplateTranslator


  • public class TemplateTranslator
    extends Object
    The template translator translates a string into a template buffer. Regions marked as variables are translated into TemplateVariables.

    The EBNF grammar of a valid string is as follows:

     template := (text | escape)*.
     text := character - dollar.
     escape := dollar ('{' variable '}' | dollar).
     dollar := '$'.
     variable := identifier | identifier ':' type.
     type := qualifiedname | qualifiedname '(' arguments ')'.
     arguments := (argument ',')* argument.
     argument := qualifiedname | argumenttext.
     qualifiedname := (identifier '.')* identifier.
     argumenttext := "'" (character - "'" | "'" "'")* "'".
     identifier := javaidentifierpart - "$".

    Clients may only replace the createVariable method of this class.

    Since:
    3.0
    • Constructor Detail

      • TemplateTranslator

        public TemplateTranslator()
    • Method Detail

      • getErrorMessage

        public String getErrorMessage()
        Returns an error message if an error occurred for the last translation, null otherwise.
        Returns:
        the error message if an error occurred during the most recent translation, null otherwise
      • translate

        public TemplateBuffer translate​(Template template)
                                 throws TemplateException
        Translates a template to a TemplateBuffer. null is returned if there was an error. getErrorMessage() retrieves the associated error message.
        Parameters:
        template - the template to translate.
        Returns:
        returns the template buffer corresponding to the string
        Throws:
        TemplateException - if translation failed
        See Also:
        getErrorMessage()
      • translate

        public TemplateBuffer translate​(String string)
                                 throws TemplateException
        Translates a template string to TemplateBuffer. null is returned if there was an error. getErrorMessage() retrieves the associated error message.
        Parameters:
        string - the string to translate.
        Returns:
        returns the template buffer corresponding to the string
        Throws:
        TemplateException - if translation failed
        See Also:
        getErrorMessage()
      • createVariable

        @Deprecated
        protected TemplateVariable createVariable​(String type,
                                                  String name,
                                                  int[] offsets)
        Deprecated.
        Hook method to create new variables. Subclasses may override to supply their custom variable type.

        Clients may replace this method.

        Parameters:
        type - the type of the new variable.
        name - the name of the new variable.
        offsets - the offsets where the variable occurs in the template
        Returns:
        a new instance of TemplateVariable
      • createVariable

        protected TemplateVariable createVariable​(TemplateVariableType type,
                                                  String name,
                                                  int[] offsets)
        Hook method to create new variables. Subclasses may override to supply their custom variable type.

        Clients may replace this method.

        Parameters:
        type - the type of the new variable.
        name - the name of the new variable.
        offsets - the offsets where the variable occurs in the template
        Returns:
        a new instance of TemplateVariable
        Since:
        3.3