return this;
}
public Sequence<? extends Item> eval(Sequence<? extends Item> contextSeq, DynamicContext dynEnv)
throws XQueryException {
Sequence input = new DummySequence(dynEnv);
for(Binding bc : _clauses) {
final int type = bc.getExpressionType();
if(type == Binding.LET_CLAUSE) {
LetVariable lv = ((LetClause) bc).getVariable();
int refcnt = lv.getReferenceCount();
if(refcnt == 0) {
continue;
} else {
input = new ActionSequence(input, bc, dynEnv);
}
} else {
input = new PipedActionSequence(input, bc, dynEnv);
}
}
// where + return
Sequence ret = new PipedActionSequence(input, _filteredReturnExpr, dynEnv);
// order by
// TODO PERFORMANCE eagar ordering
final List<OrderSpec> orderSpecs = _orderSpecs;
if(!orderSpecs.isEmpty()) {
return sorted(ret, orderSpecs, contextSeq, dynEnv);