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

#ifndef __gnu_classpath_jdwp_util_Signature__
#define __gnu_classpath_jdwp_util_Signature__

#pragma interface

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

extern "Java"
{
  namespace gnu
  {
    namespace classpath
    {
      namespace jdwp
      {
        namespace util
        {
            class Signature;
        }
      }
    }
    namespace java
    {
      namespace lang
      {
          class CPStringBuilder;
      }
    }
  }
}

class gnu::classpath::jdwp::util::Signature : public ::java::lang::Object
{

public:
  Signature();
  static ::java::lang::String * computeClassSignature(::java::lang::Class *);
  static ::java::lang::String * computeFieldSignature(::java::lang::reflect::Field *);
  static ::java::lang::String * computeMethodSignature(::java::lang::reflect::Method *);
private:
  static ::java::lang::String * _computeSignature(::java::lang::Class *, JArray< ::java::lang::Class * > *);
  static void _addToSignature(::gnu::java::lang::CPStringBuilder *, ::java::lang::Class *);
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_classpath_jdwp_util_Signature__
