private static boolean isSystem(ExpressionTree expression) { IdentifierTree identifierTree = null; if (expression.is(Tree.Kind.IDENTIFIER)) { identifierTree = (IdentifierTree) expression; } else if (expression.is(Tree.Kind.MEMBER_SELECT)) { identifierTree = ((MemberSelectExpressionTree) expression).identifier(); } return identifierTree != null && "System".equals(identifierTree.name()); }
private static boolean isLoggerType(Tree tree) { IdentifierTree identifierTree = null; if (tree.is(Tree.Kind.IDENTIFIER)) { identifierTree = (IdentifierTree) tree; } else if (tree.is(Tree.Kind.MEMBER_SELECT)) { identifierTree = ((MemberSelectExpressionTree) tree).identifier (); } else { return false; } return "Log".equals(identifierTree.name()) || "Logger".equals(identifierTree.name()); }
private void checkExpression(Tree reportTree, Tree expression) { Optional<String> listName = Optional.empty(); if (expression.is(Tree.Kind.IDENTIFIER)) { listName = Optional.of(((IdentifierTree) expression).name()); } else if (expression.is(Tree.Kind.MEMBER_SELECT)) { listName = Optional.of(((MemberSelectExpressionTree) expression).identifier().name()); } listName.ifPresent(list -> context.reportIssue(this, reportTree, getMessage(reportTree, list))); }
private Optional<String> isPasswordVariable(ExpressionTree variable) { if (variable.is(Tree.Kind.MEMBER_SELECT)) { return isPasswordVariableName(((MemberSelectExpressionTree) variable).identifier()); } else if (variable.is(Tree.Kind.IDENTIFIER)) { return isPasswordVariableName((IdentifierTree) variable); } return Optional.empty(); }
private String getFieldName(AssignmentExpressionTree tree) { ExpressionTree variable = tree.variable(); if (variable.is(Kind.MEMBER_SELECT)) { variable = ((MemberSelectExpressionTree) variable).identifier(); } return ((IdentifierTree) variable).name(); } }
private static boolean isJsonTypeIdEnumValue(ExpressionTree tree, Set<String> values) { if (!isJsonTypeId(tree)) { return false; } String valueName; if (tree.is(Tree.Kind.MEMBER_SELECT)) { valueName = ((MemberSelectExpressionTree) tree).identifier().name(); } else { valueName = ((IdentifierTree) tree).name(); } return values.contains(valueName); }
private static boolean isSuperClone(MemberSelectExpressionTree tree) { return "clone".equals(tree.identifier().name()) && tree.expression().is(Kind.IDENTIFIER) && "super".equals(((IdentifierTree) tree.expression()).name()); }
@Override public void visitMemberSelectExpression(MemberSelectExpressionTree tree) { super.visitMemberSelectExpression(tree); String identifier = tree.identifier().name(); boolean isCollectionsCall = tree.expression().is(Kind.IDENTIFIER) && "Collections".equals(((IdentifierTree) tree.expression()).name()); boolean callEmptyConstant = identifier.startsWith("EMPTY_"); if (isCollectionsCall && callEmptyConstant) { context.reportIssue(this, tree, "Replace \"Collections." + identifier + "\" by \"Collections." + IDENTIFIER_REPLACEMENT.get(identifier) + "\"."); } }
@Override public void visitMemberSelectExpression(MemberSelectExpressionTree tree) { ExpressionTree expression = ExpressionUtils.skipParentheses(tree.expression()); if (expression.is(Tree.Kind.IDENTIFIER)) { String identifierName = ((IdentifierTree) expression).name(); if ("this".equals(identifierName) || "super".equals(identifierName)) { tree.identifier().accept(this); return; } } expression.accept(this); }
public IdentifierTree argumentToIdentifier(ExpressionTree expr) { if (expr.is(Tree.Kind.IDENTIFIER)) { return (IdentifierTree) ExpressionUtils.skipParentheses(expr); } else if (expr.is(Tree.Kind.MEMBER_SELECT)) { return (IdentifierTree) ExpressionUtils.skipParentheses(((MemberSelectExpressionTree) expr).identifier()); } else { return null; } }
private static IdentifierTree getIdentifier(MethodInvocationTree mit) { IdentifierTree id; if (mit.methodSelect().is(Tree.Kind.IDENTIFIER)) { id = (IdentifierTree) mit.methodSelect(); } else { id = ((MemberSelectExpressionTree) mit.methodSelect()).identifier(); } return id; }
private static boolean callSuperMethodWithSameName(MemberSelectExpressionTree mset, MethodTree methodTree) { return mset.expression().is(Tree.Kind.IDENTIFIER) && "super".equals(((IdentifierTree) mset.expression()).name()) && mset.identifier().name().equals(methodTree.simpleName().name()); }
private void checkArrayLength(MemberSelectExpressionTree testedValue, BinaryExpressionTree bet, boolean leftIsZero) { if (!"length".equals(testedValue.identifier().name())) { return; } ExpressionTree expression = testedValue.expression(); if (!expression.symbolType().isArray()) { return; } reportIssue(bet, leftIsZero, ARRAY_ISSUE_MSG, arrayName(expression)); }
private void checkIdentifier(ExpressionTree expression) { ExpressionTree expr = ExpressionUtils.skipParentheses(expression); if (expr.is(Tree.Kind.IDENTIFIER)) { addSymbol((IdentifierTree) expr); } else if (expr.is(Tree.Kind.MEMBER_SELECT)) { addSymbol(((MemberSelectExpressionTree) expr).identifier()); } }
private static Symbol resourceSymbol(Tree resource) { // java 7 try-with resource if (resource.is(Tree.Kind.VARIABLE)) { return ((VariableTree) resource).symbol(); } // java 9 try-with-resource if (resource.is(Tree.Kind.IDENTIFIER)) { return ((IdentifierTree) resource).symbol(); } return ((MemberSelectExpressionTree) resource).identifier().symbol(); }
protected void setParameterNameFromArgument(ExpressionTree arg) { if (arg.is(Tree.Kind.IDENTIFIER)) { parameterName = "\""+((IdentifierTree) arg).name()+"\""; } else if (arg.is(Tree.Kind.MEMBER_SELECT)) { parameterName = "\""+((MemberSelectExpressionTree) arg).identifier().name()+"\""; } else if (arg.is(Tree.Kind.METHOD_INVOCATION)) { parameterName = "result from this method"; } }
@Override protected void onMethodInvocationFound(MethodInvocationTree mit) { if (mit.methodSelect().is(Tree.Kind.MEMBER_SELECT)) { MemberSelectExpressionTree selectExpression = (MemberSelectExpressionTree) mit.methodSelect(); if (selectExpression.expression().symbolType().is(CSRF_CONFIGURER_CLASS)) { reportIssue(selectExpression.identifier(), MESSAGE); } } }
@Override public void visitMethodInvocation(MethodInvocationTree tree) { if (tree.methodSelect().is(Tree.Kind.MEMBER_SELECT)) { MemberSelectExpressionTree mse = (MemberSelectExpressionTree) tree.methodSelect(); if (mse.expression().is(Tree.Kind.IDENTIFIER) && "super".equals(((IdentifierTree) mse.expression()).name()) && mse.identifier().name().equals(methodName)) { superCallOnOverride |= !((IdentifierTree) mse.expression()).symbol().type().is(JUNIT_FRAMEWORK_TEST_CASE); } } super.visitMethodInvocation(tree); }
private static String extractInterfaceName(Tree interfaceTree) { if (interfaceTree.is(Tree.Kind.IDENTIFIER)) { return ((IdentifierTree) interfaceTree).name(); } else if (interfaceTree.is(Tree.Kind.MEMBER_SELECT)) { MemberSelectExpressionTree mset = (MemberSelectExpressionTree) interfaceTree; return extractInterfaceName(mset.expression()) + "." + mset.identifier().name(); } else { return extractInterfaceName(((ParameterizedTypeTree) interfaceTree).type()); } } }
private static String getNewlyCreatedClassName(MethodInvocationTree mit) { MemberSelectExpressionTree mset = (MemberSelectExpressionTree) mit.methodSelect(); if (mset.expression().is(Tree.Kind.NEW_CLASS)) { Tree classId = ((NewClassTree) mset.expression()).identifier(); if (classId.is(Tree.Kind.IDENTIFIER)) { return ((IdentifierTree) classId).name(); } else if (classId.is(Tree.Kind.MEMBER_SELECT)) { return ((MemberSelectExpressionTree) classId).identifier().name(); } } return ""; }