Move ownership of SkyframeBuildView to SkyframeExecutor.

Also move ownership of ArtifactFactory to SkyframeBuildView; simplify the
code.

--
MOS_MIGRATED_REVID=103722228
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
index 92290ac..eb8ec0f 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
@@ -220,8 +220,6 @@
 
   private final ConfiguredRuleClassProvider ruleClassProvider;
 
-  private final ArtifactFactory artifactFactory;
-
   /**
    * A factory class to create the coverage report action. May be null.
    */
@@ -266,23 +264,9 @@
     this.packageManager = skyframeExecutor.getPackageManager();
     this.binTools = binTools;
     this.coverageReportActionFactory = coverageReportActionFactory;
-    this.artifactFactory = new ArtifactFactory(directories.getExecRoot());
     this.ruleClassProvider = ruleClassProvider;
     this.skyframeExecutor = Preconditions.checkNotNull(skyframeExecutor);
-    this.skyframeBuildView =
-        new SkyframeBuildView(
-            new ConfiguredTargetFactory(ruleClassProvider),
-            artifactFactory,
-            skyframeExecutor,
-            new Runnable() {
-              @Override
-              public void run() {
-                clear();
-              }
-            },
-            binTools,
-            ruleClassProvider);
-    skyframeExecutor.setSkyframeBuildView(skyframeBuildView);
+    this.skyframeBuildView = skyframeExecutor.getSkyframeBuildView();
   }
 
   /** Returns the action graph. */
@@ -312,16 +296,8 @@
     skyframeBuildView.setTopLevelHostConfiguration(configurations.getHostConfiguration());
   }
 
-  /**
-   * Clear the graphs of ConfiguredTargets and Artifacts.
-   */
-  @VisibleForTesting
-  public void clear() {
-    artifactFactory.clear();
-  }
-
   public ArtifactFactory getArtifactFactory() {
-    return artifactFactory;
+    return skyframeBuildView.getArtifactFactory();
   }
 
   @VisibleForTesting
@@ -627,7 +603,6 @@
 
       skyframeExecutor.dropConfiguredTargets();
       skyframeCacheWasInvalidated = true;
-      clear();
     }
     skyframeAnalysisWasDiscarded = false;
     this.configurations = configurations;
@@ -741,7 +716,7 @@
       actionsWrapper = coverageReportActionFactory.createCoverageReportActionsWrapper(
           allTargetsToTest,
           baselineCoverageArtifacts,
-          artifactFactory,
+          getArtifactFactory(),
           CoverageReportValue.ARTIFACT_OWNER);
       if (actionsWrapper != null) {
         ImmutableList <Action> actions = actionsWrapper.getActions();
@@ -952,7 +927,7 @@
       realPackageRoots.put(entry.getKey(), root);
     }
     // Source Artifact roots:
-    artifactFactory.setPackageRoots(realPackageRoots);
+    getArtifactFactory().setPackageRoots(realPackageRoots);
 
     // Derived Artifact roots:
     ImmutableList.Builder<Root> roots = ImmutableList.builder();
@@ -965,7 +940,7 @@
       roots.addAll(cfg.getRoots());
     }
 
-    artifactFactory.setDerivedArtifactRoots(roots.build());
+    getArtifactFactory().setDerivedArtifactRoots(roots.build());
   }
 
   /**
@@ -995,7 +970,7 @@
       BuildConfigurationCollection configurations) throws InterruptedException {
     BuildConfiguration config = target.getConfiguration();
     CachingAnalysisEnvironment analysisEnvironment =
-        new CachingAnalysisEnvironment(artifactFactory,
+        new CachingAnalysisEnvironment(getArtifactFactory(),
             new ConfiguredTargetKey(target.getLabel(), config),
             /*isSystemEnv=*/false, config.extendedSanityChecks(), eventHandler,
             /*skyframeEnv=*/null, config.isActionsEnabled(), binTools);
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java b/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java
index bef594b..4c885a3 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java
@@ -103,7 +103,7 @@
     this.errorEventListener = errorEventListener;
     this.skyframeEnv = env;
     this.allowRegisteringActions = allowRegisteringActions;
-    this.binTools = binTools;
+    this.binTools = Preconditions.checkNotNull(binTools);
     middlemanFactory = new MiddlemanFactory(artifactFactory, this);
     artifacts = new HashMap<>();
   }