Browse Source

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>
stable-0.12
Shawn O. Pearce 14 years ago
parent
commit
2f705ad240
  1. 26
      org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
  2. 2
      org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX_Java6.java
  3. 2
      org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java
  4. 2
      org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java

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

@ -53,7 +53,16 @@ import java.security.PrivilegedAction;
/** 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;
/**

2
org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX_Java6.java

@ -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;
}

2
org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java

@ -53,7 +53,7 @@ import java.util.Arrays;
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() {

2
org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java

@ -53,7 +53,7 @@ import java.util.List;
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…
Cancel
Save