aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar carmi <carmi@google.com>2017-05-17 22:56:19 +0200
committerGravatar Dmitry Lomov <dslomov@google.com>2017-05-19 15:08:02 +0200
commit31c6a6188b46008308f6dc2d8af965a5f6c352fe (patch)
tree260bb2016d97dd2cb4df4ff9c6cae7bb65c41b1a /src
parent8dd69b609304bf3f89048dd9446076698c092e1b (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')
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/Package.java17
-rw-r--r--src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternResolverUtil.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/SkylarkFileContentHashTests.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/testutil/BazelPackageBuilderHelperForTesting.java5
-rw-r--r--src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/WorkspaceResolver.java2
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;