void (PsiElement countName, PsiMethodCallExpression qualifierCall) { if (!STREAM_FLAT_MAP.test(qualifierCall)) return; PsiElement flatMapName = qualifierCall.getMethodExpression().getReferenceNameElement(); if (flatMapName == null) return; PsiElement parameter = qualifierCall.getArgumentList().getExpressions()[0]; PsiElement streamCallName = null; if (parameter instanceof PsiMethodReferenceExpression methodRef) { streamCallName = methodRef.getReferenceNameElement(); } else if (parameter instanceof PsiLambdaExpression lambda && extractLambdaReturnExpression(lambda) instanceof PsiMethodCallExpression call) { streamCallName = call.getMethodExpression().getReferenceNameElement(); } if (streamCallName == null || !streamCallName.getText().equals("stream")) return; PsiElementFactory factory = JavaPsiFacade.getElementFactory(qualifierCall.getProject()); streamCallName.replace(factory.createIdentifier("size")); flatMapName.replace(factory.createIdentifier("mapToLong")); countName.replace(factory.createIdentifier("sum")); PsiReferenceParameterList parameterList = qualifierCall.getMethodExpression().getParameterList(); if (parameterList != null) { parameterList.delete(); } }