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

#ifndef __javax_swing_JPasswordField$AccessibleJPasswordField__
#define __javax_swing_JPasswordField$AccessibleJPasswordField__

#pragma interface

#include <javax/swing/JTextField$AccessibleJTextField.h>
extern "Java"
{
  namespace javax
  {
    namespace accessibility
    {
        class AccessibleRole;
    }
    namespace swing
    {
        class JPasswordField;
        class JPasswordField$AccessibleJPasswordField;
    }
  }
}

class javax::swing::JPasswordField$AccessibleJPasswordField : public ::javax::swing::JTextField$AccessibleJTextField
{

public: // actually protected
  JPasswordField$AccessibleJPasswordField(::javax::swing::JPasswordField *);
public:
  virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
private:
  static const jlong serialVersionUID = -8477039424200681086LL;
public: // actually package-private
  ::javax::swing::JPasswordField * __attribute__((aligned(__alignof__( ::javax::swing::JTextField$AccessibleJTextField)))) this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_JPasswordField$AccessibleJPasswordField__
