
// 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:
  jboolean hasNext();
  ::java::lang::Runnable * ScheduledThreadPoolExecutor$1$next();
  void remove();
  ::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__
