private static final class UnixHolder { private static final Configuration UNIX = Configuration.builder(PathType.unix()) .setRoots("/") .setWorkingDirectory("/work") .setAttributeViews("basic") .setSupportedFeatures(LINKS, SYMBOLIC_LINKS, SECURE_DIRECTORY_STREAM, FILE_CHANNEL) .build(); }
/** * Sets the roots for the file system. * * @throws InvalidPathException if any of the given roots is not a valid path for this builder's * path type * @throws IllegalArgumentException if any of the given roots is a valid path for this builder's * path type but is not a root path with no name elements */ public Builder setRoots(String first, String... more) { List<String> roots = Lists.asList(first, more); for (String root : roots) { PathType.ParseResult parseResult = pathType.parsePath(root); checkArgument(parseResult.isRoot(), "invalid root: %s", root); } this.roots = ImmutableSet.copyOf(roots); return this; }
/** * Sets the path to the working directory for the file system. The working directory must be an * absolute path starting with one of the configured roots. * * @throws InvalidPathException if the given path is not valid for this builder's path type * @throws IllegalArgumentException if the given path is valid for this builder's path type but * is not an absolute path */ public Builder setWorkingDirectory(String workingDirectory) { PathType.ParseResult parseResult = pathType.parsePath(workingDirectory); checkArgument( parseResult.isAbsolute(), "working directory must be an absolute path: %s", workingDirectory); this.workingDirectory = checkNotNull(workingDirectory); return this; }
private static final class WindowsHolder { private static final Configuration WINDOWS = Configuration.builder(PathType.windows()) .setRoots("C:\\") .setWorkingDirectory("C:\\work") .setNameCanonicalNormalization(CASE_FOLD_ASCII) .setPathEqualityUsesCanonicalForm(true) // matches real behavior of WindowsPath .setAttributeViews("basic") .setSupportedFeatures(LINKS, SYMBOLIC_LINKS, FILE_CHANNEL) .build(); }