@NotNull public static ProjectJdkImpl createSdk( @NotNull Sdk[] allSdks, @NotNull VirtualFile homeDir, SdkType sdkType, @Nullable SdkAdditionalData additionalData, @Nullable String customSdkSuggestedName) { final List<Sdk> sdksList = Arrays.asList(allSdks); String sdkPath = sdkType.sdkPath(homeDir); final String sdkName = customSdkSuggestedName == null ? createUniqueSdkName(sdkType, sdkPath, sdksList) : createUniqueSdkName(customSdkSuggestedName, sdksList); ProjectJdkImpl sdk = new ProjectJdkImpl(sdkName, sdkType); if (additionalData != null) { // additional initialization. // E.g. some ruby sdks must be initialized before // setupSdkPaths() method invocation sdk.setSdkAdditionalData(additionalData); } sdk.setHomePath(sdkPath); return sdk; }