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

#ifndef __java_lang_management_ThreadInfo__
#define __java_lang_management_ThreadInfo__

#pragma interface

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

extern "Java"
{
  namespace javax
  {
    namespace management
    {
      namespace openmbean
      {
          class CompositeData;
          class CompositeType;
          class OpenType;
      }
    }
  }
}

class java::lang::management::ThreadInfo : public ::java::lang::Object
{

  ThreadInfo(jlong, ::java::lang::String *, ::java::lang::Thread$State *, jlong, jlong, ::java::lang::String *, jlong, ::java::lang::String *, jlong, jlong, jboolean, jboolean, JArray< ::java::lang::StackTraceElement * > *, JArray< ::java::lang::management::MonitorInfo * > *, JArray< ::java::lang::management::LockInfo * > *);
public: // actually package-private
  static void checkAttribute(::javax::management::openmbean::CompositeType *, ::java::lang::String *, ::javax::management::openmbean::OpenType *);
  static ::javax::management::openmbean::CompositeType * getStackTraceType();
public:
  static ::java::lang::management::ThreadInfo * from(::javax::management::openmbean::CompositeData *);
  virtual jlong getBlockedCount();
  virtual jlong getBlockedTime();
  virtual JArray< ::java::lang::management::MonitorInfo * > * getLockedMonitors();
  virtual JArray< ::java::lang::management::LockInfo * > * getLockedSynchronizers();
  virtual ::java::lang::management::LockInfo * getLockInfo();
  virtual ::java::lang::String * getLockName();
  virtual jlong getLockOwnerId();
  virtual ::java::lang::String * getLockOwnerName();
  virtual JArray< ::java::lang::StackTraceElement * > * getStackTrace();
  virtual jlong getThreadId();
  virtual ::java::lang::String * getThreadName();
  virtual ::java::lang::Thread$State * getThreadState();
  virtual jlong getWaitedCount();
  virtual jlong getWaitedTime();
  virtual jboolean isInNative();
  virtual jboolean isSuspended();
  virtual ::java::lang::String * toString();
private:
  jboolean isThreadBlocked();
  jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) threadId;
  ::java::lang::String * threadName;
  ::java::lang::Thread$State * threadState;
  jlong blockedCount;
  jlong blockedTime;
  ::java::lang::String * lockName;
  jlong lockOwnerId;
  ::java::lang::String * lockOwnerName;
  jlong waitedCount;
  jlong waitedTime;
  jboolean isInNative__;
  jboolean isSuspended__;
  JArray< ::java::lang::StackTraceElement * > * trace;
  JArray< ::java::lang::management::MonitorInfo * > * lockedMonitors;
  JArray< ::java::lang::management::LockInfo * > * lockedSynchronizers;
  static ::java::lang::management::ThreadMXBean * bean;
  static ::javax::management::openmbean::CompositeType * seType;
public:
  static ::java::lang::Class class$;
};

#endif // __java_lang_management_ThreadInfo__
