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

#ifndef __javax_xml_stream_util_XMLEventAllocator__
#define __javax_xml_stream_util_XMLEventAllocator__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace xml
    {
      namespace stream
      {
          class XMLStreamReader;
        namespace events
        {
            class XMLEvent;
        }
        namespace util
        {
            class XMLEventAllocator;
            class XMLEventConsumer;
        }
      }
    }
  }
}

class javax::xml::stream::util::XMLEventAllocator : public ::java::lang::Object
{

public:
  virtual ::javax::xml::stream::util::XMLEventAllocator * newInstance() = 0;
  virtual ::javax::xml::stream::events::XMLEvent * allocate(::javax::xml::stream::XMLStreamReader *) = 0;
  virtual void allocate(::javax::xml::stream::XMLStreamReader *, ::javax::xml::stream::util::XMLEventConsumer *) = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __javax_xml_stream_util_XMLEventAllocator__
