Add a hook to Package.Builder.Helper that gets called by PackageFunction after the Package is fully loaded.

--
MOS_MIGRATED_REVID=124260910
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java
index cbfeb5b..44d9e30 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Package.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java
@@ -691,14 +691,23 @@
     return b;
   }
 
-  /** A builder for {@link Package} objects. Only intended to be used by {@link PackageFactory}. */
+  /**
+   * A builder for {@link Package} objects. Only intended to be used by {@link PackageFactory} and
+   * {@link com.google.devtools.build.lib.skyframe.PackageFunction}.
+   */
   public static class Builder {
     public static interface Helper {
       /**
        * Returns a fresh {@link Package} instance that a {@link Builder} will internally mutate
-       * during package loading.
+       * during package loading. Called by {@link PackageFactory}.
        */
       Package createFreshPackage(PackageIdentifier packageId, String runfilesPrefix);
+
+      /**
+       * Called after {@link com.google.devtools.build.lib.skyframe.PackageFunction} is completely
+       * done loading the given {@link Package}.
+       */
+      void onLoadingComplete(Package pkg);
     }
 
     /** {@link Helper} that simply calls the {@link Package} constructor. */
@@ -712,6 +721,10 @@
       public Package createFreshPackage(PackageIdentifier packageId, String runfilesPrefix) {
         return new Package(packageId, runfilesPrefix);
       }
+
+      @Override
+      public void onLoadingComplete(Package pkg) {
+      }
     }
 
     /**