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

#ifndef __gnu_xml_xpath_VariableReference__
#define __gnu_xml_xpath_VariableReference__

#pragma interface

#include <gnu/xml/xpath/Expr.h>
extern "Java"
{
  namespace gnu
  {
    namespace xml
    {
      namespace xpath
      {
          class Expr;
          class VariableReference;
      }
    }
  }
  namespace javax
  {
    namespace xml
    {
      namespace namespace$
      {
          class QName;
      }
      namespace xpath
      {
          class XPathVariableResolver;
      }
    }
  }
  namespace org
  {
    namespace w3c
    {
      namespace dom
      {
          class Node;
      }
    }
  }
}

class gnu::xml::xpath::VariableReference : public ::gnu::xml::xpath::Expr
{

public:
  VariableReference(::javax::xml::xpath::XPathVariableResolver *, ::javax::xml::namespace$::QName *);
  virtual ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint);
  virtual ::gnu::xml::xpath::Expr * clone(::java::lang::Object *);
  virtual jboolean references(::javax::xml::namespace$::QName *);
  virtual ::java::lang::String * toString();
public: // actually package-private
  ::javax::xml::xpath::XPathVariableResolver * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) resolver;
  ::javax::xml::namespace$::QName * name;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_xml_xpath_VariableReference__
