diff options
author | carmi <carmi@google.com> | 2017-05-17 22:56:19 +0200 |
---|---|---|
committer | Dmitry Lomov <dslomov@google.com> | 2017-05-19 15:08:02 +0200 |
commit | 31c6a6188b46008308f6dc2d8af965a5f6c352fe (patch) | |
tree | 260bb2016d97dd2cb4df4ff9c6cae7bb65c41b1a /src | |
parent | 8dd69b609304bf3f89048dd9446076698c092e1b (diff) |
Expose the target map from Package.
This doesn't really expose new information, because one can iterate over the existing getTargets() and recreate the map.
Moreover, the map is immutable, so there's no risk in returning it to the user.
RELNOTES: None
PiperOrigin-RevId: 156349797
Diffstat (limited to 'src')
6 files changed, 13 insertions, 17 deletions
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 1556dcb141..3e0ec37f1e 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 @@ -114,10 +114,8 @@ public class Package { */ private MakeEnvironment makeEnv; - /** - * The collection of all targets defined in this package, indexed by name. - */ - protected Map<String, Target> targets; + /** The collection of all targets defined in this package, indexed by name. */ + protected ImmutableSortedKeyMap<String, Target> targets; /** * Default visibility for rules that do not specify it. @@ -436,16 +434,13 @@ public class Package { return events; } - /** - * Returns an (immutable, unordered) view of all the targets belonging to this package. - */ - public Collection<Target> getTargets() { - return getTargets(targets); + /** Returns an (immutable, unordered) view of all the targets belonging to this package. */ + public ImmutableSortedKeyMap<String, Target> getTargets() { + return targets; } /** - * Common getTargets implementation, accessible by both {@link Package} and - * {@link Package.Builder}. + * Common getTargets implementation, accessible by {@link Package.Builder}. */ private static Collection<Target> getTargets(Map<String, Target> targetMap) { return Collections.unmodifiableCollection(targetMap.values()); diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternResolverUtil.java b/src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternResolverUtil.java index d12b3ac5b5..84a1fc7e73 100644 --- a/src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternResolverUtil.java +++ b/src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternResolverUtil.java @@ -41,7 +41,7 @@ public final class TargetPatternResolverUtil { public static ResolvedTargets<Target> resolvePackageTargets(Package pkg, FilteringPolicy policy) { ResolvedTargets.Builder<Target> builder = ResolvedTargets.builder(); - for (Target target : pkg.getTargets()) { + for (Target target : pkg.getTargets().values()) { if (policy.shouldRetain(target, false)) { builder.add(target); } diff --git a/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java b/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java index 1cd14030c3..007828af53 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java +++ b/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java @@ -87,7 +87,7 @@ public class PreciseAspectResolver implements AspectResolver { Set<PackageIdentifier> dependentPackages = new LinkedHashSet<>(); // First compute with packages can possibly affect the aspect attributes of this package: // Iterate over all rules... - for (Target target : pkg.getTargets()) { + for (Target target : pkg.getTargets().values()) { if (!(target instanceof Rule)) { continue; diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkFileContentHashTests.java b/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkFileContentHashTests.java index 03d7c15b93..59a68c50d7 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkFileContentHashTests.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkFileContentHashTests.java @@ -177,7 +177,7 @@ public class SkylarkFileContentHashTests extends BuildViewTestCase { SkyframeExecutorTestUtils.evaluate( getSkyframeExecutor(), pkgLookupKey, /*keepGoing=*/ false, reporter); assertFalse(result.hasError()); - Collection<Target> targets = result.get(pkgLookupKey).getPackage().getTargets(); + Collection<Target> targets = result.get(pkgLookupKey).getPackage().getTargets().values(); for (Target target : targets) { if (target.getName().equals(name)) { return ((Rule) target) diff --git a/src/test/java/com/google/devtools/build/lib/testutil/BazelPackageBuilderHelperForTesting.java b/src/test/java/com/google/devtools/build/lib/testutil/BazelPackageBuilderHelperForTesting.java index 21f20cfb16..946ece8cee 100644 --- a/src/test/java/com/google/devtools/build/lib/testutil/BazelPackageBuilderHelperForTesting.java +++ b/src/test/java/com/google/devtools/build/lib/testutil/BazelPackageBuilderHelperForTesting.java @@ -88,9 +88,10 @@ public class BazelPackageBuilderHelperForTesting implements Package.Builder.Help throw new IllegalStateException(e); } ImmutableSet<Label> targetsInPkg = - ImmutableSet.copyOf(Iterables.transform(pkg.getTargets(), TARGET_TO_LABEL)); + ImmutableSet.copyOf(Iterables.transform(pkg.getTargets().values(), TARGET_TO_LABEL)); ImmutableSet<Label> targetsInNewlyLoadedPkg = - ImmutableSet.copyOf(Iterables.transform(newlyLoadedPkg.getTargets(), TARGET_TO_LABEL)); + ImmutableSet.copyOf( + Iterables.transform(newlyLoadedPkg.getTargets().values(), TARGET_TO_LABEL)); if (!targetsInPkg.equals(targetsInNewlyLoadedPkg)) { throw new IllegalStateException(String.format( "The Package for %s had a different set of targets (<targetsInPkg> - " diff --git a/src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/WorkspaceResolver.java b/src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/WorkspaceResolver.java index bbf1a878df..97032b6e55 100644 --- a/src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/WorkspaceResolver.java +++ b/src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/WorkspaceResolver.java @@ -98,7 +98,7 @@ public class WorkspaceResolver { */ public void resolveTransitiveDependencies(Package externalPackage) { Location location = Location.fromFile(externalPackage.getFilename()); - for (Target target : externalPackage.getTargets()) { + for (Target target : externalPackage.getTargets().values()) { // Targets are //external:foo. if (target.getTargetKind().startsWith("maven_jar ")) { RepositoryName repositoryName; |