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

#ifndef __java_util_Collections$SynchronizedListIterator__
#define __java_util_Collections$SynchronizedListIterator__

#pragma interface

#include <java/util/Collections$SynchronizedIterator.h>

class java::util::Collections$SynchronizedListIterator : public ::java::util::Collections$SynchronizedIterator
{

public: // actually package-private
  Collections$SynchronizedListIterator(::java::lang::Object *, ::java::util::ListIterator *);
public:
  void add(::java::lang::Object *);
  jboolean hasPrevious();
  jint nextIndex();
  ::java::lang::Object * previous();
  jint previousIndex();
  void set(::java::lang::Object *);
private:
  ::java::util::ListIterator * __attribute__((aligned(__alignof__( ::java::util::Collections$SynchronizedIterator)))) li;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_Collections$SynchronizedListIterator__
