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

#ifndef __gnu_xml_pipeline_TextConsumer__
#define __gnu_xml_pipeline_TextConsumer__

#pragma interface

#include <gnu/xml/util/XMLWriter.h>
extern "Java"
{
  namespace gnu
  {
    namespace xml
    {
      namespace pipeline
      {
          class TextConsumer;
      }
    }
  }
  namespace org
  {
    namespace xml
    {
      namespace sax
      {
          class ContentHandler;
          class DTDHandler;
      }
    }
  }
}

class gnu::xml::pipeline::TextConsumer : public ::gnu::xml::util::XMLWriter
{

public:
  TextConsumer(::java::io::Writer *, jboolean);
  TextConsumer(::java::io::Writer *);
  TextConsumer(::java::io::OutputStream *);
  virtual ::org::xml::sax::ContentHandler * getContentHandler();
  virtual ::org::xml::sax::DTDHandler * getDTDHandler();
  virtual ::java::lang::Object * getProperty(::java::lang::String *);
  static ::java::lang::Class class$;
};

#endif // __gnu_xml_pipeline_TextConsumer__
