// sort operators, will happen only very few times since we cache the
// result
final Iterator<OQueryOperatorFactory> ite = getOperatorFactories();
final List<OQueryOperator> operators = new ArrayList<OQueryOperator>();
while (ite.hasNext()) {
final OQueryOperatorFactory factory = ite.next();
operators.addAll(factory.getOperators());
}
final List<OQueryOperator> sorted = new ArrayList<OQueryOperator>();
final Set<Pair> pairs = new LinkedHashSet<Pair>();
for (final OQueryOperator ca : operators) {