aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalValue.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalValue.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalValue.java27
1 files changed, 15 insertions, 12 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalValue.java
index 247e546335..7a1a269808 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalValue.java
@@ -17,6 +17,7 @@ import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Objects;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
+import com.google.devtools.build.lib.actions.FilesetTraversalParams.DirectTraversalRoot;
import com.google.devtools.build.lib.actions.FilesetTraversalParams.PackageBoundaryMode;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
@@ -53,8 +54,7 @@ import javax.annotation.Nullable;
*/
public final class RecursiveFilesystemTraversalValue implements SkyValue {
static final RecursiveFilesystemTraversalValue EMPTY = new RecursiveFilesystemTraversalValue(
- Optional.<ResolvedFile>absent(),
- NestedSetBuilder.<ResolvedFile>emptySet(Order.STABLE_ORDER));
+ Optional.absent(), NestedSetBuilder.emptySet(Order.STABLE_ORDER));
/** The root of the traversal. May only be absent for the {@link #EMPTY} instance. */
private final Optional<ResolvedFile> resolvedRoot;
@@ -110,7 +110,7 @@ public final class RecursiveFilesystemTraversalValue implements SkyValue {
public static final class TraversalRequest {
/** The path to start the traversal from; may be a file, a directory or a symlink. */
- final RootedPath path;
+ final DirectTraversalRoot root;
/**
* Whether the path is in the output tree.
@@ -135,24 +135,25 @@ public final class RecursiveFilesystemTraversalValue implements SkyValue {
/** Information to be attached to any error messages that may be reported. */
@Nullable final String errorInfo;
- public TraversalRequest(RootedPath path, boolean isRootGenerated,
+ public TraversalRequest(DirectTraversalRoot root, boolean isRootGenerated,
PackageBoundaryMode crossPkgBoundaries, boolean skipTestingForSubpackage,
@Nullable String errorInfo) {
- this.path = path;
+ this.root = root;
this.isGenerated = isRootGenerated;
this.crossPkgBoundaries = crossPkgBoundaries;
this.skipTestingForSubpackage = skipTestingForSubpackage;
this.errorInfo = errorInfo;
}
- private TraversalRequest duplicate(RootedPath newRoot, boolean newSkipTestingForSubpackage) {
+ private TraversalRequest duplicate(DirectTraversalRoot newRoot,
+ boolean newSkipTestingForSubpackage) {
return new TraversalRequest(newRoot, isGenerated, crossPkgBoundaries,
newSkipTestingForSubpackage, errorInfo);
}
/** Creates a new request to traverse a child element in the current directory (the root). */
TraversalRequest forChildEntry(RootedPath newPath) {
- return duplicate(newPath, false);
+ return duplicate(DirectTraversalRoot.forRootedPath(newPath), false);
}
/**
@@ -163,7 +164,9 @@ public final class RecursiveFilesystemTraversalValue implements SkyValue {
*/
TraversalRequest forChangedRootPath(Root newRoot) {
return duplicate(
- RootedPath.toRootedPath(newRoot, path.getRootRelativePath()), skipTestingForSubpackage);
+ DirectTraversalRoot.forRootedPath(
+ RootedPath.toRootedPath(newRoot, root.asRootedPath().getRootRelativePath())),
+ skipTestingForSubpackage);
}
@Override
@@ -175,21 +178,21 @@ public final class RecursiveFilesystemTraversalValue implements SkyValue {
return false;
}
TraversalRequest o = (TraversalRequest) obj;
- return path.equals(o.path) && isGenerated == o.isGenerated
+ return root.equals(o.root) && isGenerated == o.isGenerated
&& crossPkgBoundaries == o.crossPkgBoundaries
&& skipTestingForSubpackage == o.skipTestingForSubpackage;
}
@Override
public int hashCode() {
- return Objects.hashCode(path, isGenerated, crossPkgBoundaries, skipTestingForSubpackage);
+ return Objects.hashCode(root, isGenerated, crossPkgBoundaries, skipTestingForSubpackage);
}
@Override
public String toString() {
return String.format(
"TraversalParams(root=%s, is_generated=%d, skip_testing_for_subpkg=%d,"
- + " pkg_boundaries=%s)", path, isGenerated ? 1 : 0,
+ + " pkg_boundaries=%s)", root, isGenerated ? 1 : 0,
skipTestingForSubpackage ? 1 : 0, crossPkgBoundaries);
}
}
@@ -660,7 +663,7 @@ public final class RecursiveFilesystemTraversalValue implements SkyValue {
* <p>The object stores things such as the absolute path of the file or symlink, its exact type
* and, if it's a symlink, the resolved and unresolved link target paths.
*/
- public static interface ResolvedFile {
+ public interface ResolvedFile {
/** Type of the entity under {@link #getPath()}. */
FileType getType();