dbertoni    2003/06/05 16:58:10

  Modified:    c/src/XercesParserLiaison XercesDocumentWrapper.hpp
                        XercesElementWrapper.cpp XercesElementWrapper.hpp
  Log:
  Fix for Bugzilla 18553.
  
  Revision  Changes    Path
  1.10      +6 -0      xml-xalan/c/src/XercesParserLiaison/XercesDocumentWrapper.hpp
  
  Index: XercesDocumentWrapper.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XercesParserLiaison/XercesDocumentWrapper.hpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- XercesDocumentWrapper.hpp 13 Feb 2003 02:34:07 -0000      1.9
  +++ XercesDocumentWrapper.hpp 5 Jun 2003 23:58:09 -0000       1.10
  @@ -494,6 +494,12 @@
                        const XalanDOMChar*                     theString,
                        XalanDOMString::size_type       theLength /* = 
XalanDOMString::npos */) const;
   
  +     bool
  +     getMappingMode() const
  +     {
  +             return m_mappingMode;
  +     }
  +
   private:
   
        // Destruction API...
  
  
  
  1.5       +38 -3     xml-xalan/c/src/XercesParserLiaison/XercesElementWrapper.cpp
  
  Index: XercesElementWrapper.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XercesParserLiaison/XercesElementWrapper.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XercesElementWrapper.cpp  12 Feb 2003 23:05:40 -0000      1.4
  +++ XercesElementWrapper.cpp  5 Jun 2003 23:58:09 -0000       1.5
  @@ -59,6 +59,7 @@
   
   
   #include <xercesc/dom/DOMElement.hpp>
  +#include <xercesc/dom/DOMNodeList.hpp>
   
   
   
  @@ -87,8 +88,6 @@
        XalanElement(),
        m_xercesNode(theXercesElement),
        m_navigator(theNavigator),
  -     m_children(theXercesElement->getChildNodes(),
  -                        theNavigator),
        m_attributes(theXercesElement->getAttributes(),
                                 theNavigator)
   {
  @@ -138,7 +137,7 @@
   const XalanNodeList*
   XercesElementWrapper::getChildNodes() const
   {
  -     return &m_children;
  +     return this;
   }
   
   
  @@ -476,6 +475,42 @@
        throw XercesDOMWrapperException(XercesDOMWrapperException::NOT_SUPPORTED_ERR);
   
        return 0;
  +}
  +
  +
  +
  +XalanNode*
  +XercesElementWrapper::item(unsigned int              index) const
  +{
  +     assert(index < getLength());
  +
  +     if (m_navigator.getOwnerDocument()->getMappingMode() == true)
  +     {
  +             assert(m_xercesNode->getChildNodes()->item(index));
  +
  +             return m_navigator.mapNode(m_xercesNode->getChildNodes()->item(index));
  +     }
  +     else
  +     {
  +             XalanNode*      child = getFirstChild();
  +             assert(child != 0);
  +
  +             for(unsigned int i = 0; i < index; ++i)
  +             {
  +                     child = child->getNextSibling();
  +                     assert(child != 0);
  +             }
  +
  +             return child;
  +     }
  +}
  +
  +
  +
  +unsigned int
  +XercesElementWrapper::getLength() const
  +{
  +     return m_xercesNode->getChildNodes()->getLength();
   }
   
   
  
  
  
  1.4       +10 -4     xml-xalan/c/src/XercesParserLiaison/XercesElementWrapper.hpp
  
  Index: XercesElementWrapper.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XercesParserLiaison/XercesElementWrapper.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XercesElementWrapper.hpp  12 Feb 2003 23:05:40 -0000      1.3
  +++ XercesElementWrapper.hpp  5 Jun 2003 23:58:09 -0000       1.4
  @@ -68,6 +68,7 @@
   
   
   #include <XalanDOM/XalanElement.hpp>
  +#include <XalanDOM/XalanNodeList.hpp>
   
   
   
  @@ -76,7 +77,6 @@
   
   
   #include <XercesParserLiaison/XercesNamedNodeMapWrapper.hpp>
  -#include <XercesParserLiaison/XercesNodeListWrapper.hpp>
   #include <XercesParserLiaison/XercesWrapperTypes.hpp>
   
   
  @@ -89,7 +89,7 @@
   
   
   
  -class XALAN_XERCESPARSERLIAISON_EXPORT XercesElementWrapper : public XalanElement
  +class XALAN_XERCESPARSERLIAISON_EXPORT XercesElementWrapper : public XalanElement, 
private XalanNodeList
   {
   public:
   
  @@ -735,6 +735,14 @@
   
   private:
   
  +     // Implementation of XalanNodeList for children.
  +     virtual XalanNode*
  +     item(unsigned int       index) const;
  +
  +     virtual unsigned int
  +     getLength() const;
  +
  +
        // Not implemented...
        XercesElementWrapper(const XercesElementWrapper&        theSource);
   
  @@ -748,8 +756,6 @@
        const DOMElementType* const             m_xercesNode;
   
        const XercesWrapperNavigator&   m_navigator;
  -
  -     XercesNodeListWrapper                   m_children;
   
        XercesNamedNodeMapWrapper               m_attributes;
   };
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to