Rollback of commit a0eefb52f529b73c6cb92f0a762853646ea2eae6.
*** Reason for rollback ***
Rolling forward with the restored logic to avoid stat calls on injected Metadata.
*** Original change description ***
Automated [] rollback of commit df03e10f6552566982399b8779fe7bc7a17d75dc.
--
MOS_MIGRATED_REVID=114447944
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionInputHelper.java b/src/main/java/com/google/devtools/build/lib/actions/ActionInputHelper.java
index 8bceb9a..4471c4c 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ActionInputHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ActionInputHelper.java
@@ -18,6 +18,7 @@
import com.google.common.base.Function;
import com.google.common.base.Functions;
import com.google.common.collect.Collections2;
+import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.actions.Artifact.ArtifactExpander;
import com.google.devtools.build.lib.util.Preconditions;
@@ -26,6 +27,7 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import java.util.Set;
/**
* Helper utility to create ActionInput instances.
@@ -158,7 +160,7 @@
});
}
- /** Returns an Collection of ArtifactFiles with the given parent and parent relative paths. */
+ /** Returns an Collection of ArtifactFiles with the given parent and parent-relative paths. */
public static Collection<ArtifactFile> asArtifactFiles(
final Artifact parent, Collection<? extends PathFragment> parentRelativePaths) {
Preconditions.checkState(parent.isTreeArtifact(),
@@ -172,6 +174,20 @@
});
}
+ /** Returns a Set of ArtifactFiles with the given parent and parent relative paths. */
+ public static Set<ArtifactFile> asArtifactFiles(
+ final Artifact parent, Set<? extends PathFragment> parentRelativePaths) {
+ Preconditions.checkState(parent.isTreeArtifact(),
+ "Given parent %s must be a TreeArtifact", parent);
+
+ ImmutableSet.Builder<ArtifactFile> builder = ImmutableSet.builder();
+ for (PathFragment path : parentRelativePaths) {
+ builder.add(artifactFile(parent, path));
+ }
+
+ return builder.build();
+ }
+
/**
* Expands middleman artifacts in a sequence of {@link ActionInput}s.
*