dbertoni    2003/10/25 17:41:04

  Modified:    c/src/xalanc/XPath FunctionID.cpp FunctionID.hpp
                        XNodeSetBase.cpp XNodeSetBase.hpp
                        XNodeSetResultTreeFragProxy.cpp
                        XNodeSetResultTreeFragProxy.hpp XObject.cpp
                        XObject.hpp XObjectResultTreeFragProxy.cpp
                        XObjectResultTreeFragProxy.hpp
                        XObjectResultTreeFragProxyBase.cpp
                        XObjectResultTreeFragProxyBase.hpp
                        XObjectTypeCallback.hpp XPathExecutionContext.hpp
                        XStringBase.cpp XStringBase.hpp
  Added:       c/src/xalanc/XPath
                        XalanDocumentFragmentNodeRefListBaseProxy.cpp
                        XalanDocumentFragmentNodeRefListBaseProxy.hpp
  Removed:     c/src/xalanc/XPath ResultTreeFragBase.cpp
                        ResultTreeFragBase.hpp
  Log:
  Refactored result tree fragments to use XalanDocumentFragment instead of 
ResultTreeFragBase.  This is because the node-set() extension exposes some 
awkward problems with the implementation.  This also simplifies things, so 
although it changes our XObject interface, in the end, it's much cleaner.  
Fixes Bugzilla 23778.
  
  Revision  Changes    Path
  1.3       +3 -3      xml-xalan/c/src/xalanc/XPath/FunctionID.cpp
  
  Index: FunctionID.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XPath/FunctionID.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- FunctionID.cpp    19 Sep 2003 21:05:26 -0000      1.2
  +++ FunctionID.cpp    26 Oct 2003 00:41:04 -0000      1.3
  @@ -236,8 +236,8 @@
   
   void
   FunctionID::FunctionIDXObjectTypeCallback::ResultTreeFragment(
  -                     const XObject&                          theXObject,
  -                     const ResultTreeFragBase&       /* theValue */)
  +                     const XObject&                                  
theXObject,
  +                     const XalanDocumentFragment&    /* theValue */)
   {
        m_resultString = theXObject.str();
   }
  @@ -247,7 +247,7 @@
   void
   FunctionID::FunctionIDXObjectTypeCallback::ResultTreeFragment(
                        const XObject&                  theXObject,
  -                     ResultTreeFragBase&             /* theValue */)
  +                     XalanDocumentFragment&  /* theValue */)
   {
        m_resultString = theXObject.str();
   }
  
  
  
  1.2       +3 -3      xml-xalan/c/src/xalanc/XPath/FunctionID.hpp
  
  Index: FunctionID.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XPath/FunctionID.hpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FunctionID.hpp    29 Jun 2003 03:58:00 -0000      1.1
  +++ FunctionID.hpp    26 Oct 2003 00:41:04 -0000      1.2
  @@ -165,13 +165,13 @@
   
                virtual void
                ResultTreeFragment(
  -                     const XObject&                          theXObject,
  -                     const ResultTreeFragBase&       /* theValue */);
  +                     const XObject&                                  
