public static String getclassName(NewClassTree newClasstree) { if (newClasstree.identifier().is(Tree.Kind.MEMBER_SELECT)) { return ((MemberSelectExpressionTree) newClasstree.identifier()).identifier().name(); } else if (newClasstree.identifier().is(Tree.Kind.IDENTIFIER)) { return ((IdentifierTree) newClasstree.identifier()).name(); } return null; }
@Override protected void onConstructorFound(NewClassTree newClassTree) { String message = DeprecatedSpringPasswordEncoder.MESSAGE_PER_CLASS.get(newClassTree.identifier().symbolType().fullyQualifiedName()); reportIssue(newClassTree.identifier(), message); }
@Override protected void onConstructorFound(NewClassTree newClassTree) { if (assignedToLocalVariablesNotInConstructorOrStaticMain(newClassTree)) { reportIssue(newClassTree.identifier(), "Save and re-use this \"Random\"."); } }
@Override protected void onConstructorFound(NewClassTree newClassTree) { List<JavaFileScannerContext.Location> secondaries = collectSecondaryLocations(newClassTree); reportIssue(newClassTree.identifier(), MESSAGE, secondaries, null); }
/** * Return the correct tree to report on for class trees. * @param classTree class tree raising an issue. * @return simple name of class tree or identifier in parent expression for anonymous class. */ public static Tree reportOnClassTree(ClassTree classTree) { Tree reportTree = classTree.simpleName(); if(reportTree == null) { reportTree = ((NewClassTree) classTree.parent()).identifier(); } return reportTree; }
private void handleNewClassTree(NewClassTree tree) { ((JavaType) tree.symbolType()).directSuperTypes().stream() .filter(directSuperType -> isGrantedAuthority(directSuperType) || isForbiddenForAnonymousClass(tree, directSuperType)) .findFirst() .ifPresent(ct -> reportIssue(tree.identifier())); }
private void checkIfUnknown(NewClassTree nct) { if (nct.constructorSymbol().isUnknown()) { unresolvedMethodNames.add(constructorName(nct.identifier())); } }
@Override public void visitNewClass(NewClassTree tree) { if (tree.constructorSymbol().isUnknown()) { context.reportIssue(this, tree.identifier(), "Constructor not resolved"); } } }
@Override public void visitNode(Tree tree) { NewClassTree newClassTree = (NewClassTree) tree; if (newClassTree.symbolType().is("javax.crypto.NullCipher")) { reportIssue(newClassTree.identifier(), "Remove this use of the \"NullCipher\" class."); } }
@Override protected void onConstructorFound(NewClassTree newClassTree) { Symbol symbol = newClassTree.constructorSymbol(); if (symbol.isMethodSymbol()) { Symbol.MethodSymbol constructor = (Symbol.MethodSymbol) symbol; String signature = constructor.owner().name() + "(" + Joiner.on(',').join(constructor.parameterTypes()) + ")"; reportIssue(newClassTree.identifier(), "Remove this use of constructor \"" + signature + "\""); } }
@Override protected void onConstructorFound(NewClassTree newClassTree) { if(isBigIntegerPotentiallyBiggerThanLong(newClassTree)) { return; } reportIssue(newClassTree.identifier(), "Remove this \"" + newClassTree.symbolType().name() + "\" constructor"); }
@Override public void visitNewClass(NewClassTree tree) { super.visitNewClass(tree); ClassTree classBody = tree.classBody(); if (classBody != null) { TypeTree identifier = tree.identifier(); if (!useThisInstance(classBody) && !enumConstants.contains(identifier) && isSAM(classBody)) { context.reportIssue(this, identifier, "Make this anonymous inner class a lambda" + context.getJavaVersion().java8CompatibilityMessage()); } } }
@Override public void visitNewClass(NewClassTree tree) { if (tree.classBody() != null && !isEnumConstantBody) { int lines = getNumberOfLines(tree.classBody()); if (lines > max) { context.reportIssue(this, tree.newKeyword(), tree.identifier(), "Reduce this anonymous class number of lines from " + lines + " to at most " + max + ", or make it a named class."); } } isEnumConstantBody = false; super.visitNewClass(tree); }
@Override public void visitNewClass(NewClassTree newClassTree) { String newClassTypeName = newClassTree.identifier().symbolType().fullyQualifiedName(); Tree parent = newClassTree.parent(); if (parent != null && !parent.is(Tree.Kind.VARIABLE)) { checkIfDisallowed(newClassTypeName, newClassTree); } super.visitNewClass(newClassTree ); }
@Override public void visitNewClass(NewClassTree tree) { if (isUnorderedMap(tree.symbolType()) && hasEnumKey(tree.identifier().symbolType())) { addIssue(tree); } else { super.visitNewClass(tree); } }
@Override public void visitNewClass(NewClassTree tree) { scan(tree.enclosingExpression()); scan(tree.identifier()); scan(tree.typeArguments()); scan(tree.arguments()); //do not scan body of anonymous classes. } }
private void checkNewMap(ExpressionTree given, boolean useEnumKey) { ExpressionTree expression = ExpressionUtils.skipParentheses(given); if (expression.is(Tree.Kind.NEW_CLASS)) { NewClassTree newClassTree = (NewClassTree) expression; if (isUnorderedMap(newClassTree.symbolType()) && (useEnumKey || hasEnumKey(newClassTree.identifier().symbolType()))) { addIssue(newClassTree); } } }
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 ""; }
@Override public void visitNewClass(NewClassTree tree) { scan(tree.enclosingExpression()); scan(tree.identifier()); scan(tree.typeArguments()); scan(tree.arguments()); scan(tree.classBody()); }
@Override public void visitExpressionStatement(ExpressionStatementTree tree) { super.visitExpressionStatement(tree); ExpressionTree expression = tree.expression(); if (((JavaType) expression.symbolType()).isTagged(JavaType.DEFERRED) && expression.is(Tree.Kind.NEW_CLASS)) { JavaType parametrizedTypeWithObject = resolve.parametrizedTypeWithErasure((ParametrizedTypeJavaType) getType(((NewClassTree) expression).identifier())); setInferedType(parametrizedTypeWithObject, (DeferredType) expression.symbolType()); } }