/** * Iterate over the result of the expression to return a sequence of items */ public SequenceIterator iterate(XPathContext context) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { ValueRepresentation val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.action instanceof LetExpression) { let = (LetExpression) let.action; } else { break; } } return let.action.iterate(context); }
/** * Iterate over the result of the expression to return a sequence of events */ public EventIterator iterateEvents(XPathContext context) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { ValueRepresentation val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.action instanceof LetExpression) { let = (LetExpression) let.action; } else { break; } } return let.action.iterateEvents(context); }
/** * Iterate over the result of the expression to return a sequence of items */ public SequenceIterator iterate(XPathContext context) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { ValueRepresentation val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.action instanceof LetExpression) { let = (LetExpression) let.action; } else { break; } } return let.action.iterate(context); }
/** * Evaluate the expression as a singleton */ public Item evaluateItem(XPathContext context) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { ValueRepresentation val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.action instanceof LetExpression) { let = (LetExpression) let.action; } else { break; } } return let.action.evaluateItem(context); }
/** * Process this expression as an instruction, writing results to the current * outputter */ public void process(XPathContext context) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { ValueRepresentation val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.action instanceof LetExpression) { let = (LetExpression) let.action; } else { break; } } let.action.process(context); }
/** * Process this expression as an instruction, writing results to the current * outputter */ public void process(XPathContext context) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { ValueRepresentation val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.action instanceof LetExpression) { let = (LetExpression) let.action; } else { break; } } let.action.process(context); }
/** * Evaluate the expression as a singleton */ public Item evaluateItem(XPathContext context) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { ValueRepresentation val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.action instanceof LetExpression) { let = (LetExpression) let.action; } else { break; } } return let.action.evaluateItem(context); }
/** * Process this expression as an instruction, writing results to the current * outputter */ public void process(XPathContext context) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { ValueRepresentation val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.action instanceof LetExpression) { let = (LetExpression) let.action; } else { break; } } let.action.process(context); }
/** * Iterate over the result of the expression to return a sequence of items */ public SequenceIterator iterate(XPathContext context) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { ValueRepresentation val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.action instanceof LetExpression) { let = (LetExpression) let.action; } else { break; } } return let.action.iterate(context); }
/** * Iterate over the result of the expression to return a sequence of events */ public EventIterator iterateEvents(XPathContext context) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { ValueRepresentation val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.action instanceof LetExpression) { let = (LetExpression) let.action; } else { break; } } return let.action.iterateEvents(context); }
/** * Evaluate the expression as a singleton */ public Item evaluateItem(XPathContext context) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { ValueRepresentation val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.action instanceof LetExpression) { let = (LetExpression) let.action; } else { break; } } return let.action.evaluateItem(context); }
/** * Iterate over the result of the expression to return a sequence of events */ public EventIterator iterateEvents(XPathContext context) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { ValueRepresentation val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.action instanceof LetExpression) { let = (LetExpression) let.action; } else { break; } } return let.action.iterateEvents(context); }
/** * Process this expression as an instruction, writing results to the current * outputter */ public void process(XPathContext context) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { Sequence<?> val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.getAction() instanceof LetExpression) { let = (LetExpression) let.getAction(); } else { break; } } let.getAction().process(context); }
/** * Evaluate the expression as a singleton */ public Item evaluateItem(XPathContext context) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { Sequence<?> val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.getAction() instanceof LetExpression) { let = (LetExpression) let.getAction(); } else { break; } } return let.getAction().evaluateItem(context); }
/** * Evaluate the expression as a singleton */ public Item evaluateItem(XPathContext context) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { Sequence<?> val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.getAction() instanceof LetExpression) { let = (LetExpression) let.getAction(); } else { break; } } return let.getAction().evaluateItem(context); }
/** * Iterate over the result of the expression to return a sequence of items */ /*@NotNull*/ public SequenceIterator<?> iterate(XPathContext context) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { Sequence<?> val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.getAction() instanceof LetExpression) { let = (LetExpression) let.getAction(); } else { break; } } return let.getAction().iterate(context); }
/** * Process this expression as an instruction, writing results to the current * outputter */ public void process(XPathContext context) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { Sequence<?> val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.getAction() instanceof LetExpression) { let = (LetExpression) let.getAction(); } else { break; } } let.getAction().process(context); }
/** * Iterate over the result of the expression to return a sequence of items */ /*@NotNull*/ public SequenceIterator<?> iterate(XPathContext context) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { Sequence<?> val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.getAction() instanceof LetExpression) { let = (LetExpression) let.getAction(); } else { break; } } return let.getAction().iterate(context); }
/** * Evaluate an updating expression, adding the results to a Pending Update List. * The default implementation of this method, which is used for non-updating expressions, * throws an UnsupportedOperationException * * @param context the XPath dynamic evaluation context * @param pul the pending update list to which the results should be written */ public void evaluatePendingUpdates(XPathContext context, PendingUpdateList pul) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { Sequence<?> val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.getAction() instanceof LetExpression) { let = (LetExpression) let.getAction(); } else { break; } } let.getAction().evaluatePendingUpdates(context, pul); }
/** * Get the effective boolean value of the expression. This returns false if the value * is the empty sequence, a zero-length string, a number equal to zero, or the boolean * false. Otherwise it returns true. * * @param context The context in which the expression is to be evaluated * @return the effective boolean value * @throws net.sf.saxon.trans.XPathException * if any dynamic error occurs evaluating the * expression */ public boolean effectiveBooleanValue(XPathContext context) throws XPathException { // minimize stack consumption by evaluating nested LET expressions iteratively LetExpression let = this; while (true) { Sequence<?> val = let.eval(context); context.setLocalVariable(let.getLocalSlotNumber(), val); if (let.getAction() instanceof LetExpression) { let = (LetExpression) let.getAction(); } else { break; } } return let.getAction().effectiveBooleanValue(context); }