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

#ifndef __javax_swing_JEditorPane$AccessibleJEditorPaneHTML__
#define __javax_swing_JEditorPane$AccessibleJEditorPaneHTML__

#pragma interface

#include <javax/swing/JEditorPane$AccessibleJEditorPane.h>
extern "Java"
{
  namespace javax
  {
    namespace accessibility
    {
        class AccessibleText;
    }
    namespace swing
    {
        class JEditorPane;
        class JEditorPane$AccessibleJEditorPaneHTML;
    }
  }
}

class javax::swing::JEditorPane$AccessibleJEditorPaneHTML : public ::javax::swing::JEditorPane$AccessibleJEditorPane
{

public: // actually protected
  JEditorPane$AccessibleJEditorPaneHTML(::javax::swing::JEditorPane *);
public:
  virtual ::javax::accessibility::AccessibleText * getAccessibleText();
public: // actually package-private
  ::javax::swing::JEditorPane * __attribute__((aligned(__alignof__( ::javax::swing::JEditorPane$AccessibleJEditorPane)))) this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_JEditorPane$AccessibleJEditorPaneHTML__
