Replace QueryableGraph#getBatch with #getBatchWithFieldHints. This allows alternate graph implementations to optimize how they construct node entries.
--
MOS_MIGRATED_REVID=126932020
diff --git a/src/main/java/com/google/devtools/build/skyframe/QueryableGraph.java b/src/main/java/com/google/devtools/build/skyframe/QueryableGraph.java
index 0419828..2703802 100644
--- a/src/main/java/com/google/devtools/build/skyframe/QueryableGraph.java
+++ b/src/main/java/com/google/devtools/build/skyframe/QueryableGraph.java
@@ -15,6 +15,7 @@
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
+import java.util.EnumSet;
import java.util.Map;
import javax.annotation.Nullable;
@@ -27,9 +28,13 @@
NodeEntry get(SkyKey key);
/**
- * Fetches all the given nodes. Returns a map {@code m} such that, for all {@code k} in
- * {@code keys}, {@code m.get(k).equals(e)} iff {@code get(k) == e} and {@code e != null}, and
- * {@code !m.containsKey(k)} iff {@code get(k) == null}.
+ * Fetches all the given nodes. Returns a map {@code m} such that, for all {@code k} in {@code
+ * keys}, {@code m.get(k).equals(e)} iff {@code get(k) == e} and {@code e != null}, and {@code
+ * !m.containsKey(k)} iff {@code get(k) == null}. The {@code fields} parameter is a hint to the
+ * QueryableGraph implementation that allows it to possibly construct certain fields of the
+ * returned node entries more lazily. Hints may only be applied to nodes in a certain state, like
+ * done nodes.
*/
- Map<SkyKey, NodeEntry> getBatch(Iterable<SkyKey> keys);
+ Map<SkyKey, NodeEntry> getBatchWithFieldHints(
+ Iterable<SkyKey> keys, EnumSet<NodeEntryField> fields);
}