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

#ifndef __javax_xml_transform_Transformer__
#define __javax_xml_transform_Transformer__

#pragma interface

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

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

public: // actually protected
  Transformer();
public:
  virtual void transform(::javax::xml::transform::Source *, ::javax::xml::transform::Result *) = 0;
  virtual void setParameter(::java::lang::String *, ::java::lang::Object *) = 0;
  virtual ::java::lang::Object * getParameter(::java::lang::String *) = 0;
  virtual void clearParameters() = 0;
  virtual void setURIResolver(::javax::xml::transform::URIResolver *) = 0;
  virtual ::javax::xml::transform::URIResolver * getURIResolver() = 0;
  virtual void setOutputProperties(::java::util::Properties *) = 0;
  virtual ::java::util::Properties * getOutputProperties() = 0;
  virtual void setOutputProperty(::java::lang::String *, ::java::lang::String *) = 0;
  virtual ::java::lang::String * getOutputProperty(::java::lang::String *) = 0;
  virtual void setErrorListener(::javax::xml::transform::ErrorListener *) = 0;
  virtual ::javax::xml::transform::ErrorListener * getErrorListener() = 0;
  virtual void reset();
  static ::java::lang::Class class$;
};

#endif // __javax_xml_transform_Transformer__
