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

#ifndef __java_util_concurrent_ScheduledThreadPoolExecutor$1__
#define __java_util_concurrent_ScheduledThreadPoolExecutor$1__

#pragma interface

#include <java/lang/Object.h>

class java::util::concurrent::ScheduledThreadPoolExecutor$1 : public ::java::lang::Object
{

public: // actually package-private
  ScheduledThreadPoolExecutor$1(::java::util::concurrent::ScheduledThreadPoolExecutor$DelayedWorkQueue *);
public:
  virtual jboolean hasNext();
  virtual ::java::lang::Runnable * ScheduledThreadPoolExecutor$1$next();
  virtual void remove();
  virtual ::java::lang::Object * next();
private:
  ::java::util::Iterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) it;
public: // actually package-private
  ::java::util::concurrent::ScheduledThreadPoolExecutor$DelayedWorkQueue * this$1;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_concurrent_ScheduledThreadPoolExecutor$1__
