Remove references to MiddlemanType.AGGREGATING_MIDDLEMAN.

Replace some occurrences with RUNFILES_MIDDLEMAN, and remove code where applicable.

PiperOrigin-RevId: 382262465
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RunfilesArtifactValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/RunfilesArtifactValue.java
index 5d78d76..afe3c78 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RunfilesArtifactValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RunfilesArtifactValue.java
@@ -1,4 +1,4 @@
-// Copyright 2018 The Bazel Authors. All rights reserved.
+// Copyright 2014 The Bazel Authors. All rights reserved.
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -13,17 +13,73 @@
 // limitations under the License.
 package com.google.devtools.build.lib.skyframe;
 
+import com.google.common.base.MoreObjects;
+import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.actions.FileArtifactValue;
 import com.google.devtools.build.lib.util.Pair;
+import com.google.devtools.build.skyframe.SkyValue;
+import java.util.Collection;
 
 /** The artifacts behind a runfiles middleman. */
-final class RunfilesArtifactValue extends AggregatingArtifactValue {
+class RunfilesArtifactValue implements SkyValue {
+  private final ImmutableList<Pair<Artifact, FileArtifactValue>> fileInputs;
+  private final ImmutableList<Pair<Artifact, TreeArtifactValue>> directoryInputs;
+  private final FileArtifactValue metadata;
+
   RunfilesArtifactValue(
       ImmutableList<Pair<Artifact, FileArtifactValue>> fileInputs,
       ImmutableList<Pair<Artifact, TreeArtifactValue>> directoryInputs,
       FileArtifactValue metadata) {
-    super(fileInputs, directoryInputs, metadata);
+    this.fileInputs = Preconditions.checkNotNull(fileInputs);
+    this.directoryInputs = Preconditions.checkNotNull(directoryInputs);
+    this.metadata = Preconditions.checkNotNull(metadata);
+  }
+
+  /** Returns the none tree artifacts that this artifact expands to, together with their data. */
+  Collection<Pair<Artifact, FileArtifactValue>> getFileArtifacts() {
+    return fileInputs;
+  }
+
+  /**
+   * Returns the tree artifacts that this artifact expands to, together with the information to
+   * which artifacts the tree artifacts expand to.
+   */
+  Collection<Pair<Artifact, TreeArtifactValue>> getTreeArtifacts() {
+    return directoryInputs;
+  }
+
+  /** Returns the data of the artifact for this value, as computed by the action cache checker. */
+  FileArtifactValue getMetadata() {
+    return metadata;
+  }
+
+  @SuppressWarnings("EqualsGetClass") // RunfilesArtifactValue not equal to Aggregating.
+  @Override
+  public boolean equals(Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    RunfilesArtifactValue that = (RunfilesArtifactValue) o;
+    return metadata.equals(that.metadata)
+        && fileInputs.equals(that.fileInputs)
+        && directoryInputs.equals(that.directoryInputs);
+  }
+
+  @Override
+  public int hashCode() {
+    return 31 * 31 * directoryInputs.hashCode() + 31 * fileInputs.hashCode() + metadata.hashCode();
+  }
+
+  @Override
+  public String toString() {
+    return MoreObjects.toStringHelper(this)
+        .add("fileInputs", fileInputs)
+        .add("directoryInputs", directoryInputs)
+        .toString();
   }
 }