Package 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 | Description
    --- | --- | ---
    `protected static class` | `StringGenerator.Type` | Type of expression being processed.

  - ### Field Summary

    Fields
    Modifier and Type | Field | 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 | 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 | 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()