if (source instanceof Selector) {
Selector selector = (Selector) source;
return execute(
columns, selector, constraint, orderings, offset, limit);
} else if (source instanceof Join) {
Join join = (Join) source;
if (join.getJoinType() == JCR_JOIN_TYPE_RIGHT_OUTER) {
// Swap the join sources to normalize all outer joins to left
join = qomFactory.join(
join.getRight(), join.getLeft(),
JCR_JOIN_TYPE_LEFT_OUTER, join.getJoinCondition());
}
return execute(
columns, join, constraint, orderings, offset, limit);
} else {
throw new UnsupportedRepositoryOperationException(