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

#ifndef __gnu_gcj_runtime_PersistentByteMap$MapEntry__
#define __gnu_gcj_runtime_PersistentByteMap$MapEntry__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace gcj
    {
      namespace runtime
      {
          class PersistentByteMap$MapEntry;
      }
    }
  }
}

class gnu::gcj::runtime::PersistentByteMap$MapEntry : public ::java::lang::Object
{

public:
  PersistentByteMap$MapEntry(jint, ::java::lang::Object *, ::java::lang::Object *);
  ::java::lang::Object * getKey();
  ::java::lang::Object * getValue();
  jint getBucket();
private:
  ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) key;
  ::java::lang::Object * value;
  jint bucket;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_gcj_runtime_PersistentByteMap$MapEntry__
