00001 #ifndef DOMTreeWalker_HEADER_GUARD_
00002 #define DOMTreeWalker_HEADER_GUARD_
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 #include <xercesc/dom/DOMNode.hpp>
00025 #include <xercesc/dom/DOMNodeFilter.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 
00049 class  DOMTreeWalker {
00050 protected:
00051     
00052     
00053     
00056     DOMTreeWalker() {}
00057     DOMTreeWalker(const DOMTreeWalker &) {}
00059 
00060 private:
00061     
00062     
00063     
00066     DOMTreeWalker & operator = (const DOMTreeWalker &);
00068 
00069 public:
00070     
00071     
00072     
00079     virtual ~DOMTreeWalker() {};
00081 
00082     
00083     
00084     
00087     
00088     
00089     
00090 
00097     virtual DOMNode*          getRoot() = 0;
00108     virtual unsigned long       getWhatToShow()= 0;
00109 
00115     virtual DOMNodeFilter*     getFilter()= 0;
00116 
00134     virtual bool              getExpandEntityReferences()= 0;
00135 
00141     virtual DOMNode*          getCurrentNode()= 0;
00142 
00143     
00144     
00145     
00157     virtual DOMNode*          parentNode()= 0;
00158 
00169     virtual DOMNode*          firstChild()= 0;
00170 
00181     virtual DOMNode*          lastChild()= 0;
00182 
00193     virtual DOMNode*          previousSibling()= 0;
00194 
00204     virtual DOMNode*          nextSibling()= 0;
00205 
00218     virtual DOMNode*          previousNode()= 0;
00219 
00231     virtual DOMNode*          nextNode()= 0;
00232 
00233     
00234     
00235     
00253     virtual void              setCurrentNode(DOMNode* currentNode)= 0;
00255 
00256     
00257     
00258     
00267     virtual void              release() = 0;
00269 };
00270 
00271 #define GetDOMTreeWalkerMemoryManager GET_INDIRECT_MM(fCurrentNode)
00272 
00273 XERCES_CPP_NAMESPACE_END
00274 
00275 #endif