diff --git a/platform/core-api/src/com/intellij/util/PathUtil.java b/platform/core-api/src/com/intellij/util/PathUtil.java index 7723d356c917..a368e8febf4a 100644 --- a/platform/core-api/src/com/intellij/util/PathUtil.java +++ b/platform/core-api/src/com/intellij/util/PathUtil.java @@ -17,11 +17,13 @@ package com.intellij.util; import com.intellij.openapi.application.PathManager; import com.intellij.openapi.util.io.FileUtil; +import com.intellij.openapi.util.io.FileUtilRt; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.LocalFileProvider; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileManager; import com.intellij.util.io.URLUtil; +import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -100,4 +102,14 @@ public class PathUtil { return PathUtilRt.isValidFileName(fileName); } + @Contract("null -> null; !null -> !null") + public static String toSystemIndependentName(@Nullable String path) { + return path == null ? null : FileUtilRt.toSystemIndependentName(path); + } + + + @Contract("null -> null; !null -> !null") + public static String toSystemDependentName(@Nullable String path) { + return path == null ? null : FileUtilRt.toSystemDependentName(path); + } } diff --git a/platform/platform-api/src/com/intellij/ide/browsers/chrome/ChromeSettings.java b/platform/platform-api/src/com/intellij/ide/browsers/chrome/ChromeSettings.java index 1c5141665bd9..b6ca3e7ac44f 100644 --- a/platform/platform-api/src/com/intellij/ide/browsers/chrome/ChromeSettings.java +++ b/platform/platform-api/src/com/intellij/ide/browsers/chrome/ChromeSettings.java @@ -19,6 +19,7 @@ import com.intellij.ide.browsers.BrowserSpecificSettings; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.io.FileUtilRt; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.util.PathUtil; import com.intellij.util.execution.ParametersListUtil; import com.intellij.util.xmlb.annotations.Tag; import org.jetbrains.annotations.NotNull; @@ -58,7 +59,7 @@ public final class ChromeSettings extends BrowserSpecificSettings { } public void setUserDataDirectoryPath(@Nullable String value) { - myUserDataDirectoryPath = FileUtilRt.toSystemIndependentName(StringUtil.nullize(value)); + myUserDataDirectoryPath = PathUtil.toSystemIndependentName(StringUtil.nullize(value)); } public void setUseCustomProfile(boolean useCustomProfile) { diff --git a/platform/platform-api/src/com/intellij/ide/browsers/firefox/FirefoxSettingsConfigurable.java b/platform/platform-api/src/com/intellij/ide/browsers/firefox/FirefoxSettingsConfigurable.java index 3ade83acf3ec..349c396ea116 100644 --- a/platform/platform-api/src/com/intellij/ide/browsers/firefox/FirefoxSettingsConfigurable.java +++ b/platform/platform-api/src/com/intellij/ide/browsers/firefox/FirefoxSettingsConfigurable.java @@ -28,6 +28,7 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.ui.DocumentAdapter; import com.intellij.util.ObjectUtils; +import com.intellij.util.PathUtil; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.Nullable; @@ -87,8 +88,8 @@ public class FirefoxSettingsConfigurable implements Configurable { @Nullable private String getConfiguredProfileIniPath() { - String path = myProfilesIniPathField.getText(); - return myDefaultProfilesIniPath.equals(path) ? null : FileUtilRt.toSystemIndependentName(StringUtil.nullize(path)); + String path = PathUtil.toSystemIndependentName(StringUtil.nullize(myProfilesIniPathField.getText())); + return myDefaultProfilesIniPath.equals(path) ? null : path; } @Nullable diff --git a/platform/platform-impl/src/com/intellij/util/ui/LocalPathCellEditor.java b/platform/platform-impl/src/com/intellij/util/ui/LocalPathCellEditor.java index 220226192ccc..8fac2563e0ca 100644 --- a/platform/platform-impl/src/com/intellij/util/ui/LocalPathCellEditor.java +++ b/platform/platform-impl/src/com/intellij/util/ui/LocalPathCellEditor.java @@ -21,11 +21,11 @@ import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.TextFieldWithBrowseButton; import com.intellij.openapi.util.SystemInfo; -import com.intellij.openapi.util.io.FileUtilRt; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.Consumer; +import com.intellij.util.PathUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -72,7 +72,7 @@ public class LocalPathCellEditor extends AbstractTableCellEditor { @Override public Object getCellEditorValue() { String value = myComponent.getChildComponent().getText(); - return myNormalizePath ? FileUtilRt.toSystemDependentName(StringUtil.nullize(value)) : value; + return myNormalizePath ? PathUtil.toSystemDependentName(StringUtil.nullize(value)) : value; } @Override diff --git a/platform/platform-impl/src/org/jetbrains/io/FileResponses.java b/platform/platform-impl/src/org/jetbrains/io/FileResponses.java index 1d7bd5f1bdfb..14897fd0177c 100644 --- a/platform/platform-impl/src/org/jetbrains/io/FileResponses.java +++ b/platform/platform-impl/src/org/jetbrains/io/FileResponses.java @@ -15,7 +15,6 @@ */ package org.jetbrains.io; -import com.google.gson.annotations.Since; import com.intellij.openapi.util.text.StringUtil; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; diff --git a/platform/util-rt/src/com/intellij/openapi/util/io/FileUtilRt.java b/platform/util-rt/src/com/intellij/openapi/util/io/FileUtilRt.java index 1ad39f37af19..2b6b8de0bc0e 100644 --- a/platform/util-rt/src/com/intellij/openapi/util/io/FileUtilRt.java +++ b/platform/util-rt/src/com/intellij/openapi/util/io/FileUtilRt.java @@ -18,7 +18,10 @@ package com.intellij.openapi.util.io; import com.intellij.openapi.diagnostic.LoggerRt; import com.intellij.openapi.util.SystemInfoRt; import com.intellij.openapi.util.text.StringUtilRt; -import org.jetbrains.annotations.*; +import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.TestOnly; import java.io.*; import java.nio.channels.FileChannel; @@ -81,19 +84,19 @@ public class FileUtilRt { && fileName.regionMatches(!SystemInfoRt.isFileSystemCaseSensitive, extStart, extension, 0, extLen); } - @Contract("null -> null; !null -> !null") - public static String toSystemDependentName(@NonNls @Nullable String fileName) { - return fileName == null ? null : toSystemDependentName(fileName, File.separatorChar); + @NotNull + public static String toSystemDependentName(@NonNls @NotNull String fileName) { + return toSystemDependentName(fileName, File.separatorChar); } - @Contract("null, _ -> null; !null, _ -> !null") - public static String toSystemDependentName(@NonNls @Nullable String fileName, final char separatorChar) { - return fileName == null ? null : fileName.replace('/', separatorChar).replace('\\', separatorChar); + @NotNull + public static String toSystemDependentName(@NonNls @NotNull String fileName, final char separatorChar) { + return fileName.replace('/', separatorChar).replace('\\', separatorChar); } - @Contract("null -> null; !null -> !null") - public static String toSystemIndependentName(@NonNls @Nullable String fileName) { - return fileName == null ? null : fileName.replace('\\', '/'); + @NotNull + public static String toSystemIndependentName(@NonNls @NotNull String fileName) { + return fileName.replace('\\', '/'); } @Nullable diff --git a/platform/util/src/com/intellij/openapi/util/io/FileUtil.java b/platform/util/src/com/intellij/openapi/util/io/FileUtil.java index 922c5b7c9f64..0542b18c7f08 100644 --- a/platform/util/src/com/intellij/openapi/util/io/FileUtil.java +++ b/platform/util/src/com/intellij/openapi/util/io/FileUtil.java @@ -611,13 +611,13 @@ public class FileUtil extends FileUtilRt { return candidate; } - @Contract("null -> null; !null -> !null") - public static String toSystemDependentName(@NonNls @Nullable String aFileName) { + @NotNull + public static String toSystemDependentName(@NonNls @NotNull String aFileName) { return FileUtilRt.toSystemDependentName(aFileName); } - @Contract("null -> null; !null -> !null") - public static String toSystemIndependentName(@NonNls @Nullable String aFileName) { + @NotNull + public static String toSystemIndependentName(@NonNls @NotNull String aFileName) { return FileUtilRt.toSystemIndependentName(aFileName); } diff --git a/xml/impl/src/com/intellij/ide/browsers/BrowserLauncherImpl.java b/xml/impl/src/com/intellij/ide/browsers/BrowserLauncherImpl.java index c6eafc9e8270..3e21ac0efe8e 100644 --- a/xml/impl/src/com/intellij/ide/browsers/BrowserLauncherImpl.java +++ b/xml/impl/src/com/intellij/ide/browsers/BrowserLauncherImpl.java @@ -42,6 +42,7 @@ import com.intellij.openapi.vfs.*; import com.intellij.ui.AppUIUtil; import com.intellij.ui.GuiUtils; import com.intellij.util.ArrayUtil; +import com.intellij.util.PathUtil; import com.intellij.util.io.ZipUtil; import com.intellij.util.ui.OptionsDialog; import org.jetbrains.annotations.NotNull; @@ -389,7 +390,7 @@ final class BrowserLauncherImpl extends BrowserLauncher { @Nullable WebBrowser browser, @Nullable Project project, @NotNull String... additionalParameters) { - return doLaunch(url, browserPath == null && browser != null ? FileUtilRt.toSystemDependentName(browser.getPath()) : browserPath, browser, project, additionalParameters); + return doLaunch(url, browserPath == null && browser != null ? PathUtil.toSystemDependentName(browser.getPath()) : browserPath, browser, project, additionalParameters); } private static boolean doLaunch(@Nullable String url, diff --git a/xml/impl/src/com/intellij/ide/browsers/BrowserSettingsPanel.java b/xml/impl/src/com/intellij/ide/browsers/BrowserSettingsPanel.java index 165d124b1829..e930550a0656 100644 --- a/xml/impl/src/com/intellij/ide/browsers/BrowserSettingsPanel.java +++ b/xml/impl/src/com/intellij/ide/browsers/BrowserSettingsPanel.java @@ -23,11 +23,11 @@ import com.intellij.openapi.options.ShowSettingsUtil; import com.intellij.openapi.ui.ComboBox; import com.intellij.openapi.ui.TextFieldWithBrowseButton; import com.intellij.openapi.util.Comparing; -import com.intellij.openapi.util.io.FileUtilRt; import com.intellij.ui.EnumComboBoxModel; import com.intellij.ui.ListCellRendererWrapper; import com.intellij.ui.TitledSeparator; import com.intellij.util.Function; +import com.intellij.util.PathUtil; import com.intellij.util.ui.ColumnInfo; import com.intellij.util.ui.ListTableModel; import com.intellij.util.ui.LocalPathCellEditor; @@ -59,7 +59,7 @@ final class BrowserSettingsPanel { new EditableColumnInfo("Path") { @Override public String valueOf(ConfigurableWebBrowser item) { - return FileUtilRt.toSystemDependentName(item.getPath()); + return PathUtil.toSystemDependentName(item.getPath()); } @Override diff --git a/xml/impl/src/com/intellij/ide/browsers/ConfigurableWebBrowser.java b/xml/impl/src/com/intellij/ide/browsers/ConfigurableWebBrowser.java index f91704d4089a..d15c59d28581 100644 --- a/xml/impl/src/com/intellij/ide/browsers/ConfigurableWebBrowser.java +++ b/xml/impl/src/com/intellij/ide/browsers/ConfigurableWebBrowser.java @@ -2,8 +2,8 @@ package com.intellij.ide.browsers; import com.intellij.icons.AllIcons; import com.intellij.openapi.util.Comparing; -import com.intellij.openapi.util.io.FileUtilRt; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.util.PathUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -77,7 +77,7 @@ final class ConfigurableWebBrowser extends WebBrowserBase { } public void setPath(@Nullable String value) { - path = FileUtilRt.toSystemIndependentName(StringUtil.nullize(value, true)); + path = PathUtil.toSystemIndependentName(StringUtil.nullize(value)); } @Override