FS: Overload detect() with no arguments
This allows callers to perform the logic that constructed the current FS.DETECTED value. Change-Id: Id8517d131dcc3f675c60b2d935730872695ed1b0 Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
9b941d0172
commit
2f705ad240
|
@ -53,7 +53,16 @@
|
|||
/** Abstraction to support various file system operations not in Java. */
|
||||
public abstract class FS {
|
||||
/** The auto-detected implementation selected for this operating system and JRE. */
|
||||
public static final FS DETECTED;
|
||||
public static final FS DETECTED = detect();
|
||||
|
||||
/**
|
||||
* Auto-detect the appropriate file system abstraction.
|
||||
*
|
||||
* @return detected file system abstraction
|
||||
*/
|
||||
public static FS detect() {
|
||||
return detect(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Auto-detect the appropriate file system abstraction, taking into account
|
||||
|
@ -77,24 +86,19 @@ public abstract class FS {
|
|||
* @return detected file system abstraction
|
||||
*/
|
||||
public static FS detect(Boolean cygwinUsed) {
|
||||
if (FS_Win32.detect()) {
|
||||
boolean useCygwin = (cygwinUsed == null && FS_Win32_Cygwin.detect())
|
||||
|| Boolean.TRUE.equals(cygwinUsed);
|
||||
|
||||
if (useCygwin)
|
||||
if (FS_Win32.isWin32()) {
|
||||
if (cygwinUsed == null)
|
||||
cygwinUsed = Boolean.valueOf(FS_Win32_Cygwin.isCygwin());
|
||||
if (cygwinUsed.booleanValue())
|
||||
return new FS_Win32_Cygwin();
|
||||
else
|
||||
return new FS_Win32();
|
||||
} else if (FS_POSIX_Java6.detect())
|
||||
} else if (FS_POSIX_Java6.hasExecute())
|
||||
return new FS_POSIX_Java6();
|
||||
else
|
||||
return new FS_POSIX_Java5();
|
||||
}
|
||||
|
||||
static {
|
||||
DETECTED = detect(null);
|
||||
}
|
||||
|
||||
private final File userHome;
|
||||
|
||||
/**
|
||||
|
|
|
@ -59,7 +59,7 @@ class FS_POSIX_Java6 extends FS_POSIX {
|
|||
setExecute = needMethod(File.class, "setExecutable", Boolean.TYPE);
|
||||
}
|
||||
|
||||
static boolean detect() {
|
||||
static boolean hasExecute() {
|
||||
return canExecute != null && setExecute != null;
|
||||
}
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
import java.util.List;
|
||||
|
||||
class FS_Win32 extends FS {
|
||||
static boolean detect() {
|
||||
static boolean isWin32() {
|
||||
final String osDotName = AccessController
|
||||
.doPrivileged(new PrivilegedAction<String>() {
|
||||
public String run() {
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
class FS_Win32_Cygwin extends FS_Win32 {
|
||||
private static String cygpath;
|
||||
|
||||
static boolean detect() {
|
||||
static boolean isCygwin() {
|
||||
final String path = AccessController
|
||||
.doPrivileged(new PrivilegedAction<String>() {
|
||||
public String run() {
|
||||
|
|
Loading…
Reference in New Issue