RESULT_TYPE (@NotNull MavenGeneralSettings generalSettings, @NotNull VirtualFile projectFile, @Nullable MavenParentDesc parentDesc) { VirtualFile superPom = MavenUtil.getEffectiveSuperPomWithNoRespectToWrapper(myProject); if (superPom == null || projectFile.equals(superPom)) return null; RESULT_TYPE result = null; if (parentDesc == null) { return processSuperParent(superPom); } VirtualFile parentFile = findManagedFile(parentDesc.getParentId()); if (parentFile != null) { result = processManagedParent(parentFile); } if (result == null && Strings.isEmpty(parentDesc.getParentRelativePath())) { result = findInLocalRepository(generalSettings, parentDesc); if (result == null) { parentDesc = new MavenParentDesc(parentDesc.getParentId(), DEFAULT_RELATIVE_PATH); } } if (result == null && projectFile.getParent() != null) { parentFile = projectFile.getParent().findFileByRelativePath(parentDesc.getParentRelativePath()); if (parentFile != null && parentFile.isDirectory()) { parentFile = parentFile.findFileByRelativePath(MavenConstants.POM_XML); } if (parentFile != null) { result = processRelativeParent(parentFile); } } if (result == null) { result = findInLocalRepository(generalSettings, parentDesc); } return result; }