PackageDependenciesNode (PsiPackage aPackage, Module module, ScopeType scopeType) { if (aPackage == null) { return getModuleNode(module, scopeType); } Pair<Module, PsiPackage> descriptor = Pair.create(myShowModules ? module : null, aPackage); PackageNode node = getMap(myModulePackageNodes, scopeType).get(descriptor); if (node != null) return node; node = new PackageNode(aPackage, myFlattenPackages); getMap(myModulePackageNodes, scopeType).put(descriptor, node); if (myFlattenPackages) { getModuleNode(module, scopeType).add(node); } else { getModuleDirNode(aPackage.getParentPackage(), module, scopeType).add(node); } return node; }