18#if !defined(XPATHEXECUTIONCONTEXT_HEADER_GUARD_1357924680)
19#define XPATHEXECUTIONCONTEXT_HEADER_GUARD_1357924680
49namespace XERCES_CPP_NAMESPACE
60class XalanDecimalFormatSymbols;
73using xercesc::ErrorHandler;
141 m_executionContext.popCurrentNode();
157 assert(m_xobjectFactory != 0);
159 return *m_xobjectFactory;
197 m_executionContext.pushContextNodeList(
theNodeList);
202 m_executionContext.popContextNodeList();
259 const Locator*
locator)
const = 0;
282 const Locator*
locator)
const = 0;
343 assert(m_mutableNodeRefList != 0);
348 m_xpathExecutionContext(
theSource.m_xpathExecutionContext),
349 m_mutableNodeRefList(
theSource.m_mutableNodeRefList)
351 assert(m_mutableNodeRefList != 0);
364 assert(m_mutableNodeRefList != 0);
366 return *m_mutableNodeRefList;
372 return m_mutableNodeRefList;
384 assert(m_xpathExecutionContext != 0);
386 if (m_mutableNodeRefList != 0)
388 m_xpathExecutionContext->returnMutableNodeRefList(m_mutableNodeRefList);
390 m_mutableNodeRefList = 0;
397 assert(m_xpathExecutionContext != 0);
412 m_xpathExecutionContext =
theRHS.m_xpathExecutionContext;
414 m_mutableNodeRefList =
theRHS.m_mutableNodeRefList;
416 theRHS.m_mutableNodeRefList = 0;
460 m_executionContext(
theSource.m_executionContext),
470 m_executionContext->releaseCachedString(*m_string);
485 return *m_executionContext;
565 const Locator*
locator = 0) = 0;
608 m_executionContext.setPrefixResolver(m_savedResolver);
685 const Locator*
locator = 0) = 0;
704 const Locator*
locator = 0) = 0;
#define XALAN_XPATH_EXPORT
#define XALAN_CPP_NAMESPACE
Xalan-C++ namespace, including major and minor version.
Local implementation of MutableNodeRefList.
Local implementation of NodeRefList.
This class defines an interface for classes that resolve namespace prefixes to their URIs.
This class handles the creation of XObjects and manages their lifetime.
Class to hold XObjectPtr return types.
ContextNodeListPushAndPop(XPathExecutionContext &theExecutionContext, const NodeRefListBase &theNodeList)
~ContextNodeListPushAndPop()
CurrentNodePushAndPop(XPathExecutionContext &theExecutionContext, XalanNode *theNewNode)
GetCachedNodeList(XPathExecutionContext &executionContext)
MutableNodeRefList * get() const
GetCachedNodeList & operator=(GetCachedNodeList &theRHS)
GetCachedNodeList(const GetCachedNodeList &theSource)
MutableNodeRefList & operator*() const
GetCachedNodeList clone() const
MutableNodeRefList * operator->() const
GetCachedString(XPathExecutionContext &theExecutionContext)
XalanDOMString & get() const
GetCachedString(GetCachedString &theSource)
XPathExecutionContext & getExecutionContext() const
PrefixResolverSetAndRestore(XPathExecutionContext &theExecutionContext, const PrefixResolver *theOldResolver, const PrefixResolver *theNewResolver)
~PrefixResolverSetAndRestore()
PrefixResolverSetAndRestore(XPathExecutionContext &theExecutionContext, const PrefixResolver *theResolver)
virtual bool functionAvailable(const XalanQName &theQName) const =0
Determine if a function is available.
virtual void problem(eSource source, eClassification classification, const XalanDOMString &msg, const Locator *locator, const XalanNode *sourceNode)=0
Function that is called when a problem event occurs.
virtual void setSourceDocument(const XalanDOMString &theURI, XalanDocument *theDocument)=0
Associate a document with a given URI.
virtual XalanDocument * parseXML(MemoryManager &theManager, const XalanDOMString &urlString, const XalanDOMString &base, ErrorHandler *theErrorHandler=0) const =0
Provides support for XML parsing service.
virtual const XObjectPtr getVariable(const XalanQName &name, const Locator *locator=0)=0
Given a name, locate a variable in the current context, and return a pointer to the object.
XObjectFactory & getXObjectFactory() const
Retrieve the factory object for creating XObjects.
virtual XalanDOMString & getCachedString()=0
Get a cached string for temporary use.
virtual void popCurrentNode()=0
Reset the node currently being executed.
NodeRefListBase::size_type size_type
virtual void popContextNodeList()=0
Pop the node list for current context.
virtual MutableNodeRefList * createMutableNodeRefList(MemoryManager &theManager) const =0
Create a MutableNodeRefList with the appropriate context.
virtual void pushCurrentNode(XalanNode *theCurrentNode)=0
Change the node currently being executed.
virtual void formatNumber(double number, const XalanDOMString &pattern, XalanDOMString &theResult, const XalanNode *context=0, const Locator *locator=0)=0
Formats a number according to the specified pattern.
XPathExecutionContext(MemoryManager &theMemoryManager, XObjectFactory *theXObjectFactory=0)
virtual bool functionAvailable(const XalanDOMString &theName, const Locator *locator) const =0
Determine if a function is available.
GetCachedString GetAndReleaseCachedString
virtual bool elementAvailable(const XalanDOMString &theName, const Locator *locator) const =0
Determine if an external element is available by resolving a string to a QName.
virtual void problem(eSource source, eClassification classification, const XalanDOMString &msg, const XalanNode *sourceNode)=0
Function that is called when a problem event occurs.
virtual XalanNode * getCurrentNode() const =0
Retrieve the node currently being executed.
virtual void getNodeSetByKey(XalanNode *context, const XalanQName &qname, const XalanDOMString &ref, const Locator *locator, MutableNodeRefList &nodelist)=0
Given a valid element key, return the corresponding node list.
virtual XalanDocument * getSourceDocument(const XalanDOMString &theURI) const =0
Get the document associated with the given URI.
virtual size_type getContextNodeListPosition(const XalanNode &contextNode) const =0
XalanVector< XObjectPtr > XObjectArgVectorType
virtual const NodeRefListBase & getContextNodeList() const =0
Get the node list for current context.
virtual bool shouldStripSourceNode(const XalanText &node)=0
Determine if a text node should be stripped from the source tree, as if it weren't there.
virtual const XObjectPtr extFunction(const XalanDOMString &theNamespace, const XalanDOMString &functionName, XalanNode *context, const XObjectArgVectorType &argVec, const Locator *locator)=0
Handle an extension function.
virtual void getNodeSetByKey(XalanNode *context, const XalanDOMString &name, const XalanDOMString &ref, const Locator *locator, MutableNodeRefList &nodelist)=0
Given a valid element key, return the corresponding node list.
virtual void formatNumber(double number, const XalanDOMString &pattern, const XalanDOMString &dfsName, XalanDOMString &theResult, const XalanNode *context=0, const Locator *locator=0)=0
Formats a number according to the specified pattern.
virtual void pushContextNodeList(const NodeRefListBase &theList)=0
Push the node list for current context.
XObjectFactory * m_xobjectFactory
virtual const PrefixResolver * getPrefixResolver() const =0
Retrieve the resolver for namespaces.
virtual const XalanDOMString * getNamespaceForPrefix(const XalanDOMString &prefix) const =0
Retrieve the URI corresponding to a namespace prefix.
virtual bool returnMutableNodeRefList(MutableNodeRefList *theList)=0
Return a previously borrowed MutableNodeRefList instance.
virtual bool elementAvailable(const XalanQName &theQName) const =0
Determine if an external element is available.
virtual void reset()=0
Reset the instance.
virtual void setPrefixResolver(const PrefixResolver *thePrefixResolver)=0
Change the resolver for namespaces.
GetCachedNodeList BorrowReturnMutableNodeRefList
virtual size_type getContextNodeListLength() const =0
virtual const XalanDOMString & findURIFromDoc(const XalanDocument *owner) const =0
Given a DOM Document, tell what URI was used to parse it.
virtual MutableNodeRefList * borrowMutableNodeRefList()=0
Borrow a cached MutableNodeRefList instance.
virtual const XalanDOMString & getUnparsedEntityURI(const XalanDOMString &theName, const XalanDocument &theDocument) const =0
The getUnparsedEntityURI function returns the URI of the unparsed entity with the specified name in t...
virtual ~XPathExecutionContext()
virtual bool releaseCachedString(XalanDOMString &theString)=0
Return a cached string.
virtual bool isNodeAfter(const XalanNode &node1, const XalanNode &node2) const =0
Determine if a node is after another node, in document order.
Class to represent a qualified name.