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

#ifndef __gnu_xml_pipeline_PipelineFactory$Stage__
#define __gnu_xml_pipeline_PipelineFactory$Stage__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace xml
    {
      namespace pipeline
      {
          class EventConsumer;
          class PipelineFactory$Pipeline;
          class PipelineFactory$Stage;
      }
    }
  }
}

class gnu::xml::pipeline::PipelineFactory$Stage : public ::java::lang::Object
{

public: // actually package-private
  PipelineFactory$Stage(::java::lang::String *);
public:
  virtual ::java::lang::String * toString();
private:
  void fail(::java::lang::String *);
public: // actually package-private
  virtual ::gnu::xml::pipeline::EventConsumer * createStage(::gnu::xml::pipeline::EventConsumer *);
  ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) id;
  ::gnu::xml::pipeline::PipelineFactory$Pipeline * param;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_xml_pipeline_PipelineFactory$Stage__
