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

#ifndef __java_awt_Container$AccessibleAWTContainer__
#define __java_awt_Container$AccessibleAWTContainer__

#pragma interface

#include <java/awt/Component$AccessibleAWTComponent.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Container;
        class Container$AccessibleAWTContainer;
        class Point;
      namespace event
      {
          class ContainerListener;
      }
    }
  }
  namespace javax
  {
    namespace accessibility
    {
        class Accessible;
    }
  }
}

class java::awt::Container$AccessibleAWTContainer : public ::java::awt::Component$AccessibleAWTComponent
{

public: // actually protected
  Container$AccessibleAWTContainer(::java::awt::Container *);
public:
  virtual jint getAccessibleChildrenCount();
  virtual ::javax::accessibility::Accessible * getAccessibleChild(jint);
  virtual ::javax::accessibility::Accessible * getAccessibleAt(::java::awt::Point *);
private:
  static const jlong serialVersionUID = 5081320404842566097LL;
public: // actually protected
  ::java::awt::event::ContainerListener * __attribute__((aligned(__alignof__( ::java::awt::Component$AccessibleAWTComponent)))) accessibleContainerHandler;
public: // actually package-private
  ::java::awt::Container * this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __java_awt_Container$AccessibleAWTContainer__
