From c82523246b5ba3eaf274aa47e4161dd2f88c72bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Pluta?= Date: Fri, 5 Apr 2019 19:49:00 +0200 Subject: [PATCH] 10: Refactor Java plugins to use lambdas instead of visitors in CompilationUnit --- .../bartek/esa/core/plugin/LoggingPlugin.java | 13 +++--------- .../esa/core/plugin/SecureRandomPlugin.java | 20 ++++--------------- 2 files changed, 7 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/bartek/esa/core/plugin/LoggingPlugin.java b/src/main/java/com/bartek/esa/core/plugin/LoggingPlugin.java index 89be22d..63b3392 100644 --- a/src/main/java/com/bartek/esa/core/plugin/LoggingPlugin.java +++ b/src/main/java/com/bartek/esa/core/plugin/LoggingPlugin.java @@ -6,7 +6,6 @@ import com.bartek.esa.core.xml.XmlHelper; import com.bartek.esa.file.matcher.GlobMatcher; import com.github.javaparser.ast.CompilationUnit; import com.github.javaparser.ast.expr.MethodCallExpr; -import com.github.javaparser.ast.visitor.VoidVisitorAdapter; import javax.inject.Inject; @@ -19,14 +18,8 @@ public class LoggingPlugin extends JavaPlugin { @Override public void run(CompilationUnit compilationUnit) { - compilationUnit.accept(new VoidVisitorAdapter() { - @Override - public void visit(MethodCallExpr methodCall, Void arg) { - if (methodCall.getName().getIdentifier().matches("v|d|i|w|e|wtf")) { - addIssue(Severity.INFO, getLineNumberFromExpression(methodCall), methodCall.toString()); - } - super.visit(methodCall, arg); - } - }, null); + compilationUnit.findAll(MethodCallExpr.class).stream() + .filter(expr -> expr.getName().getIdentifier().matches("v|d|i|w|e|wtf")) + .forEach(expr -> addIssue(Severity.INFO, getLineNumberFromExpression(expr), expr.toString())); } } diff --git a/src/main/java/com/bartek/esa/core/plugin/SecureRandomPlugin.java b/src/main/java/com/bartek/esa/core/plugin/SecureRandomPlugin.java index bcefe42..0587539 100644 --- a/src/main/java/com/bartek/esa/core/plugin/SecureRandomPlugin.java +++ b/src/main/java/com/bartek/esa/core/plugin/SecureRandomPlugin.java @@ -5,10 +5,7 @@ import com.bartek.esa.core.model.enumeration.Severity; import com.bartek.esa.core.xml.XmlHelper; import com.bartek.esa.file.matcher.GlobMatcher; import com.github.javaparser.ast.CompilationUnit; -import com.github.javaparser.ast.NodeList; -import com.github.javaparser.ast.expr.Expression; import com.github.javaparser.ast.expr.ObjectCreationExpr; -import com.github.javaparser.ast.visitor.VoidVisitorAdapter; import javax.inject.Inject; @@ -21,18 +18,9 @@ public class SecureRandomPlugin extends JavaPlugin { @Override public void run(CompilationUnit compilationUnit) { - compilationUnit.accept(new VoidVisitorAdapter() { - @Override - public void visit(ObjectCreationExpr objectCreation, Void arg) { - String identifier = objectCreation.getType().getName().getIdentifier(); - NodeList arguments = objectCreation.getArguments(); - - if(identifier.equals("SecureRandom") && arguments.isNonEmpty()) { - addIssue(Severity.VULNERABILITY, getLineNumberFromExpression(objectCreation), objectCreation.toString()); - } - - super.visit(objectCreation, arg); - } - }, null); + compilationUnit.findAll(ObjectCreationExpr.class).stream() + .filter(expr -> expr.getType().getName().getIdentifier().equals("SecureRandom")) + .filter(expr -> expr.getArguments().isNonEmpty()) + .forEach(expr -> addIssue(Severity.VULNERABILITY, getLineNumberFromExpression(expr), expr.toString())); } }