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

#ifndef __gnu_javax_net_ssl_provider_CipherAlgorithm__
#define __gnu_javax_net_ssl_provider_CipherAlgorithm__

#pragma interface

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

extern "Java"
{
  namespace gnu
  {
    namespace javax
    {
      namespace net
      {
        namespace ssl
        {
          namespace provider
          {
              class CipherAlgorithm;
          }
        }
      }
    }
  }
}

class gnu::javax::net::ssl::provider::CipherAlgorithm : public ::java::lang::Enum
{

  CipherAlgorithm(::java::lang::String *, jint);
public:
  static JArray< ::gnu::javax::net::ssl::provider::CipherAlgorithm * > * values();
  static ::gnu::javax::net::ssl::provider::CipherAlgorithm * valueOf(::java::lang::String *);
  static ::gnu::javax::net::ssl::provider::CipherAlgorithm * NULL;
  static ::gnu::javax::net::ssl::provider::CipherAlgorithm * RC4;
  static ::gnu::javax::net::ssl::provider::CipherAlgorithm * DES;
  static ::gnu::javax::net::ssl::provider::CipherAlgorithm * DESede;
  static ::gnu::javax::net::ssl::provider::CipherAlgorithm * CAST5;
  static ::gnu::javax::net::ssl::provider::CipherAlgorithm * AES;
private:
  static JArray< ::gnu::javax::net::ssl::provider::CipherAlgorithm * > * ENUM$VALUES;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_javax_net_ssl_provider_CipherAlgorithm__
