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

#ifndef __javax_xml_transform_TransformerConfigurationException__
#define __javax_xml_transform_TransformerConfigurationException__

#pragma interface

#include <javax/xml/transform/TransformerException.h>
extern "Java"
{
  namespace javax
  {
    namespace xml
    {
      namespace transform
      {
          class SourceLocator;
          class TransformerConfigurationException;
      }
    }
  }
}

class javax::xml::transform::TransformerConfigurationException : public ::javax::xml::transform::TransformerException
{

public:
  TransformerConfigurationException();
  TransformerConfigurationException(::java::lang::String *);
  TransformerConfigurationException(::java::lang::Throwable *);
  TransformerConfigurationException(::java::lang::String *, ::java::lang::Throwable *);
  TransformerConfigurationException(::java::lang::String *, ::javax::xml::transform::SourceLocator *);
  TransformerConfigurationException(::java::lang::String *, ::javax::xml::transform::SourceLocator *, ::java::lang::Throwable *);
private:
  static const jlong serialVersionUID = 1285547467942875745LL;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_xml_transform_TransformerConfigurationException__
