public static boolean isSignalOrSignalAllCall(
    @NotNull PsiMethodCallExpression expression) {
    final PsiReferenceExpression methodExpression =
      expression.getMethodExpression();
    @NonNls final String methodName = methodExpression.getReferenceName();
    if (!"signal".equals(methodName) && !"signalAll".equals(methodName)) {
      return false;
    }
    if (!expression.getArgumentList().isEmpty()) {
      return false;
    }
    final PsiMethod method = expression.resolveMethod();
    if (method == null) {
      return false;
    }
    final PsiClass containingClass = method.getContainingClass();
    if (containingClass == null) {
      return false;
    }
    return InheritanceUtil.isInheritor(containingClass,
                                       "java.util.concurrent.locks.Condition");
  }
public static boolean isSignalOrSignalAllCall(
    @NotNull PsiMethodCallExpression expression)