You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by db...@locus.apache.org on 2000/12/21 05:27:58 UTC
cvs commit: xml-xalan/c/src/XPath XString.cpp XString.hpp
dbertoni 00/12/20 20:27:57
Modified: c/src/XPath XString.cpp XString.hpp
Log:
Moved code into new base class.
Revision Changes Path
1.15 +9 -110 xml-xalan/c/src/XPath/XString.cpp
Index: XString.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XString.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- XString.cpp 2000/11/20 20:04:31 1.14
+++ XString.cpp 2000/12/21 04:27:57 1.15
@@ -59,36 +59,21 @@
-#include <XalanDOM/XalanText.hpp>
+//#include <PlatformSupport/DOMStringHelper.hpp>
-#include <PlatformSupport/DOMStringHelper.hpp>
-#include <PlatformSupport/DoubleSupport.hpp>
-
-
-
-#include "ResultTreeFrag.hpp"
-#include "XObjectTypeCallback.hpp"
-#include "XPathExecutionContext.hpp"
-
-
-
XString::XString(const XalanDOMString& val) :
- XObject(eTypeString),
- m_value(val),
- m_cachedNumberValue(0.0),
- m_resultTreeFrag(0)
+ XStringBase(),
+ m_value(val)
{
}
XString::XString(const XalanDOMChar* val) :
- XObject(eTypeString),
- m_value(val),
- m_cachedNumberValue(0.0),
- m_resultTreeFrag(0)
+ XStringBase(),
+ m_value(val)
{
}
@@ -97,22 +82,16 @@
XString::XString(
const XalanDOMChar* val,
unsigned int len) :
- XObject(eTypeString),
- m_value(val, len),
- m_cachedNumberValue(0.0),
- m_resultTreeFrag(0)
+ XStringBase(),
+ m_value(val, len)
{
}
XString::XString(const XString& source) :
- XObject(source),
- m_value(source.m_value),
- m_cachedNumberValue(source.m_cachedNumberValue),
- m_resultTreeFrag(source.m_resultTreeFrag.get() == 0 ?
- 0 :
- source.m_resultTreeFrag->clone(true))
+ XStringBase(source),
+ m_value(source.m_value)
{
}
@@ -136,88 +115,8 @@
-XalanDOMString
-XString::getTypeString() const
-{
- return XALAN_STATIC_UCODE_STRING("#STRING");
-}
-
-
-
-double
-XString::num() const
-{
- if (m_cachedNumberValue == 0.0)
- {
-#if defined(XALAN_NO_MUTABLE)
- ((XString*)this)->m_cachedNumberValue = DoubleSupport::toDouble(m_value);
-#else
- m_cachedNumberValue = DoubleSupport::toDouble(m_value);
-#endif
- }
-
- return m_cachedNumberValue;
-}
-
-
-
-bool
-XString::boolean() const
-{
- return length(m_value) > 0 ? true : false;
-}
-
-
-
const XalanDOMString&
XString::str() const
{
return m_value;
-}
-
-
-
-const ResultTreeFragBase&
-XString::rtree(XPathExecutionContext& executionContext) const
-{
- if (m_resultTreeFrag.get() == 0)
- {
- XalanDocument* const theFactory = executionContext.getDOMFactory();
- assert(theFactory != 0);
-
- ResultTreeFrag* const theFrag =
- new ResultTreeFrag(*theFactory);
-
- XalanNode* const textNode =
- theFactory->createTextNode(str());
- assert(textNode != 0);
-
- theFrag->appendChild(textNode);
-
-#if defined(XALAN_NO_MUTABLE)
- ((XString*)this)->m_resultTreeFrag.reset(theFrag);
-#else
- m_resultTreeFrag.reset(theFrag);
-#endif
- }
-
- return *m_resultTreeFrag.get();
-}
-
-
-
-void
-XString::ProcessXObjectTypeCallback(XObjectTypeCallback& theCallbackObject)
-{
- theCallbackObject.String(*this,
- str());
-}
-
-
-
-void
-XString::ProcessXObjectTypeCallback(XObjectTypeCallback& theCallbackObject) const
-{
- theCallbackObject.String(*this,
- str());
}
1.15 +3 -45 xml-xalan/c/src/XPath/XString.hpp
Index: XString.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XString.hpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- XString.hpp 2000/11/20 20:04:32 1.14
+++ XString.hpp 2000/12/21 04:27:57 1.15
@@ -64,38 +64,18 @@
-#include <XalanDOM/XalanDOMString.hpp>
-
-
-
-#if defined(XALAN_AUTO_PTR_REQUIRES_DEFINITION)
-#include <XPath/ResultTreeFragBase.hpp>
-#endif
-
-
-
-#include <Include/XalanAutoPtr.hpp>
-
-
-
// Base class header file.
-#include <XPath/XObject.hpp>
-
+#include <XPath/XStringBase.hpp>
-class ResultTreeFragBase;
-class XPathEnvSupport;
-
-
-class XALAN_XPATH_EXPORT XString : public XObject
+class XALAN_XPATH_EXPORT XString : public XStringBase
{
public:
/**
* Construct an XString object from a string.
*
- * @param envSupport XPath environment support class instance
* @param value source string
*/
XString(const XalanDOMString& val);
@@ -121,34 +101,12 @@
#endif
clone(void* theAddress = 0) const;
- virtual XalanDOMString
- getTypeString() const;
-
- virtual double
- num() const;
-
- virtual bool
- boolean() const;
-
virtual const XalanDOMString&
str() const;
- virtual const ResultTreeFragBase&
- rtree(XPathExecutionContext& executionContext) const;
-
- virtual void
- ProcessXObjectTypeCallback(XObjectTypeCallback& theCallbackObject);
-
- virtual void
- ProcessXObjectTypeCallback(XObjectTypeCallback& theCallbackObject) const;
-
private:
-
- const XalanDOMString m_value;
-
- mutable double m_cachedNumberValue;
- mutable XalanAutoPtr<ResultTreeFragBase> m_resultTreeFrag;
+ const XalanDOMString m_value;
};