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

#ifndef __java_util_Hashtable$EntryIterator__
#define __java_util_Hashtable$EntryIterator__

#pragma interface

#include <java/lang/Object.h>

class java::util::Hashtable$EntryIterator : public ::java::lang::Object
{

public: // actually package-private
  Hashtable$EntryIterator(::java::util::Hashtable *);
public:
  virtual jboolean hasNext();
  virtual ::java::util::Map$Entry * Hashtable$EntryIterator$next();
  virtual void remove();
  virtual ::java::lang::Object * next();
public: // actually package-private
  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) knownMod;
  jint count;
  jint idx;
  ::java::util::Hashtable$HashEntry * last;
  ::java::util::Hashtable$HashEntry * next__;
  ::java::util::Hashtable * this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_Hashtable$EntryIterator__
