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

#ifndef __gnu_java_text_FormatBuffer__
#define __gnu_java_text_FormatBuffer__

#pragma interface

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

extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace text
      {
          class FormatBuffer;
      }
    }
  }
  namespace java
  {
    namespace text
    {
        class AttributedCharacterIterator$Attribute;
    }
  }
}

class gnu::java::text::FormatBuffer : public ::java::lang::Object
{

public:
  virtual void append(::java::lang::String *) = 0;
  virtual void append(::java::lang::String *, ::java::text::AttributedCharacterIterator$Attribute *) = 0;
  virtual void append(::java::lang::String *, JArray< jint > *, JArray< ::java::util::HashMap * > *) = 0;
  virtual void append(jchar) = 0;
  virtual void append(jchar, ::java::text::AttributedCharacterIterator$Attribute *) = 0;
  virtual void setDefaultAttribute(::java::text::AttributedCharacterIterator$Attribute *) = 0;
  virtual ::java::text::AttributedCharacterIterator$Attribute * getDefaultAttribute() = 0;
  virtual void cutTail(jint) = 0;
  virtual void clear() = 0;
  virtual jint length() = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __gnu_java_text_FormatBuffer__
