Browse Source

Merge "Add FS.detect() for detection of file system abstraction."

stable-0.9
Shawn Pearce 14 years ago committed by Code Review
parent
commit
c7e1199b56
  1. 40
      org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java

40
org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java

@ -52,16 +52,44 @@ public abstract class FS {
/** The auto-detected implementation selected for this operating system and JRE. */ /** The auto-detected implementation selected for this operating system and JRE. */
public static final FS DETECTED; public static final FS DETECTED;
static { /**
* Auto-detect the appropriate file system abstraction, taking into account
* the presence of a Cygwin installation on the system. Using jgit in
* combination with Cygwin requires a more elaborate (and possibly slower)
* resolution of file system paths.
*
* @param cygwinUsed
* <ul>
* <li><code>Boolean.TRUE</code> to assume that Cygwin is used in
* combination with jgit</li>
* <li><code>Boolean.FALSE</code> to assume that Cygwin is
* <b>not</b> used with jgit</li>
* <li><code>null</code> to auto-detect whether a Cygwin
* installation is present on the system and in this case assume
* that Cygwin is used</li>
* </ul>
*
* Note: this parameter is only relevant on Windows.
*
* @return detected file system abstraction
*/
public static FS detect(Boolean cygwinUsed) {
if (FS_Win32.detect()) { if (FS_Win32.detect()) {
if (FS_Win32_Cygwin.detect()) boolean useCygwin = (cygwinUsed == null && FS_Win32_Cygwin.detect())
DETECTED = new FS_Win32_Cygwin(); || Boolean.TRUE.equals(cygwinUsed);
if (useCygwin)
return new FS_Win32_Cygwin();
else else
DETECTED = new FS_Win32(); return new FS_Win32();
} else if (FS_POSIX_Java6.detect()) } else if (FS_POSIX_Java6.detect())
DETECTED = new FS_POSIX_Java6(); return new FS_POSIX_Java6();
else else
DETECTED = new FS_POSIX_Java5(); return new FS_POSIX_Java5();
}
static {
DETECTED = detect(null);
} }
private final File userHome; private final File userHome;

Loading…
Cancel
Save