auriemma    00/12/05 11:12:37

  Modified:    c/src/XPath XResultTreeFrag.cpp XResultTreeFrag.hpp
  Log:
  Removed multiple inheritance.
  
  Revision  Changes    Path
  1.16      +44 -6     xml-xalan/c/src/XPath/XResultTreeFrag.cpp
  
  Index: XResultTreeFrag.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XResultTreeFrag.cpp,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- XResultTreeFrag.cpp       2000/12/04 20:46:17     1.15
  +++ XResultTreeFrag.cpp       2000/12/05 19:12:34     1.16
  @@ -82,10 +82,10 @@
   
   XResultTreeFrag::XResultTreeFrag(ResultTreeFragBase* val) :
        XObject(eTypeResultTreeFrag),
  -     NodeRefListBase(),
        m_value(val),
        m_cachedStringValue(),
  -     m_cachedNumberValue(0.0)
  +     m_cachedNumberValue(0.0),
  +     m_nodeRefListBaseProxy(*this)
   {
   }
   
  @@ -94,11 +94,11 @@
   XResultTreeFrag::XResultTreeFrag(
                        const XResultTreeFrag&  source,
                        bool                                    deepClone) :
  -     XObject(source),
  -     NodeRefListBase(source),
  +     XObject(source),        
        m_value(source.m_value->clone(deepClone)),
        m_cachedStringValue(source.m_cachedStringValue),
  -     m_cachedNumberValue(source.m_cachedNumberValue)
  +     m_cachedNumberValue(source.m_cachedNumberValue),        
  +     m_nodeRefListBaseProxy(*this)
   {
   }
   
  @@ -192,7 +192,7 @@
   const NodeRefListBase&
   XResultTreeFrag::nodeset() const
   {
  -     return *this;
  +     return m_nodeRefListBaseProxy;
   }
   
   
  @@ -276,4 +276,42 @@
        }
   
        return fFound == true ? theIndex : NodeRefListBase::npos;
  +}
  +
  +
  +
  +XResultTreeFrag::NodeRefListBaseProxy::NodeRefListBaseProxy(const 
XResultTreeFrag&   theXResultTreeFrag) :
  +     NodeRefListBase(),
  +     m_xresultTreeFrag(theXResultTreeFrag)
  +{
  +}
  +
  +
  +
  +XResultTreeFrag::NodeRefListBaseProxy::~NodeRefListBaseProxy()
  +{
  +}
  +
  +
  +
  +XalanNode*
  +XResultTreeFrag::NodeRefListBaseProxy::item(unsigned int     index) const
  +{
  +     return m_xresultTreeFrag.item(index);
  +}
  +
  +
  +
  +unsigned int
  +XResultTreeFrag::NodeRefListBaseProxy::getLength() const
  +{
  +     return m_xresultTreeFrag.getLength();
  +}
  +
  +
  +
  +unsigned int
  +XResultTreeFrag::NodeRefListBaseProxy::indexOf(const XalanNode*      
theNode) const
  +{
  +     return m_xresultTreeFrag.indexOf(theNode);
   }
  
  
  
  1.16      +38 -10    xml-xalan/c/src/XPath/XResultTreeFrag.hpp
  
  Index: XResultTreeFrag.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XResultTreeFrag.hpp,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- XResultTreeFrag.hpp       2000/12/04 20:46:17     1.15
  +++ XResultTreeFrag.hpp       2000/12/05 19:12:35     1.16
  @@ -86,10 +86,10 @@
   
   class ResultTreeFragBase;
   class XPathSupport;
  +class XResultTreeFrag;
   
   
  -
  -class XALAN_XPATH_EXPORT XResultTreeFrag : public XObject, private 
NodeRefListBase
  +class XALAN_XPATH_EXPORT XResultTreeFrag : public XObject
   {
   public:
   
  @@ -148,25 +148,53 @@
   
        virtual void
        ProcessXObjectTypeCallback(XObjectTypeCallback&         
theCallbackObject) const;
  -
  -private:
  -
  -     // These methods are inherited from NodeRefListBase...
   
  -     virtual XalanNode*
  +     // New member functions for node list compatibility...
  +     XalanNode*
        item(unsigned int       index) const;
   
  -     virtual unsigned int
  +     unsigned int
        getLength() const;
   
  -     virtual unsigned int
  +     unsigned int
        indexOf(const XalanNode*        theNode) const;
  +
  +private:
  +
  +     class  NodeRefListBaseProxy : public NodeRefListBase
  +     {
  +     public:
  +
  +             NodeRefListBaseProxy(const XResultTreeFrag&             
theXResultTreeFrag);
   
  -     XalanAutoPtr<ResultTreeFragBase>        m_value;
  +             virtual
  +             ~NodeRefListBaseProxy();
   
  +             virtual XalanNode*
  +             item(unsigned int       index) const;
  +
  +             virtual unsigned int
  +             getLength() const;
  +
  +             virtual unsigned int
  +             indexOf(const XalanNode*        theNode) const;
  +
  +     private:
  +
  +             // Not implemented...
  +             NodeRefListBaseProxy(const NodeRefListBaseProxy&);
  +
  +             const XResultTreeFrag&  m_xresultTreeFrag;              
  +     };
  +
  +     // Data members...
  +     XalanAutoPtr<ResultTreeFragBase>        m_value;        
  +
        mutable XalanDOMString                          m_cachedStringValue;
   
        mutable double                                          
m_cachedNumberValue;
  +
  +     const NodeRefListBaseProxy                      m_nodeRefListBaseProxy;
   };
   
   
  
  
  

Reply via email to