@Override
  public boolean canExtractChainCall(@NotNull PsiMethodCallExpression call, @NotNull PsiExpression expression, @Nullable PsiType expressionType) {
    PsiReferenceExpression methodExpression = call.getMethodExpression();
    if (!StreamApiUtil.isSupportedStreamElement(expressionType) ||
        !"forEach".equals(methodExpression.getReferenceName()) ||
        methodExpression.getQualifierExpression() == null ||
        !InheritanceUtil.isInheritor(methodExpression.getQualifierExpression().getType(), CommonClassNames.JAVA_UTIL_COLLECTION)) {
      return false;
    }
    PsiMethod method = call.resolveMethod();
    return method != null && method.getParameterList().getParametersCount() == 1;
  }
@Override
  public boolean canExtractChainCall(@NotNull PsiMethodCallExpression call, @NotNull PsiExpression expression, @Nullable PsiType expressionType)