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

#ifndef __gnu_classpath_jdwp_id_ReferenceTypeId__
#define __gnu_classpath_jdwp_id_ReferenceTypeId__

#pragma interface

#include <gnu/classpath/jdwp/id/JdwpId.h>
extern "Java"
{
  namespace gnu
  {
    namespace classpath
    {
      namespace jdwp
      {
        namespace id
        {
            class ReferenceTypeId;
        }
      }
    }
  }
}

class gnu::classpath::jdwp::id::ReferenceTypeId : public ::gnu::classpath::jdwp::id::JdwpId
{

public:
  ReferenceTypeId(jbyte);
  virtual ::java::lang::Class * getType();
  virtual void write(::java::io::DataOutputStream *);
  static ::java::lang::Class class$;
};

#endif // __gnu_classpath_jdwp_id_ReferenceTypeId__
