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

#ifndef __gnu_xml_transform_SAXTemplatesHandler__
#define __gnu_xml_transform_SAXTemplatesHandler__

#pragma interface

#include <gnu/xml/dom/ls/SAXEventSink.h>
extern "Java"
{
  namespace gnu
  {
    namespace xml
    {
      namespace transform
      {
          class SAXTemplatesHandler;
          class TransformerFactoryImpl;
      }
    }
  }
  namespace javax
  {
    namespace xml
    {
      namespace transform
      {
          class Templates;
      }
    }
  }
}

class gnu::xml::transform::SAXTemplatesHandler : public ::gnu::xml::dom::ls::SAXEventSink
{

public: // actually package-private
  SAXTemplatesHandler(::gnu::xml::transform::TransformerFactoryImpl *);
public:
  virtual ::java::lang::String * getSystemId();
  virtual void setSystemId(::java::lang::String *);
  virtual ::javax::xml::transform::Templates * getTemplates();
public: // actually package-private
  ::gnu::xml::transform::TransformerFactoryImpl * __attribute__((aligned(__alignof__( ::gnu::xml::dom::ls::SAXEventSink)))) factory;
  ::java::lang::String * systemId;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_xml_transform_SAXTemplatesHandler__
