diff options
author | Janak Ramakrishnan <janakr@google.com> | 2015-04-21 01:29:54 +0000 |
---|---|---|
committer | Laszlo Csomor <laszlocsomor@google.com> | 2015-04-21 10:58:51 +0000 |
commit | 26cb46590ea077c0428e8d9ccba202f8d1a236e8 (patch) | |
tree | 3aee7b1b08b7634666167cb084764bebc0c0aa8a /src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalValue.java | |
parent | 44d00bfb252abb32f8f0c17b642b47a0f99b06b1 (diff) |
Add the option to match by regexp in RecursiveFilesystemTraversal.
--
MOS_MIGRATED_REVID=91642690
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.java | 22 |
1 files changed, 16 insertions, 6 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 f72792fd08..42b73b510b 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 @@ -29,6 +29,8 @@ import com.google.devtools.build.lib.vfs.RootedPath; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; +import java.util.regex.Pattern; + import javax.annotation.Nullable; /** @@ -132,22 +134,27 @@ public final class RecursiveFilesystemTraversalValue implements SkyValue { */ final boolean skipTestingForSubpackage; + /** A pattern that files must match to be included in this traversal (may be null.) */ + @Nullable + final Pattern pattern; + /** Information to be attached to any error messages that may be reported. */ @Nullable final String errorInfo; public TraversalRequest(RootedPath path, boolean isRootGenerated, PackageBoundaryMode crossPkgBoundaries, boolean skipTestingForSubpackage, - @Nullable String errorInfo) { + @Nullable String errorInfo, @Nullable Pattern pattern) { this.path = path; this.isGenerated = isRootGenerated; this.crossPkgBoundaries = crossPkgBoundaries; this.skipTestingForSubpackage = skipTestingForSubpackage; this.errorInfo = errorInfo; + this.pattern = pattern; } private TraversalRequest duplicate(RootedPath newRoot, boolean newSkipTestingForSubpackage) { return new TraversalRequest(newRoot, isGenerated, crossPkgBoundaries, - newSkipTestingForSubpackage, errorInfo); + newSkipTestingForSubpackage, errorInfo, pattern); } /** Creates a new request to traverse a child element in the current directory (the root). */ @@ -177,20 +184,23 @@ public final class RecursiveFilesystemTraversalValue implements SkyValue { TraversalRequest o = (TraversalRequest) obj; return path.equals(o.path) && isGenerated == o.isGenerated && crossPkgBoundaries == o.crossPkgBoundaries - && skipTestingForSubpackage == o.skipTestingForSubpackage; + && skipTestingForSubpackage == o.skipTestingForSubpackage + && Objects.equal(pattern, o.pattern); } @Override public int hashCode() { - return Objects.hashCode(path, isGenerated, crossPkgBoundaries, skipTestingForSubpackage); + return Objects.hashCode(path, isGenerated, crossPkgBoundaries, skipTestingForSubpackage, + pattern); } @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, skipTestingForSubpackage ? 1 : 0, - crossPkgBoundaries); + + " pkg_boundaries=%s, pattern=%s)", path, isGenerated ? 1 : 0, + skipTestingForSubpackage ? 1 : 0, crossPkgBoundaries, + pattern == null ? "null" : pattern.pattern()); } } |