@Override public void visitLambdaExpression(LambdaExpressionTree lambdaExpressionTree) { if(root.is(Tree.Kind.CLASS, Tree.Kind.ENUM, Tree.Kind.INTERFACE, Tree.Kind.ANNOTATION_TYPE, Tree.Kind.COMPILATION_UNIT) || lambdaExpressionTree.equals(root)) { blame.add(lambdaExpressionTree.arrowToken()); super.visitLambdaExpression(lambdaExpressionTree); } }
@Override public void visitLambdaExpression(LambdaExpressionTree lambdaExpressionTree) { if(root.is(Tree.Kind.CLASS, Tree.Kind.ENUM, Tree.Kind.INTERFACE, Tree.Kind.ANNOTATION_TYPE, Tree.Kind.COMPILATION_UNIT) || lambdaExpressionTree.equals(root)) { blame.add(lambdaExpressionTree.arrowToken()); super.visitLambdaExpression(lambdaExpressionTree); } }
@Override public void visitLambdaExpression(LambdaExpressionTree lambdaExpressionTree) { int lines = getNumberOfLines(lambdaExpressionTree); if (lines > max) { SyntaxToken firstToken = lambdaExpressionTree.firstToken(); SyntaxToken lastSyntaxToken = lambdaExpressionTree.lastToken(); JavaFileScannerContext.Location lastTokenLocation = new JavaFileScannerContext.Location(lines + " lines", lastSyntaxToken); context.reportIssue(this, firstToken, lambdaExpressionTree.arrowToken(), "Reduce this lambda expression number of lines from " + lines + " to at most " + max + ".", Lists.newArrayList(lastTokenLocation), null); } super.visitLambdaExpression(lambdaExpressionTree); }
@Override public void leaveNode(Tree tree) { Tree reportTree = null; if (tree.is(Tree.Kind.METHOD)) { reportTree = ((MethodTree) tree).simpleName(); } else if (tree.is(Tree.Kind.LAMBDA_EXPRESSION)) { reportTree = ((LambdaExpressionTree) tree).arrowToken(); } if (reportTree != null) { int count = returnStatementCounter.count(tree); if (count > max) { reportIssue(reportTree, "Reduce the number of returns of this method " + count + ", down to the maximum allowed " + max + "."); } methods.pop(); } } }
@Override public void visitLambdaExpression(LambdaExpressionTree lambdaExpressionTree) { int lines = getNumberOfLines(lambdaExpressionTree); if (lines > max) { SyntaxToken firstToken = lambdaExpressionTree.firstToken(); SyntaxToken lastSyntaxToken = lambdaExpressionTree.lastToken(); JavaFileScannerContext.Location lastTokenLocation = new JavaFileScannerContext.Location(lines + " lines", lastSyntaxToken); context.reportIssue(this, firstToken, lambdaExpressionTree.arrowToken(), "Reduce this lambda expression number of lines from " + lines + " to at most " + max + ".", Lists.newArrayList(lastTokenLocation), null); } super.visitLambdaExpression(lambdaExpressionTree); }
@Override public void leaveNode(Tree tree) { Tree reportTree = null; if (tree.is(Tree.Kind.METHOD)) { reportTree = ((MethodTree) tree).simpleName(); } else if (tree.is(Tree.Kind.LAMBDA_EXPRESSION)) { reportTree = ((LambdaExpressionTree) tree).arrowToken(); } if (reportTree != null) { int count = returnStatementCounter.count(tree); if (count > max) { reportIssue(reportTree, "Reduce the number of returns of this method " + count + ", down to the maximum allowed " + max + "."); } methods.pop(); } } }
@Override public void visitLambdaExpression(LambdaExpressionTree tree) { if (isReplaceableSingleMethodInvocation(tree) || isBodyBlockInvokingMethod(tree)) { context.reportIssue(this, tree.arrowToken(), "Replace this lambda with a method reference." + context.getJavaVersion().java8CompatibilityMessage()); } else { getNullCheck(tree) .ifPresent(nullMethod -> context.reportIssue(this, tree.arrowToken(), "Replace this lambda with method reference 'Objects::" + nullMethod + "'." + context.getJavaVersion().java8CompatibilityMessage()) ); } super.visitLambdaExpression(tree); }
@Override public void visitLambdaExpression(LambdaExpressionTree tree) { if (isReplaceableSingleMethodInvocation(tree) || isBodyBlockInvokingMethod(tree)) { context.reportIssue(this, tree.arrowToken(), "Replace this lambda with a method reference." + context.getJavaVersion().java8CompatibilityMessage()); } else { getNullCheck(tree) .ifPresent(nullMethod -> context.reportIssue(this, tree.arrowToken(), "Replace this lambda with method reference 'Objects::" + nullMethod + "'." + context.getJavaVersion().java8CompatibilityMessage()) ); } super.visitLambdaExpression(tree); }