18#if !defined(XOBJECT_HEADER_GUARD_1357924680)
19#define XOBJECT_HEADER_GUARD_1357924680
52class MutableNodeRefList;
54class XalanDocumentFragment;
56class XObjectTypeCallback;
115 MemoryManager& theMemoryManager);
387 return theString.
length() == 0 ? false :
true;
400 return theNodeList.
getLength() == 0 ? false :
true;
540 assert(theNodeList.
item(0) != 0);
564 assert(theNodeList.
item(0) != 0);
626 assert(theNodeList.
item(0) != 0);
628 string(*theNodeList.
item(0), theExecutionContext, theString);
650 assert(theNodeList.
item(0) != 0);
653 *theNodeList.
item(0),
681 (formatterListener.*function)(
695 return theBoolean ==
true ? 1.0 : 0.0;
701 MemoryManager& theManager)
733 m_factory = theFactory;
743 MemoryManager& theManager);
747 MemoryManager& theManager,
748 const Locator* theLocator);
755 virtual const XalanDOMChar*
760 static const XalanDOMChar s_type[];
768 MemoryManager& memoryManager,
778 virtual const XalanDOMChar*
783 static const XalanDOMChar s_type[];
813 MemoryManager& theManager);
823 assert(m_memoryManager != 0);
825 return *m_memoryManager;
875 mutable MemoryManager* m_memoryManager;
895 m_xobjectPtr(theXObject)
901 m_xobjectPtr(theSource.m_xobjectPtr)
909 if (m_xobjectPtr != theRHS.m_xobjectPtr)
913 m_xobjectPtr = theRHS.m_xobjectPtr;
929 XObject*
const xobjectPtr = m_xobjectPtr;
939 return m_xobjectPtr == 0 ? true :
false;
945 return *m_xobjectPtr;
951 return *m_xobjectPtr;
990 return theLHS.m_xobjectPtr == theRHS.m_xobjectPtr;
1000 return !(theLHS == theRHS);
1010 return theLHS.m_xobjectPtr < theRHS.m_xobjectPtr;
#define XALAN_CPP_NAMESPACE
#define XALAN_XPATH_EXPORT
static void getNodeData(const XalanNode &node, XalanDOMString &data)
Retrieves data for node.
static void NumberToCharacters(double theValue, FormatterListener &formatterListener, MemberFunctionPtr function)
static bool equal(double theLHS, double theRHS)
Compare two double values, taking into account the fact that we must support IEEE 754.
static double toDouble(const XalanDOMString &theString, MemoryManager &theManager)
Convert a string to a double value.
static bool isNaN(double theNumber)
Determine if target is not a number.
Local implementation of NodeRefList.
virtual size_type getLength() const =0
Determine the number of nodes in the list.
virtual XalanNode * item(size_type index) const =0
Returns the indexth item in the collection.
Class to hold XObjectPtr return types.
XObjectPtr & operator=(const XObjectPtr &theRHS)
const XObject * operator->() const
const XObject & operator*() const
XObjectPtr(const XObjectPtr &theSource)
XObjectPtr(XObject *theXObject=0)
Create an XObjectPtr.
friend bool operator<(const XObjectPtr &, const XObjectPtr &)
const XObject * get() const
friend bool operator==(const XObjectPtr &, const XObjectPtr &)
The purpose of this class is to provide a way to get the "preferred" or closest matching type for XOb...
virtual const XalanDOMChar * getType() const
Retrieve type of exception.
XObjectException(const XObjectException &other)
XObjectException(const XalanDOMString &theMessage, MemoryManager &theManager, const Locator *theLocator)
virtual ~XObjectException()
XObjectException(const XalanDOMString &theMessage, MemoryManager &theManager)
virtual ~XObjectInvalidConversionException()
virtual const XalanDOMChar * getType() const
Retrieve type of exception.
XObjectInvalidConversionException(const XObjectInvalidConversionException &other)
XObjectInvalidConversionException(MemoryManager &memoryManager, const XalanDOMString &fromType, const XalanDOMString &toType, XalanDOMString &buffer)
Class to hold XPath return types.
static void string(const XalanNode &theNode, FormatterListener &formatterListener, MemberFunctionPtr function)
Static conversion function.
static bool boolean(double theNumber)
Static conversion function.
static void initialize(MemoryManager &theMemoryManager)
Perform static initialization.
bool greaterThan(const XObject &theRHS, XPathExecutionContext &executionContext) const
Tell if one object is greater than the other.
static double number(XPathExecutionContext &executionContext, const NodeRefListBase &theNodeList)
Static conversion function.
bool equals(const XObject &theRHS, XPathExecutionContext &executionContext) const
Tell if two objects are functionally equal.
virtual void str(XPathExecutionContext &executionContext, XalanDOMString &theBuffer) const =0
Append the string value directly a string.
static bool boolean(const NodeRefListBase &theNodeList)
Static conversion function.
virtual void str(FormatterListener &formatterListener, MemberFunctionPtr function) const =0
Send the string value to a FormatterListener instance.
eObjectType
Enumeration of possible object types.
@ eTypeXTokenNumberAdapter
@ eTypeXTokenStringAdapter
static void string(const XalanNode &theNode, XalanDOMString &theString)
Static conversion function.
virtual const XalanDOMString & str(XPathExecutionContext &executionContext) const =0
Cast result object to a string.
static void string(const XalanNode &theNode, XPathExecutionContext &theExecutionContext, FormatterListener &formatterListener, MemberFunctionPtr function)
Static conversion function.
static const XalanDOMString s_emptyString
static void terminate()
Perform static shut down.
void setFactory(XObjectFactory *theFactory)
virtual const NodeRefListBase & nodeset() const
Cast result object to a nodelist.
static const XalanDOMString & s_resultTreeFragmentString
eObjectType getType() const
Tell what kind of class this is.
XObject(eObjectType theObjectType, MemoryManager &theMemoryManager)
Create an XObject.
virtual void dereferenced()
static void string(double theNumber, XalanDOMString &theString)
Static conversion function.
static const XalanDOMString & s_trueString
virtual eObjectType getRealType() const
Tell what kind of class this is.
virtual const XalanDOMString & getTypeString() const =0
Given a request type, return the equivalent string.
static bool boolean(const XalanDOMString &theString)
Static conversion function.
static const XalanDOMString & s_falseString
XPathExecutionContext::GetCachedString GetCachedString
virtual void ProcessXObjectTypeCallback(XObjectTypeCallback &theCallbackObject)=0
Process a callback request for preferred type information.
bool notEquals(const XObject &theRHS, XPathExecutionContext &executionContext) const
Tell if two objects are functionally not equal.
static double number(bool theBoolean)
Static conversion function.
static const XalanDOMString & s_numberString
bool greaterThanOrEquals(const XObject &theRHS, XPathExecutionContext &executionContext) const
Tell if one object is greater than or equal the other.
friend class XObjectFactory
virtual double num(XPathExecutionContext &executionContext) const
Cast result object to a number.
static const XalanDOMString & s_stringString
static double number(const XalanDOMString &theString, MemoryManager &theManager)
MemoryManager & getMemoryManager() const
Get the MemoryManager for this instance.
virtual bool boolean(XPathExecutionContext &executionContext) const =0
Cast result object to a boolean.
static void string(const NodeRefListBase &theNodeList, XalanDOMString &theString)
Static conversion function.
static void string(const NodeRefListBase &theNodeList, FormatterListener &formatterListener, MemberFunctionPtr function)
Static conversion function.
static void string(bool theBool, FormatterListener &formatterListener, MemberFunctionPtr function)
Static conversion function.
virtual void ProcessXObjectTypeCallback(XObjectTypeCallback &theCallbackObject) const =0
Process a callback request for preferred type information.
static void string(bool theBool, XalanDOMString &theString)
Static conversion function.
virtual const XalanDOMString & str() const =0
Cast result object to a string.
static void string(const NodeRefListBase &theNodeList, XPathExecutionContext &theExecutionContext, XalanDOMString &theString)
Static conversion function.
static void string(const XalanDOMString &theString, FormatterListener &formatterListener, MemberFunctionPtr function)
Calls the supplied FormatterListener member function with the string.
virtual void str(XPathExecutionContext &executionContext, FormatterListener &formatterListener, MemberFunctionPtr function) const =0
Send the string value to a FormatterListener instance.
bool lessThanOrEquals(const XObject &theRHS, XPathExecutionContext &executionContext) const
Tell if one object is less than or equal the other.
static const XalanDOMString & s_nodesetString
static void string(const XalanNode &theNode, XPathExecutionContext &theExecutionContext, XalanDOMString &theString)
Static conversion function.
bool lessThan(const XObject &theRHS, XPathExecutionContext &executionContext) const
Tell if one object is less than the other.
static const XalanDOMString & string(bool theBool)
Static conversion function.
static void string(double theNumber, FormatterListener &formatterListener, MemberFunctionPtr function)
Static conversion function.
static const XalanDOMString & s_booleanString
void throwInvalidConversionException(const XalanDOMString &theTargetType) const
virtual double stringLength(XPathExecutionContext &executionContext) const =0
Get the length of the string value of the instance.
static double number(XPathExecutionContext &executionContext, const XalanNode &theNode)
Static conversion function.
virtual void str(XalanDOMString &theBuffer) const =0
Append the string value directly a string.
XObject(const XObject &source, MemoryManager &theManager)
Create an XObject from another XObject.
void(FormatterListener::* MemberFunctionPtr)(const XMLCh *const, const FormatterListener::size_type)
static void string(const NodeRefListBase &theNodeList, XPathExecutionContext &theExecutionContext, FormatterListener &formatterListener, MemberFunctionPtr function)
Static conversion function.
virtual void referenced()
virtual const XalanDocumentFragment & rtree() const
Cast result object to a result tree fragment.
XObject(const XObject &)
Create an XObject from another XObject.
virtual double num() const
Cast result object to a number.
const XalanDOMChar * c_str() const
XalanDOMString & append(const XalanDOMString &theSource)
XalanReferenceCountedObject()
Create a XalanReferenceCountedObject.
static void removeReference(XalanReferenceCountedObject *theInstance)
Decrement reference count.
static void addReference(XalanReferenceCountedObject *theInstance)
Increment reference count.
XalanXPathException(const XalanDOMString &theMessage, MemoryManager &theManager)
Construct an XPath exeption object.
bool operator!=(const XalanVector< Type > &theLHS, const XalanVector< Type > &theRHS)
NumberToDOMString(double theValue, XalanDOMString &theResult)
Converts a double value into a XalanDOMString.