return true;
} else if (basicOperator.getClass() == Optional.class) {
if(basicOperator.getIntersectionVariables().containsAll(sortCriterium)) {
if(basicOperator.getPrecedingOperators().size() == 2) {
final BasicOperator newOperator = new MergeWithoutSortingOptional();
newOperator.cloneFrom(basicOperator);
basicOperator.replaceWith(newOperator);
return operatorMustReceiveSortedData(root, basicOperator.getPrecedingOperators().get(0), sortCriterium) &&
operatorMustReceiveSortedData(root, basicOperator.getPrecedingOperators().get(1), sortCriterium);
}
}