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

#ifndef __gnu_java_util_DoubleEnumeration__
#define __gnu_java_util_DoubleEnumeration__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace util
      {
          class DoubleEnumeration;
      }
    }
  }
}

class gnu::java::util::DoubleEnumeration : public ::java::lang::Object
{

public:
  DoubleEnumeration(::java::util::Enumeration *, ::java::util::Enumeration *);
  virtual jboolean hasMoreElements();
  virtual ::java::lang::Object * nextElement();
private:
  jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) hasMore;
  jboolean hasChecked;
  ::java::util::Enumeration * e1;
  ::java::util::Enumeration * e2;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_util_DoubleEnumeration__
