class AviatorStringBuilder extends AviatorString {

  private static final long serialVersionUID = 1958289382573221857L;
  private final StringBuilder sb;

  public AviatorStringBuilder(final StringBuilder sb) {
    super(null);
    this.sb = sb;
  }

  public AviatorStringBuilder(final String lexeme) {
    super(null);
    this.sb = new StringBuilder(lexeme);
  }

  @Override
  public String getLexeme(final Map<String, Object> env, final boolean warnOnCompile) {
    return this.sb.toString();
  }


  @Override
  public AviatorObject deref(final Map<String, Object> env) {
    return new AviatorString(getLexeme(env));
  }

  @Override
  public AviatorObject add(final AviatorObject other, final Map<String, Object> env) {<FILL_FUNCTION_BODY>}
}

    if (other.getAviatorType() == AviatorType.Pattern) {
      final AviatorPattern otherPatterh = (AviatorPattern) other;
      this.sb.append(otherPatterh.pattern.pattern());
    } else {
      this.sb.append(other.getValue(env));
    }
    return new AviatorStringBuilder(this.sb);
  
<methods>public void <init>(java.lang.String) ,public void <init>(java.lang.String, boolean) ,public void <init>(java.lang.String, boolean, boolean, int) ,public com.googlecode.aviator.runtime.type.AviatorObject add(com.googlecode.aviator.runtime.type.AviatorObject, Map<java.lang.String,java.lang.Object>) ,public java.lang.String desc(Map<java.lang.String,java.lang.Object>) ,public com.googlecode.aviator.runtime.type.AviatorType getAviatorType() ,public java.lang.String getLexeme(Map<java.lang.String,java.lang.Object>) ,public java.lang.String getLexeme(Map<java.lang.String,java.lang.Object>, boolean) ,public java.lang.Object getValue(Map<java.lang.String,java.lang.Object>) ,public int innerCompare(com.googlecode.aviator.runtime.type.AviatorObject, Map<java.lang.String,java.lang.Object>) <variables>private static int COMPILE_TIMES,private static final ThreadLocal<java.text.SimpleDateFormat> DATE_FORMATTER,private boolean hasInterpolation,private final non-sealed boolean isLiteral,private final non-sealed java.lang.String lexeme,private int lineNo,private static final long serialVersionUID