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

### Field Summary

Fields
`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
`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
`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()