From cb14c5e7e0a0f623aaf0911295f19caf9dcd6a8e Mon Sep 17 00:00:00 2001 From: Dmitry Lomov Date: Thu, 21 Jan 2016 22:04:01 +0000 Subject: Extract AttributeInfoProvider interface for DependencyFilters. This is in preparation of implementing dependency filtering correctly for aspects. -- MOS_MIGRATED_REVID=112721440 --- .../build/lib/packages/AspectDefinition.java | 3 +- .../build/lib/packages/DependencyFilter.java | 34 +++++++++++++++------- .../google/devtools/build/lib/packages/Rule.java | 14 ++++----- .../pkgcache/CompileOneDependencyTransformer.java | 5 ++-- .../lib/query2/AbstractBlazeQueryEnvironment.java | 3 +- .../devtools/build/lib/query2/LabelVisitor.java | 3 +- .../build/lib/query2/output/OutputFormatter.java | 3 +- .../lib/query2/output/PreciseAspectResolver.java | 3 +- 8 files changed, 43 insertions(+), 25 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java b/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java index 43704f2143..5c905ba4b2 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java +++ b/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java @@ -24,6 +24,7 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.packages.ConfigurationFragmentPolicy.MissingFragmentPolicy; import com.google.devtools.build.lib.packages.NativeAspectClass.NativeAspectFactory; +import com.google.devtools.build.lib.util.BinaryPredicate; import com.google.devtools.build.lib.util.Preconditions; import java.util.Collection; @@ -188,7 +189,7 @@ public final class AspectDefinition { Rule from, Multimap labelBuilder, AspectDefinition aspectDefinition, - DependencyFilter predicate) { + BinaryPredicate predicate) { ImmutableMap attributes = aspectDefinition.getAttributes(); for (Attribute aspectAttribute : attributes.values()) { if (!predicate.apply(from, aspectAttribute)) { diff --git a/src/main/java/com/google/devtools/build/lib/packages/DependencyFilter.java b/src/main/java/com/google/devtools/build/lib/packages/DependencyFilter.java index 6d1b943d41..a5d41ee631 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/DependencyFilter.java +++ b/src/main/java/com/google/devtools/build/lib/packages/DependencyFilter.java @@ -14,6 +14,7 @@ package com.google.devtools.build.lib.packages; import com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition; +import com.google.devtools.build.lib.packages.DependencyFilter.AttributeInfoProvider; import com.google.devtools.build.lib.util.BinaryPredicate; /** @@ -21,13 +22,14 @@ import com.google.devtools.build.lib.util.BinaryPredicate; * blaze query. * Used to implement --[no]implicit_deps, --[no]host_deps etc. */ -public abstract class DependencyFilter implements BinaryPredicate { +public abstract class DependencyFilter + implements BinaryPredicate { /** Dependency predicate that includes all dependencies */ public static final DependencyFilter ALL_DEPS = new DependencyFilter() { @Override - public boolean apply(Rule x, Attribute y) { + public boolean apply(AttributeInfoProvider x, Attribute y) { return true; } }; @@ -35,7 +37,7 @@ public abstract class DependencyFilter implements BinaryPredicate */ -public final class Rule implements Target { +public final class Rule implements Target, DependencyFilter.AttributeInfoProvider { /** Label predicate that allows every label. */ public static final Predicate