public AbstractExpression exprFor (Literal literal) { // This could be a sequence!! GroundedValue value = literal.getValue(); try { int len = value.getLength(); if (len == 0) { return LiteralExpression.EMPTY; } SequenceIterator<?> iter = value.iterate(); if (len > 1) { ArrayList<LiteralExpression> items = new ArrayList<LiteralExpression>(); Item member; while ((member = iter.next()) != null) { if (member instanceof AtomicValue) { items.add (exprFor ((AtomicValue) member)); } else { throw new LuxException ("unsupported node in a literal sequence: " + literal.toString()); } } return new Sequence (items.toArray(new LiteralExpression[0])); } return exprFor ((AtomicValue) iter.next()); } catch (XPathException e) { throw new LuxException (e); } }