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

#ifndef __java_util_Collections$CheckedIterator__
#define __java_util_Collections$CheckedIterator__

#pragma interface

#include <java/lang/Object.h>

class java::util::Collections$CheckedIterator : public ::java::lang::Object
{

public: // actually package-private
  Collections$CheckedIterator(::java::util::Iterator *, ::java::lang::Class *);
public:
  virtual ::java::lang::Object * next();
  virtual jboolean hasNext();
  virtual void remove();
private:
  ::java::util::Iterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) i;
public: // actually package-private
  ::java::lang::Class * type;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_Collections$CheckedIterator__
