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

#ifndef __javax_swing_text_DocumentFilter$FilterBypass__
#define __javax_swing_text_DocumentFilter$FilterBypass__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace swing
    {
      namespace text
      {
          class AttributeSet;
          class Document;
          class DocumentFilter$FilterBypass;
      }
    }
  }
}

class javax::swing::text::DocumentFilter$FilterBypass : public ::java::lang::Object
{

public:
  DocumentFilter$FilterBypass();
  virtual ::javax::swing::text::Document * getDocument() = 0;
  virtual void insertString(jint, ::java::lang::String *, ::javax::swing::text::AttributeSet *) = 0;
  virtual void remove(jint, jint) = 0;
  virtual void replace(jint, jint, ::java::lang::String *, ::javax::swing::text::AttributeSet *) = 0;
  static ::java::lang::Class class$;
};

#endif // __javax_swing_text_DocumentFilter$FilterBypass__
