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

#ifndef __gnu_java_security_OID__
#define __gnu_java_security_OID__

#pragma interface

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

extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace security
      {
        class OID;
      }
    }
  }
}

class gnu::java::security::OID : public ::java::lang::Object
{
public:
  OID (jintArray);
  OID (jintArray, jboolean);
  OID (::java::lang::String *);
  OID (::java::lang::String *, jboolean);
  OID (::java::io::InputStream *, jint);
  OID (::java::io::InputStream *, jint, jboolean);
  OID (jbyteArray);
  OID (jbyteArray, jboolean);
private:
  OID ();
public:
  virtual jintArray getIDs ();
  virtual jbyteArray getDER ();
  virtual ::gnu::java::security::OID *getParent ();
  virtual ::gnu::java::security::OID *getChild (jint);
  virtual ::gnu::java::security::OID *getRoot ();
  virtual jboolean isRelative () { return relative; }
  virtual ::java::lang::Object *clone ();
  virtual ::java::lang::String *toString ();
  virtual jint hashCode ();
  virtual jboolean equals (::java::lang::Object *);
  virtual jint compareTo (::java::lang::Object *);
private:
  static jintArray fromDER (jbyteArray, jboolean);
  static jintArray fromString (::java::lang::String *);
  static void encodeSubID (::java::io::ByteArrayOutputStream *, jint);
  jintArray __attribute__((aligned(__alignof__( ::java::lang::Object ))))  components;
  ::java::lang::String *strRep;
  jbyteArray der;
  jboolean relative;
public:

  static ::java::lang::Class class$;
};

#endif /* __gnu_java_security_OID__ */
