TODO fixes: refactor

This commit is contained in:
pTalanov
2012-02-29 19:23:36 +04:00
parent 2499a3b845
commit 6e27f2ab3d
@@ -98,24 +98,23 @@ public final class JsAstUtils {
return new JsBinaryOperation(JsBinaryOperator.OR, op1, op2);
}
//TODO refactor
public static void setQualifier(@NotNull JsExpression selector, @Nullable JsExpression receiver) {
assert (selector instanceof JsInvocation || selector instanceof JsNameRef);
if (selector instanceof JsInvocation) {
setQualifier(((JsInvocation) selector).getQualifier(), receiver);
return;
}
if (selector instanceof JsNameRef) {
JsNameRef nameRef = (JsNameRef) selector;
JsExpression qualifier = nameRef.getQualifier();
if (qualifier == null) {
nameRef.setQualifier(receiver);
}
else {
setQualifier(qualifier, receiver);
}
return;
setQualifierForNameRef((JsNameRef) selector, receiver);
}
private static void setQualifierForNameRef(@NotNull JsNameRef selector, @Nullable JsExpression receiver) {
JsExpression qualifier = selector.getQualifier();
if (qualifier == null) {
selector.setQualifier(receiver);
}
else {
setQualifier(qualifier, receiver);
}
throw new AssertionError("Set qualifier should be applied only to JsInvocation or JsNameRef instances");
}
public static JsNameRef qualified(@NotNull JsName selector, @Nullable JsExpression qualifier) {