int (final PackageElement packageElement) { int count = 0; if (getSettings().isFlattenPackages()) { final PsiPackage aPackage = packageElement.getPackage(); final Module module = packageElement.getModule(); final GlobalSearchScope scope = module != null ? GlobalSearchScope.moduleScope(module) : GlobalSearchScope.projectScope(aPackage.getProject()); final PsiDirectory[] directories = aPackage.getDirectories(scope); for (PsiDirectory directory : directories) { Iterator<PsiFile> iterator = myBuilder.getFilesUnderDirectory(directory); while (iterator.hasNext()) { PsiFile psiFile = iterator.next(); if (getStructure().accept(psiFile)) count++; } } } else { Iterator<PsiFile> iterator = getFiles(packageElement); while (iterator.hasNext()) { PsiFile psiFile = iterator.next(); if (getStructure().accept(psiFile)) { count++; } } } return count; }