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) {
+ }
}
/**