@NotNull private static Sdk createMockSdk(@NotNull String version) { String homePath = new File("testData/mockSdk-" + version + "/").getAbsolutePath(); GoSdkType sdkType = GoSdkType.getInstance(); ProjectJdkImpl sdk = new ProjectJdkImpl("Go " + version, sdkType, homePath, version); sdkType.setupSdkPaths(sdk); sdk.setVersionString(version); return sdk; }
@TestOnly @NotNull public static Sdk createMockSdk(@NotNull String sdkHome, @NotNull Release version) { getInstance().mySdkHomeToReleaseCache.put(getVersionCacheKey(sdkHome), version); // we'll not try to detect sdk version in tests environment Sdk sdk = new ProjectJdkImpl(getDefaultSdkName(sdkHome, version), getInstance()); SdkModificator sdkModificator = sdk.getSdkModificator(); sdkModificator.setHomePath(sdkHome); sdkModificator.setVersionString(getVersionString(version));// must be set after home path, otherwise setting home path clears the version string sdkModificator.commitChanges(); configureSdkPaths(sdk); return sdk; }
@Nullable private static Sdk createDefaultErlangSdk(@NotNull ProjectJdkTable projectJdkTable, @NotNull SdkType erlangSdkType, @NotNull String homePath) { String sdkName = erlangSdkType.suggestSdkName("Default " + erlangSdkType.getName(), homePath); ProjectJdkImpl projectJdkImpl = new ProjectJdkImpl(sdkName, erlangSdkType); projectJdkImpl.setHomePath(homePath); erlangSdkType.setupSdkPaths(projectJdkImpl); final Sdk erlangSdk; if (projectJdkImpl.getVersionString() != null) { ApplicationManager.getApplication().invokeAndWait( () -> ApplicationManager.getApplication().runWriteAction(() -> projectJdkTable.addJdk(projectJdkImpl) ), NON_MODAL ); erlangSdk = projectJdkImpl; } else { erlangSdk = null; } return erlangSdk; }
String sdkHome = sdkType.adjustSelectedSdkHome(sdk.getHomePath()); if (sdkType.isValidSdkHome(sdkHome)) { ProjectJdkImpl newSdk = new ProjectJdkImpl(sdk.getName(), sdkType, sdkHome, sdkType.getVersionString(sdkHome)); sdkType.setupSdkPaths(newSdk); sdksToAdd.add(newSdk);
@Override public void loadState(@NotNull Element element) { myInterpretersList.clear(); for (Element child : element.getChildren(PERL)) { ProjectJdkImpl sdk = new ProjectJdkImpl(null, null); sdk.readExternal(child, this); myInterpretersList.add(sdk); } }