Browse Source

Merge "FS: Allow userHome to be set and cached"

tags/v0.12.1
Chris Aniszczyk 13 years ago
parent
commit
786707fdfe
1 changed files with 21 additions and 3 deletions
  1. 21
    3
      org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java

+ 21
- 3
org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java View File

@@ -99,7 +99,7 @@ public abstract class FS {
return new FS_POSIX_Java5();
}

private final File userHome;
private volatile Holder<File> userHome;

private volatile Holder<File> gitPrefix;

@@ -107,7 +107,7 @@ public abstract class FS {
* Constructs a file system abstraction.
*/
protected FS() {
this.userHome = userHomeImpl();
// Do nothing by default.
}

/**
@@ -182,7 +182,25 @@ public abstract class FS {
* @return the user's home directory; null if the user does not have one.
*/
public File userHome() {
return userHome;
Holder<File> p = userHome;
if (p == null) {
p = new Holder<File>(userHomeImpl());
userHome = p;
}
return p.value;
}

/**
* Set the user's home directory location.
*
* @param path
* the location of the user's preferences; null if there is no
* home directory for the current user.
* @return {@code this}.
*/
public FS setUserHome(File path) {
userHome = new Holder<File>(path);
return this;
}

/**

Loading…
Cancel
Save