ModelUtils { @Nonnull public static File toFile(@Nonnull final URI uri) { final List<String> pathItems = new ArrayList<String>(); final String authority = uri.getAuthority(); if (authority != null && !authority.isEmpty()) { pathItems.add(authority); } final String[] splittedPath = uri.getPath().split("\\/"); boolean separator = false; if (splittedPath.length == 0) { separator = true; } else { for (final String s : splittedPath) { if (!s.isEmpty()) { pathItems.add(separator ? File.separatorChar + s : s); separator = false; } else { separator = true; } } } if (separator) { pathItems.add(File.separator); } final String[] fullArray = pathItems.toArray(new String[pathItems.size()]); final String[] next = Arrays.copyOfRange(fullArray, 1, fullArray.length); return Paths.get(fullArray[0], next).toFile(); } private  ModelUtils(); static int calcCharsOnStart(final char chr, @Nonnull final String text); static boolean onlyFromChar(@Nonnull final String line, final char chr); @Nonnull @MustNotContainNull static Object[] joinArrays(@Nonnull @MustNotContainNull final Object[]... arrs); @Nonnull static String makePreBlock(@Nonnull final String text); @Nonnull static String escapeTextForPreBlock(@Nonnull final String text); @Nonnull static String makeMDCodeBlock(@Nonnull final String text); @Nonnull static String escapeMarkdownStr(@Nonnull final String text); static int calcMaxLengthOfBacktickQuotesSubstr(@Nullable final String text); static void writeChar(@Nonnull final Appendable out, final char chr, final int times); @Nonnull static String unescapeMarkdownStr(@Nonnull final String text); @Nonnull static String makeShortTextVersion(@Nonnull String text, final int maxLength); static int countLines(@Nonnull final String text); @Nonnull @MustNotContainNull static String[] breakToLines(@Nonnull final String text); @Nonnull static String makeQueryStringForURI(@Nullable final Properties properties); @Nonnull static Properties extractQueryPropertiesFromURI(@Nonnull final URI uri); @Nonnull static String encodeForURI(@Nonnull final String s); @Nullable static File makeFileForPath(@Nullable final String path); @Nonnull static String escapeURIPath(@Nonnull final String text); @Nonnull static String removeISOControls(@Nonnull final String text); @Nullable static URI toURI(@Nullable final Path path); @Nonnull static File toFile(@Nonnull final URI uri); static final Comparator<String> STRING_COMPARATOR; }
@Test public void testToFile() throws Exception{ if (SystemUtils.IS_OS_WINDOWS) assertEquals("P:\\Some text document.txt",new MMapURI("file: else assertEquals("/Some text document.txt",new MMapURI("file: }