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

#ifndef __javax_swing_text_GapContent__
#define __javax_swing_text_GapContent__

#pragma interface

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

extern "Java"
{
  namespace javax
  {
    namespace swing
    {
      namespace text
      {
          class GapContent;
          class GapContent$Mark;
          class Position;
          class Segment;
      }
      namespace undo
      {
          class UndoableEdit;
      }
    }
  }
}

class javax::swing::text::GapContent : public ::java::lang::Object
{

public:
  GapContent();
  GapContent(jint);
public: // actually protected
  virtual ::java::lang::Object * allocateArray(jint);
  virtual jint getArrayLength();
public:
  virtual jint length();
  virtual ::javax::swing::undo::UndoableEdit * insertString(jint, ::java::lang::String *);
  virtual ::javax::swing::undo::UndoableEdit * remove(jint, jint);
  virtual ::java::lang::String * getString(jint, jint);
  virtual void getChars(jint, jint, ::javax::swing::text::Segment *);
  virtual ::javax::swing::text::Position * createPosition(jint);
public: // actually protected
  virtual void shiftEnd(jint);
  virtual void shiftGap(jint);
  virtual void shiftGapStartDown(jint);
  virtual void shiftGapEndUp(jint);
  virtual ::java::lang::Object * getArray();
  virtual void replace(jint, jint, ::java::lang::Object *, jint);
private:
  void removeImpl(jint, jint);
  jint addImpl(jint, jint);
public: // actually protected
  virtual jint getGapStart();
  virtual jint getGapEnd();
  virtual ::java::util::Vector * getPositionsInRange(::java::util::Vector *, jint, jint);
  virtual void resetMarksAtZero();
  virtual void updateUndoPositions(::java::util::Vector *, jint, jint);
private:
  void dump();
  void dumpMarks();
public: // actually package-private
  virtual jint search(::javax::swing::text::GapContent$Mark *);
private:
  jint searchFirst(jint);
  jint compare(::javax::swing::text::GapContent$Mark *, ::javax::swing::text::GapContent$Mark *);
  void garbageCollect();
  static const jlong serialVersionUID = -6226052713477823730LL;
public: // actually package-private
  static const jint DEFAULT_BUFSIZE = 10;
  JArray< jchar > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer;
  jint gapStart;
  jint gapEnd;
  ::java::util::ArrayList * marks;
private:
  jint garbageMarks;
  ::javax::swing::text::GapContent$Mark * searchMark;
public: // actually package-private
  ::java::lang::ref::ReferenceQueue * queueOfDeath;
  static jboolean $assertionsDisabled;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_text_GapContent__
