public static JoinCondition replaceReferencesToRemovedSource( QueryContext context,
JoinCondition joinCondition,
Map<SelectorName, SelectorName> rewrittenSelectors ) {
if (joinCondition instanceof EquiJoinCondition) {
EquiJoinCondition condition = (EquiJoinCondition)joinCondition;
SelectorName replacement1 = rewrittenSelectors.get(condition.selector1Name());
SelectorName replacement2 = rewrittenSelectors.get(condition.selector2Name());
if (replacement1 == null) replacement1 = condition.selector1Name();
if (replacement2 == null) replacement2 = condition.selector2Name();
if (replacement1 == condition.selector1Name() && replacement2 == condition.selector2Name()) return condition;
return new EquiJoinCondition(replacement1, condition.getProperty1Name(), replacement2, condition.getProperty2Name());