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

#ifndef __java_util_Collections$SynchronizedIterator__
#define __java_util_Collections$SynchronizedIterator__

#pragma interface

#include <java/lang/Object.h>

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

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

#endif // __java_util_Collections$SynchronizedIterator__
