| 73 | } |
| 74 | |
| 75 | @Override |
| 76 | public Value value(final QueryContext qc) throws QueryException { |
| 77 | final QueryFocus qf = qc.focus; |
| 78 | final Value qv = qf.value; |
| 79 | final ValueBuilder vb = new ValueBuilder(qc, size()); |
| 80 | final Iter iter = exprs[0].iter(qc); |
| 81 | for(Item item; (item = qc.next(iter)) != null;) { |
| 82 | qf.value = item; |
| 83 | try { |
| 84 | vb.add(exprs[1].item(qc, info)); |
| 85 | } finally { |
| 86 | qf.value = qv; |
| 87 | } |
| 88 | } |
| 89 | return vb.value(this); |
| 90 | } |
| 91 | |
| 92 | @Override |
| 93 | public DualMap copy(final CompileContext cc, final IntObjectMap<Var> vm) { |