private static PsiClassType createDefaultConsumerType(Project project, PsiParameter parameter) { final JavaPsiFacade psiFacade = JavaPsiFacade.getInstance(project); final PsiClass consumerClass = psiFacade.findClass("java.util.function.Consumer", GlobalSearchScope.allScope(project)); return consumerClass != null ? psiFacade.getElementFactory().createType(consumerClass, parameter.getType()) : null; }
private static String createMapperFunctionalExpressionText( PsiParameter parameter, PsiExpression expression) { String iteration = ""; if (!isIdentityMapping(parameter, expression)) { iteration += ".map("; iteration += compoundLambdaOrMethodReference( parameter, expression, "java.util.function.Function", new PsiType[] {parameter.getType(), expression.getType()}); iteration += ")"; } return iteration; }
private static String createFiltersChainText( PsiStatement body, PsiParameter parameter, PsiIfStatement ifStatement) { final List<String> filters = new ArrayList<String>(); while (ifStatement != null && PsiTreeUtil.isAncestor(body, ifStatement, false)) { final PsiExpression condition = ifStatement.getCondition(); if (condition != null) { filters.add( ".filter(" + compoundLambdaOrMethodReference( parameter, condition, "java.util.function.Predicate", new PsiType[] {parameter.getType()}) + ")"); } ifStatement = PsiTreeUtil.getParentOfType(ifStatement, PsiIfStatement.class); } Collections.reverse(filters); return StringUtil.join(filters, ""); }