Class Mustache.Compiler

java.lang.Object
com.samskivert.mustache.Mustache.Compiler
Enclosing class:
Mustache

public static class Mustache.Compiler extends Object
Compiles templates into executable form. See Mustache.
  • Field Details

    • standardsMode

      public final boolean standardsMode
      Whether or not standards mode is enabled.
    • strictSections

      public final boolean strictSections
      Whether or not to throw an exception when a section resolves to a missing value. If false, the section is simply omitted (or included in the case of inverse sections). If true, a MustacheException is thrown.
    • nullValue

      public final String nullValue
      A value to use when a variable resolves to null. If this value is null (which is the default null value), an exception will be thrown. If missingIsNull is also true, this value will be used when a variable cannot be resolved.

      If the nullValue contains a substring {{name}}, then this substring will be replaced by name of the variable. For example, if nullValue is ?{{name}}? and the missing variable is foo, then string ?foo? will be used.

    • missingIsNull

      public final boolean missingIsNull
      If this value is true, missing variables will be treated like variables that return null. nullValue will be used in their place, assuming nullValue is configured to a non-null value.
    • emptyStringIsFalse

      public final boolean emptyStringIsFalse
      If this value is true, empty string will be treated as a false value, as in JavaScript mustache implementation. Default is false.
    • zeroIsFalse

      public final boolean zeroIsFalse
      If this value is true, zero will be treated as a false value, as in JavaScript mustache implementation. Default is false.
    • formatter

      public final Mustache.Formatter formatter
      Handles converting objects to strings when rendering a template. The default formatter uses String.valueOf(java.lang.Object).
    • escaper

      public final Mustache.Escaper escaper
      Handles escaping characters in substituted text.
    • loader

      public final Mustache.TemplateLoader loader
      The template loader in use during this compilation.
    • collector

      public final Mustache.Collector collector
      The collector used by templates compiled with this compiler.
    • delims

      public final Mustache.Delims delims
      The delimiters used by default in templates compiled with this compiler.
  • Constructor Details

  • Method Details

    • compile

      public Template compile(String template)
      Compiles the supplied template into a repeatedly executable intermediate form.
    • compile

      public Template compile(Reader source)
      Compiles the supplied template into a repeatedly executable intermediate form.
    • escapeHTML

      public Mustache.Compiler escapeHTML(boolean escapeHTML)
      Returns a compiler that either does or does not escape HTML by default. Note: this overrides any escaper set via withEscaper(com.samskivert.mustache.Mustache.Escaper).
    • standardsMode

      public Mustache.Compiler standardsMode(boolean standardsMode)
      Returns a compiler that either does or does not use standards mode. Standards mode disables the non-standard JMustache extensions like looking up missing names in a parent context.
    • strictSections

      public Mustache.Compiler strictSections(boolean strictSections)
      Returns a compiler that throws an exception when a section references a missing value (true) or treats a missing value as false (false, the default).
    • defaultValue

      public Mustache.Compiler defaultValue(String defaultValue)
      Returns a compiler that will use the given value for any variable that is missing, or otherwise resolves to null. This is like nullValue except that it returns the supplied default for missing keys and existing keys that return null values.
    • nullValue

      public Mustache.Compiler nullValue(String nullValue)
      Returns a compiler that will use the given value for any variable that resolves to null, but will still raise an exception for variables for which an accessor cannot be found. This is like defaultValue(java.lang.String) except that it differentiates between missing accessors, and accessors that exist but return null.
      • In the case of a Java object being used as a context, if no field or method can be found for a variable, an exception will be raised.
      • In the case of a Map being used as a context, if the map does not contain a mapping for a variable, an exception will be raised. If the map contains a mapping which maps to null, then nullValue is used.
    • emptyStringIsFalse

      public Mustache.Compiler emptyStringIsFalse(boolean emptyStringIsFalse)
      Returns a compiler that will treat empty string as a false value if parameter is true.
    • zeroIsFalse

      public Mustache.Compiler zeroIsFalse(boolean zeroIsFalse)
      Returns a compiler that will treat zero as a false value if parameter is true.
    • withFormatter

      public Mustache.Compiler withFormatter(Mustache.Formatter formatter)
      Configures the Mustache.Formatter used to turn objects into strings.
    • withEscaper

      public Mustache.Compiler withEscaper(Mustache.Escaper escaper)
      Configures the Mustache.Escaper used to escape substituted text.
    • withLoader

      public Mustache.Compiler withLoader(Mustache.TemplateLoader loader)
      Returns a compiler configured to use the supplied template loader to handle partials.
    • withCollector

      public Mustache.Compiler withCollector(Mustache.Collector collector)
      Returns a compiler configured to use the supplied collector.
    • withDelims

      public Mustache.Compiler withDelims(String delims)
      Returns a compiler configured to use the supplied delims as default delimiters.
      Parameters:
      delims - a string of the form AB CD or A D where A and B are opening delims and C and D are closing delims.
    • computeNullValue

      public String computeNullValue(String name)
      Returns the value to use in the template for the null-valued property name. See nullValue for more details.
    • isFalsey

      public boolean isFalsey(Object value)
      Returns true if the supplied value is "falsey". If emptyStringIsFalse is true, then empty strings are considered falsey. If zeroIsFalse is true, then zero values are considered falsey.
    • isEmptyCharSequence

      private boolean isEmptyCharSequence(Object value)
      Replaces "".equals(value). E.g. only not null values with length 0.
    • loadTemplate

      public Template loadTemplate(String name) throws MustacheException
      Loads and compiles the template name using this compiler's configured template loader. Note that this does no caching: the caller should cache the loaded template if they expect to use it multiple times.
      Returns:
      the compiled template.
      Throws:
      MustacheException - if the template could not be loaded (due to I/O exception) or compiled (due to syntax error, etc.).