コード例 #1
0
 @Nullable
 public static ExternalPackage getExternalPackage(Environment env)
     throws RepositoryFunctionException {
   SkyKey packageKey = PackageValue.key(ExternalPackage.PACKAGE_IDENTIFIER);
   PackageValue packageValue;
   try {
     packageValue = (PackageValue) env.getValueOrThrow(packageKey, NoSuchPackageException.class);
   } catch (NoSuchPackageException e) {
     throw new RepositoryFunctionException(
         new BuildFileNotFoundException(
             ExternalPackage.PACKAGE_IDENTIFIER, "Could not load //external package"),
         Transience.PERSISTENT);
   }
   if (packageValue == null) {
     return null;
   }
   ExternalPackage externalPackage = (ExternalPackage) packageValue.getPackage();
   if (externalPackage.containsErrors()) {
     throw new RepositoryFunctionException(
         new BuildFileContainsErrorsException(
             ExternalPackage.PACKAGE_IDENTIFIER, "Could not load //external package"),
         Transience.PERSISTENT);
   }
   return externalPackage;
 }