theXObject,
  +                     const XalanDocumentFragment&    /* theValue */);
   
                virtual void
                ResultTreeFragment(
                        const XObject&                  theXObject,
  -                     ResultTreeFragBase&             /* theValue */);
  +                     XalanDocumentFragment&  /* theValue */);
   
                virtual void
                NodeSet(
  
  
  
  1.3       +1 -1      xml-xalan/c/src/xalanc/XPath/XNodeSetBase.cpp
  
  Index: XNodeSetBase.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XPath/XNodeSetBase.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XNodeSetBase.cpp  19 Sep 2003 21:05:26 -0000      1.2
  +++ XNodeSetBase.cpp  26 Oct 2003 00:41:04 -0000      1.3
  @@ -232,7 +232,7 @@
   
   
   
  -const ResultTreeFragBase&
  +const XalanDocumentFragment&
   XNodeSetBase::rtree() const
   {
        return m_proxy;
  
  
  
  1.3       +1 -1      xml-xalan/c/src/xalanc/XPath/XNodeSetBase.hpp
  
  Index: XNodeSetBase.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XPath/XNodeSetBase.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XNodeSetBase.hpp  19 Sep 2003 21:05:26 -0000      1.2
  +++ XNodeSetBase.hpp  26 Oct 2003 00:41:04 -0000      1.3
  @@ -121,7 +121,7 @@
        virtual double
        stringLength() const;
   
  -     virtual const ResultTreeFragBase&
  +     virtual const XalanDocumentFragment&
        rtree() const;
   
        virtual const NodeRefListBase&
  
  
  
  1.3       +3 -23     
xml-xalan/c/src/xalanc/XPath/XNodeSetResultTreeFragProxy.cpp
  
  Index: XNodeSetResultTreeFragProxy.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XPath/XNodeSetResultTreeFragProxy.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XNodeSetResultTreeFragProxy.cpp   19 Sep 2003 21:05:26 -0000      1.2
  +++ XNodeSetResultTreeFragProxy.cpp   26 Oct 2003 00:41:04 -0000      1.3
  @@ -121,41 +121,21 @@
   bool
   XNodeSetResultTreeFragProxy::hasChildNodes() const
   {
  -     return getLength() > 0 ? true : false;
  +     return m_value.getLength() > 0 ? true : false;
   }
   
   
   
   #if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
  -ResultTreeFragBase*
  +XalanDocumentFragment*
   #else
   XNodeSetResultTreeFragProxy*
   #endif
   XNodeSetResultTreeFragProxy::clone(bool      /* deep */) const
   {
  -     assert(false);
  +     throw XalanDOMException(XalanDOMException::NOT_SUPPORTED_ERR);
   
        return 0;
  -}
  -
  -
  -
  -XalanNode*
  -XNodeSetResultTreeFragProxy::item(unsigned int       index) const
  -{
  -     assert(index < getLength());
  -
  -     return m_value.nodeset().item(index);
  -}
  -
  -
  -
  -unsigned int
  -XNodeSetResultTreeFragProxy::getLength() const
  -{
  -     assert(unsigned(m_value.getLength()) == m_value.getLength());
  -
  -     return unsigned(m_value.getLength());
   }
   
   
  
  
  
  1.3       +1 -9      
xml-xalan/c/src/xalanc/XPath/XNodeSetResultTreeFragProxy.hpp
  
  Index: XNodeSetResultTreeFragProxy.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XPath/XNodeSetResultTreeFragProxy.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XNodeSetResultTreeFragProxy.hpp   19 Sep 2003 21:05:26 -0000      1.2
  +++ XNodeSetResultTreeFragProxy.hpp   26 Oct 2003 00:41:04 -0000      1.3
  @@ -104,7 +104,7 @@
        hasChildNodes() const;
   
   #if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
  -     virtual ResultTreeFragBase*
  +     virtual XalanDocumentFragment*
   #else
        virtual XNodeSetResultTreeFragProxy*
   #endif
  @@ -121,14 +121,6 @@
        bool
        operator==(const XNodeSetResultTreeFragProxy&   theRHS);
   
  -
  -     // These methods are inherited from XalanNodeList...
  -
  -     virtual XalanNode*
  -     item(unsigned int       index) const;
  -
  -     virtual unsigned int
  -     getLength() const;
   
        // Data members...
        const XNodeSetBase&             m_value;
  
  
  
  1.3       +3 -3      xml-xalan/c/src/xalanc/XPath/XObject.cpp
  
  Index: XObject.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XPath/XObject.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XObject.cpp       19 Sep 2003 21:05:26 -0000      1.2
  +++ XObject.cpp       26 Oct 2003 00:41:04 -0000      1.3
  @@ -243,16 +243,16 @@
   
   static int foo = 0;
   
  -const ResultTreeFragBase&
  +const XalanDocumentFragment&
   XObject::rtree() const
   {
        throw XObjectInvalidConversionException(getTypeString(), 
TranscodeFromLocalCodePage("result tree fragment"));
   
        // This is just a dummy value to satisfy the compiler.
   #if defined(XALAN_OLD_STYLE_CASTS)
  -     return (const ResultTreeFragBase&)foo;
  +     return (const XalanDocumentFragment&)foo;
   #else
  -     return reinterpret_cast<const ResultTreeFragBase&>(foo);
  +     return reinterpret_cast<const XalanDocumentFragment&>(foo);
   #endif
   }
   
  
  
  
  1.3       +2 -2      xml-xalan/c/src/xalanc/XPath/XObject.hpp
  
  Index: XObject.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XPath/XObject.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XObject.hpp       19 Sep 2003 21:05:26 -0000      1.2
  +++ XObject.hpp       26 Oct 2003 00:41:04 -0000      1.3
  @@ -89,7 +89,7 @@
   
   class MutableNodeRefList;
   class NodeRefListBase;
  -class ResultTreeFragBase;
  +class XalanDocumentFragment;
   class XObjectFactory;
   class XObjectTypeCallback;
   class XPathExecutionContext;
  @@ -225,7 +225,7 @@
         *
         * @return result tree fragment
         */
  -     virtual const ResultTreeFragBase&
  +     virtual const XalanDocumentFragment&
        rtree() const;
   
        /**
  
  
  
  1.3       +2 -31     
xml-xalan/c/src/xalanc/XPath/XObjectResultTreeFragProxy.cpp
  
  Index: XObjectResultTreeFragProxy.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XPath/XObjectResultTreeFragProxy.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XObjectResultTreeFragProxy.cpp    19 Sep 2003 21:05:26 -0000      1.2
  +++ XObjectResultTreeFragProxy.cpp    26 Oct 2003 00:41:04 -0000      1.3
  @@ -130,44 +130,15 @@
   
   
   #if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
  -ResultTreeFragBase*
  +XalanDocumentFragment*
   #else
   XObjectResultTreeFragProxy*
   #endif
   XObjectResultTreeFragProxy::clone(bool       /* deep */) const
   {
  -     assert(false);
  +     throw XalanDOMException(XalanDOMException::NOT_SUPPORTED_ERR);
   
        return 0;
  -}
  -
  -
  -
  -XalanNode*
  -XObjectResultTreeFragProxy::item(unsigned int        index) const
  -{
  -     if (index == 0)
  -     {
  -#if defined(XALAN_NO_MUTABLE)
  -             return (XalanNode*)&m_proxy;
  -#else
  -             return &m_proxy;
  -#endif
  -     }
  -     else
  -     {
  -             assert(false);
  -
  -             return 0;
  -     }
  -}
  -
  -
  -
  -unsigned int
  -XObjectResultTreeFragProxy::getLength() const
  -{
  -     return 1;
   }
   
   
  
  
  
  1.3       +3 -11     
xml-xalan/c/src/xalanc/XPath/XObjectResultTreeFragProxy.hpp
  
  Index: XObjectResultTreeFragProxy.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XPath/XObjectResultTreeFragProxy.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XObjectResultTreeFragProxy.hpp    19 Sep 2003 21:05:26 -0000      1.2
  +++ XObjectResultTreeFragProxy.hpp    26 Oct 2003 00:41:04 -0000      1.3
  @@ -83,7 +83,8 @@
        virtual
        ~XObjectResultTreeFragProxy();
   
  -     // These interfaces are inherited from ResultTreeFragBase...
  +
  +     // These interfaces are inherited from XalanDocumentFragment...
   
        virtual XalanNode*
        getFirstChild() const;
  @@ -102,7 +103,7 @@
        hasChildNodes() const;
   
   #if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
  -     virtual ResultTreeFragBase*
  +     virtual XalanDocumentFragment*
   #else
        virtual XObjectResultTreeFragProxy*
   #endif
  @@ -118,15 +119,6 @@
   
        bool
        operator==(const XObjectResultTreeFragProxy&    theRHS);
  -
  -
  -     // These methods are inherited from XalanNodeList...
  -
  -     virtual XalanNode*
  -     item(unsigned int       index) const;
  -
  -     virtual unsigned int
  -     getLength() const;
   
   
        // Data members...
  
  
  
  1.4       +5 -4      
xml-xalan/c/src/xalanc/XPath/XObjectResultTreeFragProxyBase.cpp
  
  Index: XObjectResultTreeFragProxyBase.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XPath/XObjectResultTreeFragProxyBase.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XObjectResultTreeFragProxyBase.cpp        15 Oct 2003 00:54:59 -0000      
1.3
  +++ XObjectResultTreeFragProxyBase.cpp        26 Oct 2003 00:41:04 -0000      
1.4
  @@ -77,8 +77,7 @@
   
   
   XObjectResultTreeFragProxyBase::XObjectResultTreeFragProxyBase() :
  -     ResultTreeFragBase(),
  -     XalanNodeList()
  +     XalanDocumentFragment()
   {
   }
   
  @@ -131,7 +130,9 @@
   const XalanNodeList*
   XObjectResultTreeFragProxyBase::getChildNodes() const
   {
  -     return this;
  +     throw XalanDOMException(XalanDOMException::NOT_SUPPORTED_ERR);
  +
  +     return 0;
   }
   
   
  @@ -304,7 +305,7 @@
   
   
   #if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
  -ResultTreeFragBase*
  +XalanDocumentFragment*
   #else
   XObjectResultTreeFragProxyBase*
   #endif
  
  
  
  1.4       +4 -13     
xml-xalan/c/src/xalanc/XPath/XObjectResultTreeFragProxyBase.hpp
  
  Index: XObjectResultTreeFragProxyBase.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XPath/XObjectResultTreeFragProxyBase.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XObjectResultTreeFragProxyBase.hpp        15 Oct 2003 00:54:59 -0000      
1.3
  +++ XObjectResultTreeFragProxyBase.hpp        26 Oct 2003 00:41:04 -0000      
1.4
  @@ -65,10 +65,10 @@
   
   
   #include <xalanc/XalanDOM/XalanNodeList.hpp>
  +#include <xalanc/XalanDOM/XalanDocumentFragment.hpp>
   
   
   
  -#include <xalanc/XPath/ResultTreeFragBase.hpp>
   #include <xalanc/XPath/XObjectResultTreeFragProxyText.hpp>
   
   
  @@ -78,7 +78,7 @@
   
   
   
  -class XALAN_XPATH_EXPORT XObjectResultTreeFragProxyBase : public 
ResultTreeFragBase, private XalanNodeList
  +class XALAN_XPATH_EXPORT XObjectResultTreeFragProxyBase : public 
XalanDocumentFragment
   {
   public:
   
  @@ -88,7 +88,7 @@
        ~XObjectResultTreeFragProxyBase();
   
   
  -     // These interfaces are inherited from ResultTreeFragBase...
  +     // These interfaces are inherited from XalanDocumentFragment...
   
        virtual const XalanDOMString&
        getNodeName() const;
  @@ -179,7 +179,7 @@
        getIndex() const;
   
   #if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
  -     virtual ResultTreeFragBase*
  +     virtual XalanDocumentFragment*
   #else
        virtual XObjectResultTreeFragProxyBase*
   #endif
  @@ -197,15 +197,6 @@
   
        bool
        operator==(const XObjectResultTreeFragProxyBase&        theRHS);
  -
  -
  -     // These methods are inherited from XalanNodeList...
  -
  -     virtual XalanNode*
  -     item(unsigned int       index) const = 0;
  -
  -     virtual unsigned int
  -     getLength() const = 0;
   
   
        // Data members...
  
  
  
  1.3       +5 -5      xml-xalan/c/src/xalanc/XPath/XObjectTypeCallback.hpp
  
  Index: XObjectTypeCallback.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XPath/XObjectTypeCallback.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XObjectTypeCallback.hpp   19 Sep 2003 21:05:26 -0000      1.2
  +++ XObjectTypeCallback.hpp   26 Oct 2003 00:41:04 -0000      1.3
  @@ -76,7 +76,7 @@
   
   class MutableNodeRefList;
   class NodeRefListBase;
  -class ResultTreeFragBase;
  +class XalanDocumentFragment;
   class XObject;
   
   
  @@ -136,7 +136,7 @@
         */
        virtual void
        ResultTreeFragment(const XObject&                               
theXObject,
  -                                        const ResultTreeFragBase&    
theValue) = 0;
  +                                        const XalanDocumentFragment& 
theValue) = 0;
   
        /**
         * Call back the XObject with a result tree fragment value.
  @@ -145,8 +145,8 @@
         * @param theValue
         */
        virtual void
  -     ResultTreeFragment(const XObject&               theXObject,
  -                                        ResultTreeFragBase&  theValue) = 0;
  +     ResultTreeFragment(const XObject&                       theXObject,
  +                                        XalanDocumentFragment&       
theValue) = 0;
   
        /**
         * Call back the XObject with a node set value.
  @@ -165,7 +165,7 @@
         * @param theValue
         */
        virtual void
  -     Unknown(const XObject&          theObject,
  +     Unknown(const XObject&                  theObject,
                        const XalanDOMString&   theName) = 0;
   
        /**
  
  
  
  1.4       +0 -1      xml-xalan/c/src/xalanc/XPath/XPathExecutionContext.hpp
  
  Index: XPathExecutionContext.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XPath/XPathExecutionContext.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XPathExecutionContext.hpp 19 Sep 2003 21:05:26 -0000      1.3
  +++ XPathExecutionContext.hpp 26 Oct 2003 00:41:04 -0000      1.4
  @@ -81,7 +81,6 @@
   
   
   #include <xalanc/XPath/MutableNodeRefList.hpp>
  -#include <xalanc/XPath/ResultTreeFragBase.hpp>
   
   
   
  
  
  
  1.3       +1 -1      xml-xalan/c/src/xalanc/XPath/XStringBase.cpp
  
  Index: XStringBase.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XPath/XStringBase.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XStringBase.cpp   19 Sep 2003 21:05:26 -0000      1.2
  +++ XStringBase.cpp   26 Oct 2003 00:41:04 -0000      1.3
  @@ -135,7 +135,7 @@
   
   
   
  -const ResultTreeFragBase&
  +const XalanDocumentFragment&
   XStringBase::rtree() const
   {
        return m_resultTreeFrag;
  
  
  
  1.3       +1 -1      xml-xalan/c/src/xalanc/XPath/XStringBase.hpp
  
  Index: XStringBase.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XPath/XStringBase.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XStringBase.hpp   17 Jul 2003 17:57:25 -0000      1.2
  +++ XStringBase.hpp   26 Oct 2003 00:41:04 -0000      1.3
  @@ -129,7 +129,7 @@
        virtual double
        stringLength() const = 0;
   
  -     virtual const ResultTreeFragBase&
  +     virtual const XalanDocumentFragment&
        rtree() const;
   
        virtual void
  
  
  
  1.1                  
xml-xalan/c/src/xalanc/XPath/XalanDocumentFragmentNodeRefListBaseProxy.cpp
  
  Index: XalanDocumentFragmentNodeRefListBaseProxy.cpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999-2003 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Xalan" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation and was
   * originally based on software copyright (c) 1999, International
   * Business Machines, Inc., http://www.ibm.com.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  
  #include "XalanDocumentFragmentNodeRefListBaseProxy.hpp"
  
  
  
  #include <cassert>
  
  
  
  #include <xalanc/XalanDOM/XalanDocumentFragment.hpp>
  
  
  
  XALAN_CPP_NAMESPACE_BEGIN
  
  
  
  
XalanDocumentFragmentNodeRefListBaseProxy::XalanDocumentFragmentNodeRefListBaseProxy(const
 XalanDocumentFragment&     value) :
        NodeRefListBase(),
        m_value(value)
  {
  }
  
  
  
  
XalanDocumentFragmentNodeRefListBaseProxy::XalanDocumentFragmentNodeRefListBaseProxy(const
 XalanDocumentFragmentNodeRefListBaseProxy& source) :
        NodeRefListBase(),
        m_value(source.m_value)
  {
  }
  
  
  
  
XalanDocumentFragmentNodeRefListBaseProxy::~XalanDocumentFragmentNodeRefListBaseProxy()
  {
  }
  
  
  
  XalanNode*
  #if defined(NDEBUG)
  XalanDocumentFragmentNodeRefListBaseProxy::item(size_type) const
  #else
  XalanDocumentFragmentNodeRefListBaseProxy::item(size_type     index) const
  #endif
  {
        assert(index == 0);
  
  #if defined(XALAN_OLD_STYLE_CASTS)
        return (XalanDocumentFragment*)&m_value;
  #else
        return const_cast<XalanDocumentFragment*>(&m_value);
  #endif
  }
  
  
  
  XalanDocumentFragmentNodeRefListBaseProxy::size_type
  XalanDocumentFragmentNodeRefListBaseProxy::getLength() const
  {
        return 1;
  }
  
  
  
  XalanDocumentFragmentNodeRefListBaseProxy::size_type
  XalanDocumentFragmentNodeRefListBaseProxy::indexOf(const XalanNode*           
theNode) const
  {
        return theNode == &m_value ? 0 : npos;
  }
  
  
  
  XALAN_CPP_NAMESPACE_END
  
  
  
  1.1                  
xml-xalan/c/src/xalanc/XPath/XalanDocumentFragmentNodeRefListBaseProxy.hpp
  
  Index: XalanDocumentFragmentNodeRefListBaseProxy.hpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999-2003 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Xalan" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation and was
   * originally based on software copyright (c) 1999, International
   * Business Machines, Inc., http://www.ibm.com.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  #if 
!defined(XALANDOCUMENTFRAGMENTNODEREFLISTBASEPROXY_HEADER_GUARD_1357924680)
  #define XALANDOCUMENTFRAGMENTNODEREFLISTBASEPROXY_HEADER_GUARD_1357924680
  
  
  
  // Base header file.  Must be first.
  #include <xalanc/XPath/XPathDefinitions.hpp>
  
  
  
  // Base class header file.
  #include <xalanc/XPath/NodeRefListBase.hpp>
  
  
  
  XALAN_CPP_NAMESPACE_BEGIN
  
  
  
  class XalanDocumentFragment;
  
  
  
  class XALAN_XPATH_EXPORT XalanDocumentFragmentNodeRefListBaseProxy : public 
NodeRefListBase
  {
  public:
  
  
        /**
         * Construct an instance from a document fragment
         * 
         * @param value source document fragment.
         */
        XalanDocumentFragmentNodeRefListBaseProxy(const XalanDocumentFragment&  
value);
  
        /**
         * Copy constructor
         * 
         * @param source source instance
         */
        XalanDocumentFragmentNodeRefListBaseProxy(const 
XalanDocumentFragmentNodeRefListBaseProxy&      source);
  
        virtual
        ~XalanDocumentFragmentNodeRefListBaseProxy();
  
  
        // These methods are inherited from NodeRefListBase...
        XalanNode*
        item(size_type  index) const;
  
        size_type
        getLength() const;
  
        size_type
        indexOf(const XalanNode*        theNode) const;
  
  private:
  
        // Data members...
        const XalanDocumentFragment&    m_value;        
  };
  
  
  
  XALAN_CPP_NAMESPACE_END
  
  
  
  #endif        // 
XALANDOCUMENTFRAGMENTNODEREFLISTBASEPROXY_HEADER_GUARD_1357924680
  
  
  

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

Reply via email to