//TODO: this doesn't actually handle the case of an extended operator that does not take
// any arguments
if (node.hasChild(Expression.class)) {
//case of a single operator containing a single expression
Node n = node.getChild(Expression.class);
Name opName = new NameImpl(n.getComponent().getNamespace(), n.getComponent().getName());
Filter extOp = lookupExtendedOperator(opName, Arrays.asList((Expression) n.getValue()), factory);
if (extOp != null) {
extOps.add(extOp);
}
}
else if (node.hasChild(Map.class)) {
List<Node> children = node.getChildren(Map.class);
for (Node n : children) {
Name opName = new NameImpl(n.getComponent().getNamespace(), n.getComponent().getName());
Map map = (Map) n.getValue();
List<Expression> expressions = new ArrayList();
for (Object o : map.values()) {
if (o instanceof Expression) {
expressions.add((Expression) o);