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

#ifndef __javax_xml_stream_XMLEventWriter__
#define __javax_xml_stream_XMLEventWriter__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace xml
    {
      namespace namespace
      {
          class NamespaceContext;
      }
      namespace stream
      {
          class XMLEventReader;
          class XMLEventWriter;
        namespace events
        {
            class XMLEvent;
        }
      }
    }
  }
}

class javax::xml::stream::XMLEventWriter : public ::java::lang::Object
{

public:
  virtual void flush() = 0;
  virtual void close() = 0;
  virtual void add(::javax::xml::stream::events::XMLEvent *) = 0;
  virtual void add(::javax::xml::stream::XMLEventReader *) = 0;
  virtual ::java::lang::String * getPrefix(::java::lang::String *) = 0;
  virtual void setPrefix(::java::lang::String *, ::java::lang::String *) = 0;
  virtual void setDefaultNamespace(::java::lang::String *) = 0;
  virtual void setNamespaceContext(::javax::xml::namespace::NamespaceContext *) = 0;
  virtual ::javax::xml::namespace::NamespaceContext * getNamespaceContext() = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __javax_xml_stream_XMLEventWriter__
