private void checkIfLombokClass(ImportTree tree) { String importStr = fullQualifiedName(tree.qualifiedIdentifier()); if (importStr.contains("lombok")) { lombokClass = true; } }
@Override public void visitImport(ImportTree tree) { scan(tree.qualifiedIdentifier()); }
@Override public void visitImport(ImportTree tree) { scan(tree.qualifiedIdentifier()); }
@Override public void visitImport(ImportTree tree) { scan(tree.qualifiedIdentifier()); }
@Override public void visitImport(ImportTree tree) { scan(tree.qualifiedIdentifier()); }
@Override public void visitImport(ImportTree tree) { String importName = ExpressionsHelper.concatenate((ExpressionTree) tree.qualifiedIdentifier()); if (!checkIfDisallowed(importName, tree.qualifiedIdentifier())) { int separator = importName.lastIndexOf('.'); if (separator != -1) { checkIfDisallowed(importName.substring(0, separator), tree.qualifiedIdentifier()); } } super.visitImport(tree); }
@Override public void visitNode(Tree tree) { ImportTree importTree = (ImportTree) tree; // See RSPEC-2208 : exception with static imports. if (fullQualifiedName(importTree.qualifiedIdentifier()).endsWith(".*") && !importTree.isStatic()) { reportIssue(importTree.qualifiedIdentifier(), "Explicitly import the specific classes needed."); } }
@Override public void visitImport(ImportTree tree) { String importName = ExpressionsHelper.concatenate((ExpressionTree) tree.qualifiedIdentifier()); if (!checkIfDisallowed(importName, tree.qualifiedIdentifier())) { int separator = importName.lastIndexOf('.'); if (separator != -1) { checkIfDisallowed(importName.substring(0, separator), tree.qualifiedIdentifier()); } } super.visitImport(tree); }
@Override public void visitNode(Tree tree) { ImportTree importTree = (ImportTree) tree; // See RSPEC-2208 : exception with static imports. if (fullQualifiedName(importTree.qualifiedIdentifier()).endsWith(".*") && !importTree.isStatic()) { reportIssue(importTree.qualifiedIdentifier(), "Explicitly import the specific classes needed."); } }
@Override public void visitImport(ImportTree tree) { IdentifierTree identifierTree; if (tree.qualifiedIdentifier().is(Tree.Kind.IDENTIFIER)) { identifierTree = (IdentifierTree) tree.qualifiedIdentifier(); } else { identifierTree = ((MemberSelectExpressionTree) tree.qualifiedIdentifier()).identifier(); } // Exclude on demands imports if (!"*".equals(identifierTree.name())) { createSymbol(identifierTree, tree); } super.visitImport(tree); }
@Override public void visitImport(ImportTree tree) { IdentifierTree identifierTree; if (tree.qualifiedIdentifier().is(Tree.Kind.IDENTIFIER)) { identifierTree = (IdentifierTree) tree.qualifiedIdentifier(); } else { identifierTree = ((MemberSelectExpressionTree) tree.qualifiedIdentifier()).identifier(); } // Exclude on demands imports if (!"*".equals(identifierTree.name())) { createSymbol(identifierTree, tree); } super.visitImport(tree); }
@Override public void visitImport(ImportTree tree) { IdentifierTree identifierTree; if (tree.qualifiedIdentifier().is(Tree.Kind.IDENTIFIER)) { identifierTree = (IdentifierTree) tree.qualifiedIdentifier(); } else { identifierTree = ((MemberSelectExpressionTree) tree.qualifiedIdentifier()).identifier(); } // Exclude on demands imports if (!"*".equals(identifierTree.name())) { createSymbol(identifierTree, tree); } super.visitImport(tree); }
@Override public void visitImport(ImportTree tree) { IdentifierTree identifierTree; if (tree.qualifiedIdentifier().is(Tree.Kind.IDENTIFIER)) { identifierTree = (IdentifierTree) tree.qualifiedIdentifier(); } else { identifierTree = ((MemberSelectExpressionTree) tree.qualifiedIdentifier()).identifier(); } // Exclude on demands imports if (!"*".equals(identifierTree.name())) { createSymbol(identifierTree, tree); } super.visitImport(tree); }
@Override public void visitImport(ImportTree tree) { addKind(tree.qualifiedIdentifier(), UastNode.Kind.IMPORT_ENTRY); super.visitImport(tree); }
@Override public void visitNode(Tree tree) { if (!hasSemantic()) { return; } CompilationUnitTree cut = (CompilationUnitTree) tree; cut.types().stream().filter(NOT_EMPTY_STATEMENT).map(t -> ((ClassTree) t).symbol()).forEach(this::checkSymbol); List<ImportTree> imports = cut.imports().stream().filter(NOT_EMPTY_STATEMENT).map(t -> (ImportTree) t).collect(Collectors.toList()); boolean fileContainsStarImport = imports.stream() .filter(it -> it.qualifiedIdentifier().is(Kind.MEMBER_SELECT)) .map(it -> ((MemberSelectExpressionTree) it.qualifiedIdentifier()).identifier()) .anyMatch(i -> "*".equals(i.name())); if(!fileContainsStarImport) { checkImports(imports); } }
@Override public void visitNode(Tree tree) { if (!hasSemantic()) { return; } CompilationUnitTree cut = (CompilationUnitTree) tree; cut.types().stream().filter(NOT_EMPTY_STATEMENT).map(t -> ((ClassTree) t).symbol()).forEach(this::checkSymbol); List<ImportTree> imports = cut.imports().stream().filter(NOT_EMPTY_STATEMENT).map(t -> (ImportTree) t).collect(Collectors.toList()); boolean fileContainsStarImport = imports.stream() .filter(it -> it.qualifiedIdentifier().is(Kind.MEMBER_SELECT)) .map(it -> ((MemberSelectExpressionTree) it.qualifiedIdentifier()).identifier()) .anyMatch(i -> "*".equals(i.name())); if(!fileContainsStarImport) { checkImports(imports); } }
@Override public void visitImport(ImportTree tree) { //reset currentSymbol to default package currentSymbol = symbols.defaultPackage; isStatic = tree.isStatic(); tree.qualifiedIdentifier().accept(this); //Associate symbol only if found. if (currentSymbol.kind < JavaSymbol.ERRONEOUS) { enterSymbol(currentSymbol, tree); } else if (isStatic) { resolved.stream() //add only static fields //TODO accessibility should be checked : package/public .filter(symbol -> Flags.isFlagged(symbol.flags, Flags.STATIC)) //TODO only the first symbol found will be associated with the tree. .forEach(symbol -> enterSymbol(symbol, tree)); } }
@Override public void visitImport(ImportTree tree) { //reset currentSymbol to default package currentSymbol = symbols.defaultPackage; isStatic = tree.isStatic(); tree.qualifiedIdentifier().accept(this); //Associate symbol only if found. if (currentSymbol.kind < JavaSymbol.ERRONEOUS) { enterSymbol(currentSymbol, tree); } else if (isStatic) { resolved.stream() //add only static fields //TODO accessibility should be checked : package/public .filter(symbol -> Flags.isFlagged(symbol.flags, Flags.STATIC)) //TODO only the first symbol found will be associated with the tree. .forEach(symbol -> enterSymbol(symbol, tree)); } }
private void reportIssue(ImportTree importTree) { String importName = ExpressionsHelper.concatenate((ExpressionTree) importTree.qualifiedIdentifier()); if ("java.lang.*".equals(importName)) { context.reportIssue(this, importTree, "Remove this unnecessary import: java.lang classes are always implicitly imported."); } else if (isImportFromSamePackage(importName)) { context.reportIssue(this, importTree, "Remove this unnecessary import: same package classes are always implicitly imported."); } else if (!isImportOnDemand(importName)) { if (isJavaLangImport(importName)) { context.reportIssue(this, importTree, "Remove this unnecessary import: java.lang classes are always implicitly imported."); } else if (isDuplicatedImport(importName)) { context.reportIssue(this, importTree, "Remove this duplicated import."); } else { lineByImportReference.put(importName, importTree); pendingImports.add(importName); } } }
private void reportIssue(ImportTree importTree) { String importName = ExpressionsHelper.concatenate((ExpressionTree) importTree.qualifiedIdentifier()); if ("java.lang.*".equals(importName)) { context.reportIssue(this, importTree, "Remove this unnecessary import: java.lang classes are always implicitly imported."); } else if (isImportFromSamePackage(importName)) { context.reportIssue(this, importTree, "Remove this unnecessary import: same package classes are always implicitly imported."); } else if (!isImportOnDemand(importName)) { if (isJavaLangImport(importName)) { context.reportIssue(this, importTree, "Remove this unnecessary import: java.lang classes are always implicitly imported."); } else if (isDuplicatedImport(importName)) { context.reportIssue(this, importTree, "Remove this duplicated import."); } else { lineByImportReference.put(importName, importTree); pendingImports.add(importName); } } }