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

#ifndef __java_util_EnumMap$4__
#define __java_util_EnumMap$4__

#pragma interface

#include <java/lang/Object.h>

class java::util::EnumMap$4 : public ::java::lang::Object
{

public: // actually package-private
  EnumMap$4(::java::util::EnumMap$3 *);
public:
  virtual jboolean hasNext();
  virtual ::java::lang::Object * next();
  virtual void remove();
public: // actually package-private
  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) count;
  jint index;
  ::java::util::EnumMap$3 * this$1;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_EnumMap$4__
