| java.lang.Object org.apache.xpath.Expression org.apache.xpath.operations.Variable org.apache.xpath.operations.VariableSafeAbsRef
VariableSafeAbsRef | public class VariableSafeAbsRef extends Variable (Code) | | This is a "smart" variable reference that is used in situations where
an absolute path is optimized into a variable reference, but may
be used in some situations where the document context may have changed.
For instance, in select="document(doc/@href)//name[//salary > 7250]", the
root in the predicate will be different for each node in the set. While
this is easy to detect statically in this case, in other cases static
detection would be very hard or impossible. So, this class does a dynamic check
to make sure the document context of the referenced variable is the same as
the current document context, and, if it is not, execute the referenced variable's
expression with the current context instead.
|
Method Summary | |
public XObject | execute(XPathContext xctxt, boolean destructiveOK) Dereference the variable, and return the reference value. |
serialVersionUID | final static long serialVersionUID(Code) | | |
Methods inherited from org.apache.xpath.Expression | public DTMIterator asIterator(XPathContext xctxt, int contextNode) throws javax.xml.transform.TransformerException(Code)(Java Doc) public DTMIterator asIteratorRaw(XPathContext xctxt, int contextNode) throws javax.xml.transform.TransformerException(Code)(Java Doc) public int asNode(XPathContext xctxt) throws javax.xml.transform.TransformerException(Code)(Java Doc) public void assertion(boolean b, java.lang.String msg)(Code)(Java Doc) public boolean bool(XPathContext xctxt) throws javax.xml.transform.TransformerException(Code)(Java Doc) public boolean canTraverseOutsideSubtree()(Code)(Java Doc) abstract public boolean deepEquals(Expression expr)(Code)(Java Doc) public void error(XPathContext xctxt, String msg, Object[] args) throws javax.xml.transform.TransformerException(Code)(Java Doc) public XObject execute(XPathContext xctxt, int currentNode) throws javax.xml.transform.TransformerException(Code)(Java Doc) public XObject execute(XPathContext xctxt, int currentNode, DTM dtm, int expType) throws javax.xml.transform.TransformerException(Code)(Java Doc) abstract public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException(Code)(Java Doc) public XObject execute(XPathContext xctxt, boolean destructiveOK) throws javax.xml.transform.TransformerException(Code)(Java Doc) public void executeCharsToContentHandler(XPathContext xctxt, ContentHandler handler) throws javax.xml.transform.TransformerException, org.xml.sax.SAXException(Code)(Java Doc) public void exprAddChild(ExpressionNode n, int i)(Code)(Java Doc) public ExpressionNode exprGetChild(int i)(Code)(Java Doc) public int exprGetNumChildren()(Code)(Java Doc) public ExpressionNode exprGetParent()(Code)(Java Doc) public void exprSetParent(ExpressionNode n)(Code)(Java Doc) abstract public void fixupVariables(java.util.Vector vars, int globalsSize)(Code)(Java Doc) public int getColumnNumber()(Code)(Java Doc) public ExpressionNode getExpressionOwner()(Code)(Java Doc) public int getLineNumber()(Code)(Java Doc) public String getPublicId()(Code)(Java Doc) public String getSystemId()(Code)(Java Doc) public boolean isNodesetExpr()(Code)(Java Doc) final protected boolean isSameClass(Expression expr)(Code)(Java Doc) public boolean isStableNumber()(Code)(Java Doc) public double num(XPathContext xctxt) throws javax.xml.transform.TransformerException(Code)(Java Doc) public void warn(XPathContext xctxt, String msg, Object[] args) throws javax.xml.transform.TransformerException(Code)(Java Doc) public XMLString xstr(XPathContext xctxt) throws javax.xml.transform.TransformerException(Code)(Java Doc)
|
|
|