
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __java_lang_StringBuilder__
#define __java_lang_StringBuilder__

#pragma interface

#include <java/lang/AbstractStringBuffer.h>
#include <gcj/array.h>


class java::lang::StringBuilder : public ::java::lang::AbstractStringBuffer
{

public:
  StringBuilder();
  StringBuilder(jint);
  StringBuilder(::java::lang::String *);
  StringBuilder(::java::lang::CharSequence *);
  jint length();
  jint capacity();
  ::java::lang::StringBuilder * StringBuilder$append(::java::lang::Object *);
  ::java::lang::StringBuilder * StringBuilder$append(::java::lang::String *);
  ::java::lang::StringBuilder * StringBuilder$append(::java::lang::StringBuffer *);
  ::java::lang::StringBuilder * StringBuilder$append(JArray< jchar > *);
  ::java::lang::StringBuilder * StringBuilder$append(JArray< jchar > *, jint, jint);
  ::java::lang::StringBuilder * StringBuilder$append(jboolean);
  ::java::lang::StringBuilder * StringBuilder$append(jchar);
  ::java::lang::StringBuilder * StringBuilder$append(::java::lang::CharSequence *);
  ::java::lang::StringBuilder * StringBuilder$append(::java::lang::CharSequence *, jint, jint);
  ::java::lang::StringBuilder * StringBuilder$append(jint);
  ::java::lang::StringBuilder * StringBuilder$append(jlong);
  ::java::lang::StringBuilder * StringBuilder$append(jfloat);
  ::java::lang::StringBuilder * StringBuilder$append(jdouble);
  ::java::lang::StringBuilder * StringBuilder$appendCodePoint(jint);
  ::java::lang::StringBuilder * StringBuilder$delete(jint, jint);
  ::java::lang::StringBuilder * StringBuilder$deleteCharAt(jint);
  ::java::lang::StringBuilder * StringBuilder$replace(jint, jint, ::java::lang::String *);
  ::java::lang::String * substring(jint);
  ::java::lang::CharSequence * subSequence(jint, jint);
  ::java::lang::String * substring(jint, jint);
  ::java::lang::StringBuilder * StringBuilder$insert(jint, JArray< jchar > *, jint, jint);
  ::java::lang::StringBuilder * StringBuilder$insert(jint, ::java::lang::Object *);
  ::java::lang::StringBuilder * StringBuilder$insert(jint, ::java::lang::String *);
  ::java::lang::StringBuilder * StringBuilder$insert(jint, ::java::lang::CharSequence *);
  ::java::lang::StringBuilder * StringBuilder$insert(jint, ::java::lang::CharSequence *, jint, jint);
  ::java::lang::StringBuilder * StringBuilder$insert(jint, JArray< jchar > *);
  ::java::lang::StringBuilder * StringBuilder$insert(jint, jboolean);
  ::java::lang::StringBuilder * StringBuilder$insert(jint, jchar);
  ::java::lang::StringBuilder * StringBuilder$insert(jint, jint);
  ::java::lang::StringBuilder * StringBuilder$insert(jint, jlong);
  ::java::lang::StringBuilder * StringBuilder$insert(jint, jfloat);
  ::java::lang::StringBuilder * StringBuilder$insert(jint, jdouble);
  ::java::lang::StringBuilder * StringBuilder$reverse();
  ::java::lang::String * toString();
  ::java::lang::AbstractStringBuffer * reverse();
  ::java::lang::AbstractStringBuffer * deleteCharAt(jint);
  ::java::lang::AbstractStringBuffer * replace(jint, jint, ::java::lang::String *);
  ::java::lang::AbstractStringBuffer * delete$(jint, jint);
  ::java::lang::AbstractStringBuffer * insert(jint, jdouble);
  ::java::lang::AbstractStringBuffer * insert(jint, jfloat);
  ::java::lang::AbstractStringBuffer * insert(jint, jlong);
  ::java::lang::AbstractStringBuffer * insert(jint, jint);
  ::java::lang::AbstractStringBuffer * insert(jint, jchar);
  ::java::lang::AbstractStringBuffer * insert(jint, jboolean);
  ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *);
  ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *, jint, jint);
  ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *);
  ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::String *);
  ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::Object *);
  ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *, jint, jint);
  ::java::lang::AbstractStringBuffer * append(jdouble);
  ::java::lang::AbstractStringBuffer * append(jfloat);
  ::java::lang::AbstractStringBuffer * append(jlong);
  ::java::lang::AbstractStringBuffer * append(jint);
  ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
  ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *, jint, jint);
  ::java::lang::Appendable * append(::java::lang::CharSequence *);
  ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *);
  ::java::lang::Appendable * append(jchar);
  ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(jchar);
  ::java::lang::AbstractStringBuffer * append(jboolean);
  ::java::lang::AbstractStringBuffer * append(JArray< jchar > *, jint, jint);
  ::java::lang::AbstractStringBuffer * append(JArray< jchar > *);
  ::java::lang::AbstractStringBuffer * append(::java::lang::StringBuffer *);
  ::java::lang::AbstractStringBuffer * append(::java::lang::String *);
  ::java::lang::AbstractStringBuffer * append(::java::lang::Object *);
  ::java::lang::AbstractStringBuffer * appendCodePoint(jint);
private:
  static const jlong serialVersionUID = 4383685877147921099LL;
public:
  static ::java::lang::Class class$;
};

#endif // __java_lang_StringBuilder__
