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

#ifndef __javax_xml_transform_TransformerFactory__
#define __javax_xml_transform_TransformerFactory__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace xml
    {
      namespace transform
      {
          class ErrorListener;
          class Source;
          class Templates;
          class Transformer;
          class TransformerFactory;
          class URIResolver;
      }
    }
  }
}

class javax::xml::transform::TransformerFactory : public ::java::lang::Object
{

public: // actually protected
  TransformerFactory();
public:
  static ::javax::xml::transform::TransformerFactory * newInstance();
private:
  static ::java::lang::String * getFactoryClassName(::java::lang::ClassLoader *, jint);
public:
  virtual ::javax::xml::transform::Transformer * newTransformer(::javax::xml::transform::Source *) = 0;
  virtual ::javax::xml::transform::Transformer * newTransformer() = 0;
  virtual ::javax::xml::transform::Templates * newTemplates(::javax::xml::transform::Source *) = 0;
  virtual ::javax::xml::transform::Source * getAssociatedStylesheet(::javax::xml::transform::Source *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
  virtual void setURIResolver(::javax::xml::transform::URIResolver *) = 0;
  virtual ::javax::xml::transform::URIResolver * getURIResolver() = 0;
  virtual void setFeature(::java::lang::String *, jboolean) = 0;
  virtual jboolean getFeature(::java::lang::String *) = 0;
  virtual void setAttribute(::java::lang::String *, ::java::lang::Object *) = 0;
  virtual ::java::lang::Object * getAttribute(::java::lang::String *) = 0;
  virtual void setErrorListener(::javax::xml::transform::ErrorListener *) = 0;
  virtual ::javax::xml::transform::ErrorListener * getErrorListener() = 0;
  static ::java::lang::Class class$;
};

#endif // __javax_xml_transform_TransformerFactory__
