int () { final String contentEntryPath = myBuilder.getBaseProjectPath(); int hash = contentEntryPath != null? contentEntryPath.hashCode() : 1; for (DetectedProjectRoot root : myBuilder.getProjectRoots(myDetector)) { hash = 31 * hash + root.getDirectory().hashCode(); } final List<LibraryDescriptor> libs = myProjectDescriptor.getLibraries(); for (LibraryDescriptor lib : libs) { final Collection<File> files = lib.getJars(); for (File file : files) { hash = 31 * hash + file.hashCode(); } } return hash; }