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

#ifndef __gnu_xml_xpath_Expr$ExprNodeSet__
#define __gnu_xml_xpath_Expr$ExprNodeSet__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace xml
    {
      namespace xpath
      {
          class Expr$ExprNodeSet;
      }
    }
  }
  namespace org
  {
    namespace w3c
    {
      namespace dom
      {
          class Node;
      }
    }
  }
}

class gnu::xml::xpath::Expr$ExprNodeSet : public ::java::lang::Object
{

public: // actually package-private
  Expr$ExprNodeSet(::java::util::Collection *);
public:
  virtual jint getLength();
  virtual ::org::w3c::dom::Node * item(jint);
private:
  ::java::util::ArrayList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) list;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_xml_xpath_Expr$ExprNodeSet__
