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

#ifndef __java_security_AlgorithmParametersSpi__
#define __java_security_AlgorithmParametersSpi__

#pragma interface

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

extern "Java"
{
  namespace java
  {
    namespace security
    {
        class AlgorithmParametersSpi;
      namespace spec
      {
          class AlgorithmParameterSpec;
      }
    }
  }
}

class java::security::AlgorithmParametersSpi : public ::java::lang::Object
{

public:
  AlgorithmParametersSpi();
public: // actually protected
  virtual void engineInit(::java::security::spec::AlgorithmParameterSpec *) = 0;
  virtual void engineInit(JArray< jbyte > *) = 0;
  virtual void engineInit(JArray< jbyte > *, ::java::lang::String *) = 0;
  virtual ::java::security::spec::AlgorithmParameterSpec * engineGetParameterSpec(::java::lang::Class *) = 0;
  virtual JArray< jbyte > * engineGetEncoded() = 0;
  virtual JArray< jbyte > * engineGetEncoded(::java::lang::String *) = 0;
  virtual ::java::lang::String * engineToString() = 0;
public:
  static ::java::lang::Class class$;
};

#endif // __java_security_AlgorithmParametersSpi__
