com.google.gwt.codegen.server

## Class StringGenerator

- java.lang.Object
- - com.google.gwt.codegen.server.StringGenerator

- Direct Known Subclasses:
    PlainStringGenerator, SafeHtmlStringGenerator

      public abstract class StringGenerator
      extends java.lang.Object

  Helper class to produce string expressions consisting of literals and computed values.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `StringGenerator.Type` Type of expression being processed.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.lang.StringBuilder` | `buf` Output string buffer.
    `protected boolean` | `inString` True if we are in the middle of a string literal.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `StringGenerator(java.lang.StringBuilder buf)` Initialize the StringGenerator with an output buffer.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected abstract void` | `afterExpression(StringGenerator.Type type)`
    `void` | `appendExpression(java.lang.String expression, boolean isSafeHtmlTyped, boolean isPrimitiveTyped, boolean needsConversionToString)` Append an expression to this string expression.
    `void` | `appendStringLiteral(java.lang.String str)` Append part of a string literal.
    `void` | `appendStringValuedExpression(java.lang.String expression)` Append an expression to this string expression.
    `protected abstract void` | `beforeExpression(StringGenerator.Type type)`
    `void` | `completeString()` Complete the string, closing an open quote and handling empty strings.
    `static StringGenerator` | `create(java.lang.StringBuilder buf, boolean returnsSafeHtml)` Create a `StringGenerator` instance.
    `protected abstract void` | `finishOutput()`
    `protected abstract void` | `forceStringPrefix()`
    `protected abstract void` | `forceStringSuffix()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### buf

          protected final java.lang.StringBuilder buf

      Output string buffer.

    - #### inString

          protected boolean inString

      True if we are in the middle of a string literal.

  - ### Constructor Detail

    - #### StringGenerator

          protected StringGenerator(java.lang.StringBuilder buf)

      Initialize the StringGenerator with an output buffer.
      Parameters:
        `buf` - output buffer

  - ### Method Detail

    - #### create

          public static StringGenerator create(java.lang.StringBuilder buf,
                                               boolean returnsSafeHtml)

      Create a `StringGenerator` instance.
      Parameters:
        `buf` -
        `returnsSafeHtml` -
      Returns:
        `StringGenerator` instance

    - #### appendExpression

          public void appendExpression(java.lang.String expression,
                                       boolean isSafeHtmlTyped,
                                       boolean isPrimitiveTyped,
                                       boolean needsConversionToString)

      Append an expression to this string expression.
      Parameters:
        `expression` - to add
        `isSafeHtmlTyped` - true if the expression is known to be of type `SafeHtml`; only relevant if this generator has been initialized to generate a `SafeHtml`-valued expression
        `isPrimitiveTyped` - true if the expression is of a primitive type; only relevant if this generator has been initialized to generate a `SafeHtml`-valued expression
        `needsConversionToString` - true if the expression is not known to be of type String and needs to be converted

    - #### appendStringLiteral

          public void appendStringLiteral(java.lang.String str)

      Append part of a string literal.
      Parameters:
        `str` - part of string literal

    - #### appendStringValuedExpression

          public void appendStringValuedExpression(java.lang.String expression)

      Append an expression to this string expression.
      Parameters:
        `expression` - to add, which the caller asserts is String-valued

    - #### completeString

          public void completeString()

      Complete the string, closing an open quote and handling empty strings.

    - #### afterExpression

          protected abstract void afterExpression(StringGenerator.Type type)

    - #### beforeExpression

          protected abstract void beforeExpression(StringGenerator.Type type)

    - #### finishOutput

          protected abstract void finishOutput()

    - #### forceStringPrefix

          protected abstract void forceStringPrefix()

    - #### forceStringSuffix

          protected abstract void forceStringSuffix()