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

#ifndef __java_util_concurrent_ConcurrentSkipListMap$SubMap$SubMapEntryIterator__
#define __java_util_concurrent_ConcurrentSkipListMap$SubMap$SubMapEntryIterator__

#pragma interface

#include <java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter.h>

class java::util::concurrent::ConcurrentSkipListMap$SubMap$SubMapEntryIterator : public ::java::util::concurrent::ConcurrentSkipListMap$SubMap$SubMapIter
{

public: // actually package-private
  ConcurrentSkipListMap$SubMap$SubMapEntryIterator(::java::util::concurrent::ConcurrentSkipListMap$SubMap *);
public:
  ::java::util::Map$Entry * ConcurrentSkipListMap$SubMap$SubMapEntryIterator$next();
  ::java::lang::Object * next();
public: // actually package-private
  ::java::util::concurrent::ConcurrentSkipListMap$SubMap * __attribute__((aligned(__alignof__( ::java::util::concurrent::ConcurrentSkipListMap$SubMap$SubMapIter)))) this$1;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_concurrent_ConcurrentSkipListMap$SubMap$SubMapEntryIterator__
