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

#ifndef __java_awt_Window$AccessibleAWTWindow__
#define __java_awt_Window$AccessibleAWTWindow__

#pragma interface

#include <java/awt/Container$AccessibleAWTContainer.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Window;
        class Window$AccessibleAWTWindow;
    }
  }
  namespace javax
  {
    namespace accessibility
    {
        class AccessibleRole;
        class AccessibleStateSet;
    }
  }
}

class java::awt::Window$AccessibleAWTWindow : public ::java::awt::Container$AccessibleAWTContainer
{

public: // actually protected
  Window$AccessibleAWTWindow(::java::awt::Window *);
public:
  virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
  virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet();
private:
  static const jlong serialVersionUID = 4215068635060671780LL;
public: // actually package-private
  ::java::awt::Window * __attribute__((aligned(__alignof__( ::java::awt::Container$AccessibleAWTContainer)))) this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __java_awt_Window$AccessibleAWTWindow__
