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

#ifndef __java_util_TreeMap$1__
#define __java_util_TreeMap$1__

#pragma interface

#include <java/lang/Object.h>

class java::util::TreeMap$1 : public ::java::lang::Object
{

public: // actually package-private
  TreeMap$1(::java::util::TreeMap$SubMap$NavigableEntrySet *);
public:
  virtual jint TreeMap$1$compare(::java::util::Map$Entry *, ::java::util::Map$Entry *);
  virtual jint compare(::java::lang::Object *, ::java::lang::Object *);
public: // actually package-private
  ::java::util::TreeMap$SubMap$NavigableEntrySet * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$2;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_TreeMap$1__
