Make Metadata an interface for FileArtifactValue
Replace all previous uses of Metadata with FileArtifactValue (or a simple inner
class in the case of ActionCacheChecker.CONSTANT_METADATA).
Care was taken to make the equals method obey the equals contract, even in the
presence of multiple implementations.
PiperOrigin-RevId: 160115080
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java
index 5a132c3..783899a 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java
@@ -61,9 +61,7 @@
Map<String, Metadata> digestBuilder =
Maps.newHashMapWithExpectedSize(childFileValues.size());
for (Map.Entry<TreeFileArtifact, FileArtifactValue> e : childFileValues.entrySet()) {
- digestBuilder.put(
- e.getKey().getParentRelativePath().getPathString(),
- new Metadata(e.getValue().getDigest()));
+ digestBuilder.put(e.getKey().getParentRelativePath().getPathString(), e.getValue());
}
return new TreeArtifactValue(
@@ -76,7 +74,7 @@
}
Metadata getMetadata() {
- return new Metadata(digest.clone());
+ return getSelfData();
}
Set<PathFragment> getChildPaths() {