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

#ifndef __javax_xml_xpath_XPathExpression__
#define __javax_xml_xpath_XPathExpression__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace xml
    {
      namespace namespace
      {
          class QName;
      }
      namespace xpath
      {
          class XPathExpression;
      }
    }
  }
  namespace org
  {
    namespace xml
    {
      namespace sax
      {
          class InputSource;
      }
    }
  }
}

class javax::xml::xpath::XPathExpression : public ::java::lang::Object
{

public:
  virtual ::java::lang::Object * evaluate(::java::lang::Object *, ::javax::xml::namespace::QName *) = 0;
  virtual ::java::lang::String * evaluate(::java::lang::Object *) = 0;
  virtual ::java::lang::Object * evaluate(::org::xml::sax::InputSource *, ::javax::xml::namespace::QName *) = 0;
  virtual ::java::lang::String * evaluate(::org::xml::sax::InputSource *) = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __javax_xml_xpath_XPathExpression__
