Java源码示例:com.intellij.psi.PsiImportList
示例1
private Map<String, Set<String>> getFullyQualifiedImportsWithMethods(
final PsiJavaFile javaFile, final Map<String, Set<String>> importVsMethods) {
Map<String, Set<String>> fullyQualifiedImportsWithMethods = new HashMap<>();
PsiImportList importList = javaFile.getImportList();
Collection<PsiImportStatement> importStatements =
PsiTreeUtil.findChildrenOfType(importList, PsiImportStatement.class);
for (PsiImportStatement importStatement : importStatements) {
if (!importStatement.isOnDemand()) {
String qualifiedName = importStatement.getQualifiedName();
if (importVsMethods.containsKey(qualifiedName)) {
fullyQualifiedImportsWithMethods.put(qualifiedName,
importVsMethods.get(qualifiedName));
}
}
}
return fullyQualifiedImportsWithMethods;
}
示例2
private void addImport(PsiElementFactory elementFactory, String fullyQualifiedName){
final PsiFile file = psiClass.getContainingFile();
if (!(file instanceof PsiJavaFile)) {
return;
}
final PsiJavaFile javaFile = (PsiJavaFile)file;
final PsiImportList importList = javaFile.getImportList();
if (importList == null) {
return;
}
// Check if already imported
for (PsiImportStatementBase is : importList.getAllImportStatements()) {
String impQualifiedName = is.getImportReference().getQualifiedName();
if (fullyQualifiedName.equals(impQualifiedName)){
return; // Already imported so nothing neede
}
}
// Not imported yet so add it
importList.add(elementFactory.createImportStatementOnDemand(fullyQualifiedName));
}
示例3
private static boolean hasImport(PsiElement element, String qualifiedName) {
PsiImportList imports = getImports(element);
return imports != null && imports.findSingleClassImportStatement(qualifiedName) != null;
}
示例4
@Nullable
private static PsiImportList getImports(PsiElement element) {
PsiFile file = element.getContainingFile();
return file instanceof PsiJavaFile ? ((PsiJavaFile) file).getImportList() : null;
}