createDTMIterator
public DTMIterator createDTMIterator(Object xpathCompiler,
int pos)
Create a new
DTMIterator
based on an XPath
UnionExpr.="http://www.w3.org/TR/xpath#NT-UnionExpr">UnionExpr.">
- createDTMIterator in interface DTMManager
xpathCompiler
- ??? Somehow we need to pass in a subpart of the
expression. I hate to do this with strings, since the larger expression
has already been parsed.pos
- The position in the expression.
- The newly created
DTMIterator
.
createDTMIterator
public DTMIterator createDTMIterator(String xpathString,
PrefixResolver presolver)
Create a new
DTMIterator
based on an XPath
UnionExpr.="http://www.w3.org/TR/xpath#NT-UnionExpr">UnionExpr.">
- createDTMIterator in interface DTMManager
xpathString
- Must be a valid string expressing a
presolver
- An object that can resolve prefixes to namespace URLs.
- The newly created
DTMIterator
.
createDTMIterator
public DTMIterator createDTMIterator(int node)
Create a new DTMIterator
that holds exactly one node.
- createDTMIterator in interface DTMManager
node
- The node handle that the DTMIterator will iterate to.
- The newly created
DTMIterator
.
createDTMIterator
public DTMIterator createDTMIterator(int whatToShow,
DTMFilter filter,
boolean entityReferenceExpansion)
Create a new DTMIterator
based only on a whatToShow and
a DTMFilter. The traversal semantics are defined as the descendant
access.
- createDTMIterator in interface DTMManager
whatToShow
- This flag specifies which node types may appear in
the logical view of the tree presented by the iterator. See the
description of NodeFilter
for the set of possible
SHOW_
values.These flags can be combined using
OR
.filter
- The NodeFilter
to be used with this
TreeWalker
, or null
to indicate no filter.entityReferenceExpansion
- The value of this flag determines
whether entity reference nodes are expanded.
- The newly created
NodeIterator
.
createDocumentFragment
public DTM createDocumentFragment()
Creates an empty DocumentFragment
object.
- createDocumentFragment in interface DTMManager
- A new
DocumentFragment handle
.
getAxesIteratorStackStacks
public Stack getAxesIteratorStackStacks()
getContextNode
public final int getContextNode()
Get the current context node.
- The current context node.
getContextNodeList
public final DTMIterator getContextNodeList()
Get the current context node list.
- the current node list,
also refered to here as a context node list.
getContextNodeListsStack
public Stack getContextNodeListsStack()
getContextNodes
public final DTMIterator getContextNodes()
Get the current context node list.
- An iterator for the current context list, as
defined in XSLT.
getCurrentExpressionNode
public final int getCurrentExpressionNode()
Get the current node that is the expression's context (i.e. for current() support).
- The current sub-expression node.
getCurrentExpressionNodeStack
public IntStack getCurrentExpressionNodeStack()
getCurrentNode
public final int getCurrentNode()
Get the current context node.
- the current node.
getCurrentNodeStack
public IntStack getCurrentNodeStack()
getDTM
public DTM getDTM(int nodeHandle)
Get an instance of a DTM that "owns" a node handle.
- getDTM in interface DTMManager
nodeHandle
- the nodeHandle.
- a non-null DTM reference.
getDTM
public DTM getDTM(Source source,
boolean unique,
DTMWSFilter wsfilter,
boolean incremental,
boolean doIndexing)
Get an instance of a DTM, loaded with the content from the
specified source. If the unique flag is true, a new instance will
always be returned. Otherwise it is up to the DTMManager to return a
new instance or an instance that it already created and may be being used
by someone else.
(I think more parameters will need to be added for error handling, and entity
resolution).
- getDTM in interface DTMManager
source
- the specification of the source object, which may be null,
in which case it is assumed that node construction will take
by some other means.unique
- true if the returned DTM must be unique, probably because it
is going to be mutated.incremental
- true if the construction should try and be incremental.doIndexing
- true if the caller considers it worth it to use
indexing schemes.
- a non-null DTM reference.
getDTMHandleFromNode
public int getDTMHandleFromNode(Node node)
Given a W3C DOM node, try and return a DTM handle.
Note: calling this may be non-optimal.
- getDTMHandleFromNode in interface DTMManager
node
- Non-null reference to a DOM node.
- a valid DTM handle.
getDTMIdentity
public int getDTMIdentity(DTM dtm)
%TBD% Doc
- getDTMIdentity in interface DTMManager
getDTMManager
public DTMManager getDTMManager()
Return the DTMManager object. Though XPathContext context extends
the DTMManager, it really is a proxy for the real DTMManager. If a
caller needs to make a lot of calls to the DTMManager, it is faster
if it gets the real one from this function.
getErrorListener
public final ErrorListener getErrorListener()
Get the ErrorListener where errors and warnings are to be reported.
- A non-null ErrorListener reference.
getExpressionContext
public ExpressionContext getExpressionContext()
The the expression context for extensions for this context.
- An object that implements the ExpressionContext.
getGlobalRTFDTM
public DTM getGlobalRTFDTM()
Get a DTM to be used as a container for a global Result Tree
Fragment. This will always be an instance of (derived from? equivalent to?)
SAX2DTM, since each RTF is constructed by temporarily redirecting our SAX
output to it. It may be a single DTM containing for multiple fragments,
if the implementation supports that.
Note: The distinction between this method and getRTFDTM() is that the latter
allocates space from the dynamic variable stack (m_rtfdtm_stack), which may
be pruned away again as the templates which defined those variables are exited.
Global variables may be bound late (see XUnresolvedVariable), and never want to
be discarded, hence we need to allocate them separately and don't actually need
a stack to track them.
- a non-null DTM reference.
getIteratorRoot
public final int getIteratorRoot()
Get the current location path iterator root.
getNamespaceContext
public final PrefixResolver getNamespaceContext()
Get the current namespace context for the xpath.
- the current prefix resolver for resolving prefixes to
namespace URLs.
getOwnerObject
public Object getOwnerObject()
Get the "owner" context of this context, which should be,
in the case of XSLT, the Transformer object. This is needed
so that XSLT functions can get the Transformer.
- The owner object passed into the constructor, or null.
getPredicatePos
public final int getPredicatePos()
getPredicateRoot
public final int getPredicateRoot()
Get the current predicate root.
getPrimaryReader
public final XMLReader getPrimaryReader()
Get primary XMLReader associated with this execution context.
- The reader of the primary source tree.
getRTFDTM
public DTM getRTFDTM()
Get a DTM to be used as a container for a dynamic Result Tree
Fragment. This will always be an instance of (derived from? equivalent to?)
SAX2DTM, since each RTF is constructed by temporarily redirecting our SAX
output to it. It may be a single DTM containing for multiple fragments,
if the implementation supports that.
- a non-null DTM reference.
getSAXLocator
public SourceLocator getSAXLocator()
Get the current locater in the stylesheet.
- The location within the stylesheet, or null if not known.
getSourceTreeManager
public final SourceTreeManager getSourceTreeManager()
Get the SourceTreeManager associated with this execution context.
- the SourceTreeManager associated with this execution context.
getSubContextList
public SubContextList getSubContextList()
Get the current axes iterator, or return null if none.
- the sub-context node list.
getURIResolver
public final URIResolver getURIResolver()
Get the URIResolver associated with this execution context.
- a URI resolver, which may be null.
getVarStack
public final VariableStack getVarStack()
Get the variable stack, which is in charge of variables and
parameters.
- the variable stack, which should not be null.
popContextNodeList
public final void popContextNodeList()
Pop the current context node list.
popCurrentExpressionNode
public final void popCurrentExpressionNode()
Pop the current node that is the expression's context
(i.e. for current() support).
popCurrentNode
public final void popCurrentNode()
Pop the current context node.
popCurrentNodeAndExpression
public final void popCurrentNodeAndExpression()
Set the current context node.
popExpressionState
public final void popExpressionState()
Pop the current context node, expression node, and prefix resolver.
popIteratorRoot
public final void popIteratorRoot()
Pop the current location path iterator root.
popNamespaceContext
public final void popNamespaceContext()
Pop the current namespace context for the xpath.
popPredicatePos
public final void popPredicatePos()
popPredicateRoot
public final void popPredicateRoot()
Pop the current predicate root.
popRTFContext
public void popRTFContext()
Pop the RTFDTM's context mark. This discards any RTFs added after the last
mark was set.
If there is no RTF DTM, there's nothing to pop so this
becomes a no-op. If pushes were issued before this was called, we count on
the fact that popRewindMark is defined such that overpopping just resets
to empty.
Complicating factor: We need to handle the case of popping back to a previous
RTF DTM, if one of the weird produce-an-RTF-to-build-an-RTF cases arose.
Basically: If pop says this DTM is now empty, then return to the previous
if one exists, in whatever state we left it in. UGLY, but hopefully the
situation which forces us to consider this will arise exceedingly rarely.
popSAXLocator
public void popSAXLocator()
Pop the current locater.
popSubContextList
public final void popSubContextList()
Pop the last pushed axes iterator.
pushContextNodeList
public final void pushContextNodeList(DTMIterator nl)
Set the current context node list.
nl
- the current node list,
also refered to here as a context node list.
pushCurrentExpressionNode
public final void pushCurrentExpressionNode(int n)
Set the current node that is the expression's context (i.e. for current() support).
n
- The sub-expression node to be current.
pushCurrentNode
public final void pushCurrentNode(int n)
Set the current context node.
n
- the current node.
pushCurrentNodeAndExpression
public final void pushCurrentNodeAndExpression(int cn,
int en)
Set the current context node and expression node.
cn
- the current node.en
- the sub-expression context node.
pushExpressionState
public final void pushExpressionState(int cn,
int en,
PrefixResolver nc)
Push the current context node, expression node, and prefix resolver.
cn
- the current node.en
- the sub-expression context node.nc
- the namespace context (prefix resolver.
pushIteratorRoot
public final void pushIteratorRoot(int n)
Set the current location path iterator root.
pushNamespaceContext
public final void pushNamespaceContext(PrefixResolver pr)
Push a current namespace context for the xpath.
pr
- the prefix resolver to be used for resolving prefixes to
namespace URLs.
pushNamespaceContextNull
public final void pushNamespaceContextNull()
Just increment the namespace contest stack, so that setNamespaceContext
can be used on the slot.
pushPredicatePos
public final void pushPredicatePos(int n)
pushPredicateRoot
public final void pushPredicateRoot(int n)
Set the current predicate root.
pushRTFContext
public void pushRTFContext()
Push the RTFDTM's context mark, to allows discarding RTFs added after this
point. (If it doesn't exist we don't push, since we might still be able to
get away with not creating it. That requires that excessive pops be harmless.)
pushSAXLocator
public void pushSAXLocator(SourceLocator location)
Set the current locater in the stylesheet.
location
- The location within the stylesheet.
pushSAXLocatorNull
public void pushSAXLocatorNull()
Push a slot on the locations stack so that setSAXLocator can be
repeatedly called.
pushSubContextList
public final void pushSubContextList(SubContextList iter)
Push a TreeWalker on the stack.
iter
- A sub-context AxesWalker.
release
public boolean release(DTM dtm,
boolean shouldHardDelete)
Release a DTM either to a lru pool, or completely remove reference.
DTMs without system IDs are always hard deleted.
State: experimental.
- release in interface DTMManager
dtm
- The DTM to be released.shouldHardDelete
- True if the DTM should be removed no matter what.
- true if the DTM was removed, false if it was put back in a lru pool.
reset
public void reset()
Reset for new run.
setAxesIteratorStackStacks
public void setAxesIteratorStackStacks(Stack s)
setContextNodeListsStack
public void setContextNodeListsStack(Stack s)
setCurrentExpressionNodeStack
public void setCurrentExpressionNodeStack(IntStack nv)
setCurrentNodeStack
public void setCurrentNodeStack(IntStack nv)
setErrorListener
public void setErrorListener(ErrorListener listener)
throws IllegalArgumentException
Set the ErrorListener where errors and warnings are to be reported.
listener
- A non-null ErrorListener reference.
setNamespaceContext
public final void setNamespaceContext(PrefixResolver pr)
Get the current namespace context for the xpath.
pr
- the prefix resolver to be used for resolving prefixes to
namespace URLs.
setPrimaryReader
public void setPrimaryReader(XMLReader reader)
Set primary XMLReader associated with this execution context.
reader
- The reader of the primary source tree.
setSAXLocator
public void setSAXLocator(SourceLocator location)
Set the current locater in the stylesheet.
location
- The location within the stylesheet.
setSourceTreeManager
public void setSourceTreeManager(SourceTreeManager mgr)
Set the SourceTreeManager associated with this execution context.
mgr
- the SourceTreeManager to be associated with this
execution context.
setURIResolver
public void setURIResolver(URIResolver resolver)
Set the URIResolver associated with this execution context.
resolver
- the URIResolver to be associated with this
execution context, may be null to clear an already set resolver.
setVarStack
public final void setVarStack(VariableStack varStack)
Get the variable stack, which is in charge of variables and
parameters.
varStack
- non-null reference to the variable stack.