00001 #ifndef DOMXPathResult_HEADER_GUARD_
00002 #define DOMXPathResult_HEADER_GUARD_
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 #include <xercesc/util/XercesDefs.hpp>
00021 
00022 XERCES_CPP_NAMESPACE_BEGIN
00023 
00024 class DOMXPathNSResolver;
00025 class DOMXPathExpression;
00026 class DOMNode;
00027 
00036 class  DOMXPathResult
00037 {
00038 
00039 protected:
00040     
00041     
00042     
00045     DOMXPathResult() {};
00047 
00048 private:
00049     
00050     
00051     
00054     DOMXPathResult(const DOMXPathResult &);
00055     DOMXPathResult& operator = (const  DOMXPathResult&);
00057 
00058 public:
00059     
00060     
00061     
00068     virtual ~DOMXPathResult() {};
00070 
00071     
00072     
00073     
00135     enum resultType {
00136                 ANY_TYPE = 0,
00137                 NUMBER_TYPE = 1,
00138                 STRING_TYPE = 2,
00139                 BOOLEAN_TYPE = 3,
00140                 UNORDERED_NODE_ITERATOR_TYPE = 4,
00141                 ORDERED_NODE_ITERATOR_TYPE = 5,
00142                 UNORDERED_NODE_SNAPSHOT_TYPE = 6,
00143                 ORDERED_NODE_SNAPSHOT_TYPE = 7,
00144                 ANY_UNORDERED_NODE_TYPE = 8,
00145                 FIRST_ORDERED_NODE_TYPE = 9
00146     };
00148 
00149 
00150     
00151     
00152     
00155 
00156 
00164     virtual bool getBooleanValue() const = 0;
00165 
00175     virtual bool getInvalidIteratorState() const = 0;
00176 
00187     virtual double getNumberValue() const = 0;
00188 
00196     virtual short getResultType() const = 0;
00197         
00205     virtual DOMNode *getSingleNodeValue() const = 0;
00206 
00216     virtual unsigned long getSnapshotLength() const = 0;
00217         
00225     virtual const XMLCh* getStringValue() const = 0;
00226     
00235     virtual DOMNode* iterateNext() const = 0;
00236 
00247     virtual DOMNode* snapshotItem(unsigned long index) const = 0;
00248 
00250 };
00251 
00252 XERCES_CPP_NAMESPACE_END
00253 
00254 #endif