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

#ifndef __java_util_HashMap$HashIterator__
#define __java_util_HashMap$HashIterator__

#pragma interface

#include <java/lang/Object.h>

class java::util::HashMap$HashIterator : public ::java::lang::Object
{

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

#endif // __java_util_HashMap$HashIterator__
