@NotNull @Override public SdkProperties createCopy() { return new SdkProperties(erlangSdkName); }
@NotNull public String ensureErlangSdkName() throws ErlangSdkNameMissing { String erlangSdkName = this.erlangSdkName; if (erlangSdkName == null) { throw new ErlangSdkNameMissing(); } return erlangSdkName; }
@NotNull private static String sdkPropertiesToErlExePath(@NotNull SdkProperties sdkProperties, @NotNull JpsModule module) throws ErlangSdkNameMissing, FileNotFoundException, AccessDeniedException, LibraryNotFound { String erlangSdkName = sdkProperties.ensureErlangSdkName(); return erlangSdkNameToErlExePath(erlangSdkName, module); }
private JpsSdk<SdkProperties> addElixirSdk(@NotNull JpsSdk erlangSdk) { JpsTypedLibrary<JpsSdk<SdkProperties>> elixirTypedLibrary = myModel .getGlobal() .addSdk("Elixir " + elixirVersion(), elixirSdkHome(), elixirVersion(), Elixir.INSTANCE); HomePath.eachEbinPath(elixirSdkHome(), ebinPath -> elixirTypedLibrary.addRoot( JpsPathUtil.pathToUrl(ebinPath.toAbsolutePath().toString()), JpsOrderRootType.COMPILED ) ); JpsLibrary erlangSdkLibrary = erlangSdk.getParent(); elixirTypedLibrary.getProperties().getSdkProperties().setErlangSdkName(erlangSdkLibrary.getName()); for (JpsLibraryRoot erlangLibraryRoot : erlangSdkLibrary.getRoots(JpsOrderRootType.COMPILED)) { elixirTypedLibrary.addRoot(erlangLibraryRoot.getUrl(), JpsOrderRootType.COMPILED); } return elixirTypedLibrary.getProperties(); }
@NotNull @Override public SdkProperties createDefaultProperties() { return new SdkProperties(null); }
@NotNull @Override public SdkProperties loadProperties(@Nullable Element propertiesElement) { String erlangSdkName = null; if (propertiesElement != null) { @Nullable Attribute erlangSdkNameAttribute = propertiesElement.getAttribute("erlang-sdk-name"); if (erlangSdkNameAttribute != null) { erlangSdkName = erlangSdkNameAttribute.getValue(); } } return new SdkProperties(erlangSdkName); }