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

#ifndef __javax_swing_text_DefaultStyledDocument$ElementBuffer$Edit__
#define __javax_swing_text_DefaultStyledDocument$ElementBuffer$Edit__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace swing
    {
      namespace text
      {
          class DefaultStyledDocument$ElementBuffer;
          class DefaultStyledDocument$ElementBuffer$Edit;
          class Element;
      }
    }
  }
}

class javax::swing::text::DefaultStyledDocument$ElementBuffer$Edit : public ::java::lang::Object
{

public: // actually package-private
  DefaultStyledDocument$ElementBuffer$Edit(::javax::swing::text::DefaultStyledDocument$ElementBuffer *, ::javax::swing::text::Element *, jint);
  DefaultStyledDocument$ElementBuffer$Edit(::javax::swing::text::DefaultStyledDocument$ElementBuffer *, ::javax::swing::text::Element *, jint, jboolean);
  ::javax::swing::text::Element * __attribute__((aligned(__alignof__( ::java::lang::Object)))) e;
  jint index;
  ::java::util::ArrayList * removed;
  ::java::util::ArrayList * added;
  jboolean isFracture;
  ::javax::swing::text::DefaultStyledDocument$ElementBuffer * this$1;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_text_DefaultStyledDocument$ElementBuffer$Edit__
