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. */
|
/** Abstraction to support various file system operations not in Java. */
|
||||||
public abstract class FS {
|
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 = 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
|
* Auto-detect the appropriate file system abstraction, taking into account
|
||||||
|
@ -77,24 +86,19 @@ public abstract class FS {
|
||||||
* @return detected file system abstraction
|
* @return detected file system abstraction
|
||||||
*/
|
*/
|
||||||
public static FS detect(Boolean cygwinUsed) {
|
public static FS detect(Boolean cygwinUsed) {
|
||||||
if (FS_Win32.detect()) {
|
if (FS_Win32.isWin32()) {
|
||||||
boolean useCygwin = (cygwinUsed == null && FS_Win32_Cygwin.detect())
|
if (cygwinUsed == null)
|
||||||
|| Boolean.TRUE.equals(cygwinUsed);
|
cygwinUsed = Boolean.valueOf(FS_Win32_Cygwin.isCygwin());
|
||||||
|
if (cygwinUsed.booleanValue())
|
||||||
if (useCygwin)
|
|
||||||
return new FS_Win32_Cygwin();
|
return new FS_Win32_Cygwin();
|
||||||
else
|
else
|
||||||
return new FS_Win32();
|
return new FS_Win32();
|
||||||
} else if (FS_POSIX_Java6.detect())
|
} else if (FS_POSIX_Java6.hasExecute())
|
||||||
return new FS_POSIX_Java6();
|
return new FS_POSIX_Java6();
|
||||||
else
|
else
|
||||||
return new FS_POSIX_Java5();
|
return new FS_POSIX_Java5();
|
||||||
}
|
}
|
||||||
|
|
||||||
static {
|
|
||||||
DETECTED = detect(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
private final File userHome;
|
private final File userHome;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -59,7 +59,7 @@ class FS_POSIX_Java6 extends FS_POSIX {
|
||||||
setExecute = needMethod(File.class, "setExecutable", Boolean.TYPE);
|
setExecute = needMethod(File.class, "setExecutable", Boolean.TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static boolean detect() {
|
static boolean hasExecute() {
|
||||||
return canExecute != null && setExecute != null;
|
return canExecute != null && setExecute != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
class FS_Win32 extends FS {
|
class FS_Win32 extends FS {
|
||||||
static boolean detect() {
|
static boolean isWin32() {
|
||||||
final String osDotName = AccessController
|
final String osDotName = AccessController
|
||||||
.doPrivileged(new PrivilegedAction<String>() {
|
.doPrivileged(new PrivilegedAction<String>() {
|
||||||
public String run() {
|
public String run() {
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
class FS_Win32_Cygwin extends FS_Win32 {
|
class FS_Win32_Cygwin extends FS_Win32 {
|
||||||
private static String cygpath;
|
private static String cygpath;
|
||||||
|
|
||||||
static boolean detect() {
|
static boolean isCygwin() {
|
||||||
final String path = AccessController
|
final String path = AccessController
|
||||||
.doPrivileged(new PrivilegedAction<String>() {
|
.doPrivileged(new PrivilegedAction<String>() {
|
||||||
public String run() {
|
public String run() {
|
||||||
|
|
Loading…
Reference in New Issue