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

#ifndef __java_awt_Container$AccessibleAWTContainer$AccessibleContainerHandler__
#define __java_awt_Container$AccessibleAWTContainer$AccessibleContainerHandler__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Container$AccessibleAWTContainer;
        class Container$AccessibleAWTContainer$AccessibleContainerHandler;
      namespace event
      {
          class ContainerEvent;
      }
    }
  }
}

class java::awt::Container$AccessibleAWTContainer$AccessibleContainerHandler : public ::java::lang::Object
{

public: // actually protected
  Container$AccessibleAWTContainer$AccessibleContainerHandler(::java::awt::Container$AccessibleAWTContainer *);
public:
  virtual void componentAdded(::java::awt::event::ContainerEvent *);
  virtual void componentRemoved(::java::awt::event::ContainerEvent *);
public: // actually package-private
  ::java::awt::Container$AccessibleAWTContainer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1;
public:
  static ::java::lang::Class class$;
};

#endif // __java_awt_Container$AccessibleAWTContainer$AccessibleContainerHandler__
