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

#ifndef __java_util_concurrent_ConcurrentHashMap$HashEntry__
#define __java_util_concurrent_ConcurrentHashMap$HashEntry__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>


class java::util::concurrent::ConcurrentHashMap$HashEntry : public ::java::lang::Object
{

public: // actually package-private
  ConcurrentHashMap$HashEntry(::java::lang::Object *, jint, ::java::util::concurrent::ConcurrentHashMap$HashEntry *, ::java::lang::Object *);
  static JArray< ::java::util::concurrent::ConcurrentHashMap$HashEntry * > * newArray(jint);
  ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) key;
  jint hash;
  ::java::lang::Object * volatile value;
  ::java::util::concurrent::ConcurrentHashMap$HashEntry * next;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_concurrent_ConcurrentHashMap$HashEntry__
