
// 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__
