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

#ifndef __gnu_java_security_x509_ext_GeneralSubtree__
#define __gnu_java_security_x509_ext_GeneralSubtree__

#pragma interface

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

extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace security
      {
        namespace x509
        {
          namespace ext
          {
              class GeneralName;
              class GeneralSubtree;
          }
        }
      }
    }
  }
}

class gnu::java::security::x509::ext::GeneralSubtree : public ::java::lang::Object
{

public:
  GeneralSubtree(JArray< jbyte > *);
  virtual ::gnu::java::security::x509::ext::GeneralName * base();
  virtual jint minimum();
  virtual jint maximum();
  virtual ::java::lang::String * toString();
private:
  ::gnu::java::security::x509::ext::GeneralName * __attribute__((aligned(__alignof__( ::java::lang::Object)))) base__;
  jint minimum__;
  jint maximum__;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_security_x509_ext_GeneralSubtree__
