Class Mustache.StringSegment

  • Enclosing class:
    Mustache

    protected static class Mustache.StringSegment
    extends Template.Segment
    A simple segment that reproduces a string.
    • Field Detail

      • _text

        protected final java.lang.String _text
      • _leadBlank

        protected final int _leadBlank
      • _trailBlank

        protected final int _trailBlank
      • _first

        protected final boolean _first
    • Constructor Detail

      • StringSegment

        public StringSegment​(java.lang.String text,
                             boolean first)
      • StringSegment

        public StringSegment​(java.lang.String text,
                             int leadBlank,
                             int trailBlank,
                             boolean first)
    • Method Detail

      • leadsBlank

        public boolean leadsBlank()
      • trailsBlank

        public boolean trailsBlank()
      • indent

        java.lang.String indent()
        Calculate indent for partial idententation
        Returns:
        indent space or empty string
      • indent

        Mustache.StringSegment indent​(java.lang.String indent,
                                      boolean first,
                                      boolean last)
        Description copied from class: Template.Segment
        Recursively indent by the parameter indent.
        Specified by:
        indent in class Template.Segment
        Parameters:
        indent - should be space characters that are not \n.
        first - append indent to the first line (regardless if it has a \n or not).
        last - append indent on the last \n that has no text after it.
        Returns:
        a newly created segment or the same segment if nothing changed.
      • isStandalone

        boolean isStandalone()
        Description copied from class: Template.Segment
        Whether or not the segment is standalone. The definition of standalone is defined by the mustache spec. String and variable tags are never standalone. For blocks this is based on the closing tag. Once trim is called, standalone tags are determined so that proper (re)indentation will work without reparsing the template.
        Specified by:
        isStandalone in class Template.Segment
        Returns:
        true if the tag is standalone.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • reindent

        private static java.lang.String reindent​(java.lang.String input,
                                                 java.lang.String indent,
                                                 boolean first,
                                                 boolean last)
      • blankPos

        private static int blankPos​(java.lang.String text,
                                    boolean leading,
                                    boolean first)