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

#ifndef __java_security_cert_CertPathValidatorSpi__
#define __java_security_cert_CertPathValidatorSpi__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace security
    {
      namespace cert
      {
          class CertPath;
          class CertPathParameters;
          class CertPathValidatorResult;
          class CertPathValidatorSpi;
      }
    }
  }
}

class java::security::cert::CertPathValidatorSpi : public ::java::lang::Object
{

public:
  CertPathValidatorSpi();
  virtual ::java::security::cert::CertPathValidatorResult * engineValidate(::java::security::cert::CertPath *, ::java::security::cert::CertPathParameters *) = 0;
  static ::java::lang::Class class$;
};

#endif // __java_security_cert_CertPathValidatorSpi__
