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

#ifndef __javax_swing_UIManager$MultiplexUIDefaults$MultiplexEnumeration__
#define __javax_swing_UIManager$MultiplexUIDefaults$MultiplexEnumeration__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace javax
  {
    namespace swing
    {
        class UIManager$MultiplexUIDefaults;
        class UIManager$MultiplexUIDefaults$MultiplexEnumeration;
    }
  }
}

class javax::swing::UIManager$MultiplexUIDefaults$MultiplexEnumeration : public ::java::lang::Object
{

public: // actually package-private
  UIManager$MultiplexUIDefaults$MultiplexEnumeration(::javax::swing::UIManager$MultiplexUIDefaults *, ::java::util::Enumeration *, ::java::util::Enumeration *);
public:
  virtual jboolean hasMoreElements();
  virtual ::java::lang::Object * nextElement();
public: // actually package-private
  JArray< ::java::util::Enumeration * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) enums;
  jint i;
  ::javax::swing::UIManager$MultiplexUIDefaults * this$1;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_UIManager$MultiplexUIDefaults$MultiplexEnumeration__
