Automated conversion to Java 8
With a few manual fixes for readability.
RELNOTES: None.
PiperOrigin-RevId: 160582556
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
index 0b1b86d..ed8af8a 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
@@ -974,14 +974,12 @@
public Builder<TYPE> legacyMandatoryProviders(String... ids) {
return mandatoryProviders(
- Iterables.transform(Arrays.asList(ids),
- new Function<String, SkylarkProviderIdentifier>() {
- @Override
- public SkylarkProviderIdentifier apply(String s) {
- Preconditions.checkNotNull(s);
- return SkylarkProviderIdentifier.forLegacy(s);
- }
- }));
+ Iterables.transform(
+ Arrays.asList(ids),
+ s -> {
+ Preconditions.checkNotNull(s);
+ return SkylarkProviderIdentifier.forLegacy(s);
+ }));
}
public Builder<TYPE> mandatoryProviders(Iterable<SkylarkProviderIdentifier> providers) {
@@ -1014,14 +1012,7 @@
* dependencies through this attribute.
*/
public Builder<TYPE> aspect(NativeAspectClass aspect) {
- Function<Rule, AspectParameters> noParameters =
- new Function<Rule, AspectParameters>() {
- @Override
- public AspectParameters apply(Rule input) {
- return AspectParameters.EMPTY;
- }
- };
- return this.aspect(aspect, noParameters);
+ return this.aspect(aspect, input -> AspectParameters.EMPTY);
}
public Builder<TYPE> aspect(
diff --git a/src/main/java/com/google/devtools/build/lib/packages/AttributeContainer.java b/src/main/java/com/google/devtools/build/lib/packages/AttributeContainer.java
index 80889a9..8622cda 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/AttributeContainer.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/AttributeContainer.java
@@ -226,11 +226,7 @@
setAttributeLocation(index, location);
}
+ // TODO(laurentlb): Delete field and inline it.
public static final Function<RuleClass, AttributeContainer> ATTRIBUTE_CONTAINER_FACTORY =
- new Function<RuleClass, AttributeContainer>() {
- @Override
- public AttributeContainer apply(RuleClass ruleClass) {
- return new AttributeContainer(ruleClass);
- }
- };
+ AttributeContainer::new;
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/BuildType.java b/src/main/java/com/google/devtools/build/lib/packages/BuildType.java
index 6a32c68..a602515 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/BuildType.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/BuildType.java
@@ -290,9 +290,7 @@
Map<Label, List<Object>> convertedFrom = new LinkedHashMap<>();
for (Object original : input.keySet()) {
Label label = LABEL.convert(original, what, context);
- if (!convertedFrom.containsKey(label)) {
- convertedFrom.put(label, new ArrayList<Object>());
- }
+ convertedFrom.computeIfAbsent(label, k -> new ArrayList<Object>());
convertedFrom.get(label).add(original);
}
StringBuilder errorMessage = new StringBuilder();
diff --git a/src/main/java/com/google/devtools/build/lib/packages/GlobCache.java b/src/main/java/com/google/devtools/build/lib/packages/GlobCache.java
index aecf43f..e46bddf 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/GlobCache.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/GlobCache.java
@@ -109,18 +109,19 @@
this.maxDirectoriesToEagerlyVisit = maxDirectoriesToEagerlyVisit;
Preconditions.checkNotNull(locator);
- childDirectoryPredicate = new Predicate<Path>() {
- @Override
- public boolean apply(Path directory) {
- if (directory.equals(packageDirectory)) {
- return true;
- }
- PackageIdentifier subPackageId = PackageIdentifier.create(
- packageId.getRepository(),
- packageId.getPackageFragment().getRelative(directory.relativeTo(packageDirectory)));
- return locator.getBuildFileForPackage(subPackageId) == null;
- }
- };
+ childDirectoryPredicate =
+ directory -> {
+ if (directory.equals(packageDirectory)) {
+ return true;
+ }
+ PackageIdentifier subPackageId =
+ PackageIdentifier.create(
+ packageId.getRepository(),
+ packageId
+ .getPackageFragment()
+ .getRelative(directory.relativeTo(packageDirectory)));
+ return locator.getBuildFileForPackage(subPackageId) == null;
+ };
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunction.java b/src/main/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunction.java
index 9dea0b7..5250554 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunction.java
@@ -15,8 +15,8 @@
import static com.google.devtools.build.lib.syntax.SkylarkType.castMap;
import static java.util.Collections.singleton;
+import static java.util.stream.Collectors.toCollection;
-import com.google.common.base.Function;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
@@ -319,26 +319,18 @@
} else if (BuildType.LABEL_LIST == attrType) {
// Labels are most often used to change the extension,
// e.g. %.foo -> %.java, so we return the basename w/o extension.
- return Sets.newLinkedHashSet(
- Iterables.transform(rule.get(attrName, BuildType.LABEL_LIST),
- new Function<Label, String>() {
- @Override
- public String apply(Label label) {
- return FileSystemUtils.removeExtension(label.getName());
- }
- }));
+ return rule.get(attrName, BuildType.LABEL_LIST)
+ .stream()
+ .map(label -> FileSystemUtils.removeExtension(label.getName()))
+ .collect(toCollection(LinkedHashSet::new));
} else if (BuildType.OUTPUT == attrType) {
Label out = rule.get(attrName, BuildType.OUTPUT);
return singleton(out.getName());
} else if (BuildType.OUTPUT_LIST == attrType) {
- return Sets.newLinkedHashSet(
- Iterables.transform(rule.get(attrName, BuildType.OUTPUT_LIST),
- new Function<Label, String>() {
- @Override
- public String apply(Label label) {
- return label.getName();
- }
- }));
+ return rule.get(attrName, BuildType.OUTPUT_LIST)
+ .stream()
+ .map(Label::getName)
+ .collect(toCollection(LinkedHashSet::new));
}
throw new IllegalArgumentException(
"Don't know how to handle " + attrName + " : " + attrType);
diff --git a/src/main/java/com/google/devtools/build/lib/packages/MakeEnvironment.java b/src/main/java/com/google/devtools/build/lib/packages/MakeEnvironment.java
index becb14c..a208e11 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/MakeEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/MakeEnvironment.java
@@ -18,12 +18,10 @@
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
-
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-
import javax.annotation.Nullable;
/**
@@ -132,11 +130,7 @@
if (varname == null || value == null || platformSetRegexp == null) {
throw new NullPointerException();
}
- LinkedList<Binding> bindings = env.get(varname);
- if (bindings == null) {
- bindings = new LinkedList<>();
- env.put(varname, bindings);
- }
+ LinkedList<Binding> bindings = env.computeIfAbsent(varname, k -> new LinkedList<>());
// push new bindings onto head of list (=> most recent binding is
// definitive):
bindings.addFirst(new Binding(value, platformSetRegexp));
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 91cc477..e5a5598 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
@@ -15,7 +15,6 @@
package com.google.devtools.build.lib.packages;
import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
@@ -483,14 +482,7 @@
/** Returns all rules in the package that match the given rule class. */
public Iterable<Rule> getRulesMatchingRuleClass(final String ruleClass) {
Iterable<Rule> targets = getTargets(Rule.class);
- return Iterables.filter(
- targets,
- new Predicate<Rule>() {
- @Override
- public boolean apply(@Nullable Rule rule) {
- return rule.getRuleClass().equals(ruleClass);
- }
- });
+ return Iterables.filter(targets, rule -> rule.getRuleClass().equals(ruleClass));
}
/**
@@ -1264,9 +1256,7 @@
PathFragment outputFileFragment = PathFragment.create(outputFile.getName());
for (int i = 1; i < outputFileFragment.segmentCount(); i++) {
String prefix = outputFileFragment.subFragment(0, i).toString();
- if (!outputFilePrefixes.containsKey(prefix)) {
- outputFilePrefixes.put(prefix, outputFile);
- }
+ outputFilePrefixes.putIfAbsent(prefix, outputFile);
}
}
targets.put(rule.getName(), rule);
@@ -1460,9 +1450,7 @@
throw conflictingOutputFile(outputFile, (OutputFile) targets.get(prefix));
}
- if (!outputFilePrefixes.containsKey(prefix)) {
- outputFilePrefixes.put(prefix, outputFile);
- }
+ outputFilePrefixes.putIfAbsent(prefix, outputFile);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/RequiredProviders.java b/src/main/java/com/google/devtools/build/lib/packages/RequiredProviders.java
index 24719c6..586b105 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/RequiredProviders.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/RequiredProviders.java
@@ -115,15 +115,9 @@
return true;
}
return satisfies(
- new Predicate<Class<?>>() {
- @Override
- public boolean apply(Class<?> aClass) {
- return advertisedProviderSet.getNativeProviders().contains(aClass);
- }
- },
+ aClass -> advertisedProviderSet.getNativeProviders().contains(aClass),
Predicates.in(advertisedProviderSet.getSkylarkProviders()),
- requiredProviders
- );
+ requiredProviders);
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/packages/SkylarkAspect.java b/src/main/java/com/google/devtools/build/lib/packages/SkylarkAspect.java
index 895afba..26fcd30 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/SkylarkAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/SkylarkAspect.java
@@ -27,7 +27,6 @@
import com.google.devtools.build.lib.util.Preconditions;
import java.util.Arrays;
import java.util.List;
-import javax.annotation.Nullable;
/** A Skylark value that is a result of an 'aspect(..)' function call. */
@SkylarkModule(
@@ -167,37 +166,33 @@
}
public Function<Rule, AspectParameters> getDefaultParametersExtractor() {
- return new Function<Rule, AspectParameters>() {
- @Nullable
- @Override
- public AspectParameters apply(Rule rule) {
- AttributeMap ruleAttrs = RawAttributeMapper.of(rule);
- AspectParameters.Builder builder = new AspectParameters.Builder();
- for (Attribute aspectAttr : attributes) {
- if (!Attribute.isImplicit(aspectAttr.getName())) {
- String param = aspectAttr.getName();
- Attribute ruleAttr = ruleAttrs.getAttributeDefinition(param);
- if (paramAttributes.contains(aspectAttr.getName())) {
- // These are preconditions because if they are false, RuleFunction.call() should
- // already have generated an error.
- Preconditions.checkArgument(ruleAttr != null,
- String.format("Cannot apply aspect %s to %s that does not define attribute '%s'.",
- getName(),
- rule.getTargetKind(),
- param));
- Preconditions.checkArgument(ruleAttr.getType() == Type.STRING,
- String.format("Cannot apply aspect %s to %s with non-string attribute '%s'.",
- getName(),
- rule.getTargetKind(),
- param));
- }
- if (ruleAttr != null && ruleAttr.getType() == aspectAttr.getType()) {
- builder.addAttribute(param, (String) ruleAttrs.get(param, ruleAttr.getType()));
- }
+ return rule -> {
+ AttributeMap ruleAttrs = RawAttributeMapper.of(rule);
+ AspectParameters.Builder builder = new AspectParameters.Builder();
+ for (Attribute aspectAttr : attributes) {
+ if (!Attribute.isImplicit(aspectAttr.getName())) {
+ String param = aspectAttr.getName();
+ Attribute ruleAttr = ruleAttrs.getAttributeDefinition(param);
+ if (paramAttributes.contains(aspectAttr.getName())) {
+ // These are preconditions because if they are false, RuleFunction.call() should
+ // already have generated an error.
+ Preconditions.checkArgument(
+ ruleAttr != null,
+ String.format(
+ "Cannot apply aspect %s to %s that does not define attribute '%s'.",
+ getName(), rule.getTargetKind(), param));
+ Preconditions.checkArgument(
+ ruleAttr.getType() == Type.STRING,
+ String.format(
+ "Cannot apply aspect %s to %s with non-string attribute '%s'.",
+ getName(), rule.getTargetKind(), param));
+ }
+ if (ruleAttr != null && ruleAttr.getType() == aspectAttr.getType()) {
+ builder.addAttribute(param, (String) ruleAttrs.get(param, ruleAttr.getType()));
}
}
- return builder.build();
}
+ return builder.build();
};
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java b/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java
index 4f3598e..a2babbc 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java
@@ -209,22 +209,19 @@
TestTargetUtils.sortTagsBySense(tagFilterList);
final Collection<String> requiredTags = tagLists.first;
final Collection<String> excludedTags = tagLists.second;
- return new Predicate<Target>() {
- @Override
- public boolean apply(Target input) {
- if (requiredTags.isEmpty() && excludedTags.isEmpty()) {
- return true;
- }
-
- if (!(input instanceof Rule)) {
- return false;
- }
- // Note that test_tags are those originating from the XX_test rule,
- // whereas the requiredTags and excludedTags originate from the command
- // line or test_suite rule.
- return TestTargetUtils.testMatchesFilters(((Rule) input).getRuleTags(),
- requiredTags, excludedTags, false);
+ return input -> {
+ if (requiredTags.isEmpty() && excludedTags.isEmpty()) {
+ return true;
}
+
+ if (!(input instanceof Rule)) {
+ return false;
+ }
+ // Note that test_tags are those originating from the XX_test rule,
+ // whereas the requiredTags and excludedTags originate from the command
+ // line or test_suite rule.
+ return TestTargetUtils.testMatchesFilters(
+ ((Rule) input).getRuleTags(), requiredTags, excludedTags, false);
};
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/TestTargetUtils.java b/src/main/java/com/google/devtools/build/lib/packages/TestTargetUtils.java
index 1ab2511..b512850 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/TestTargetUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/TestTargetUtils.java
@@ -43,14 +43,11 @@
* given size.
*/
public static Predicate<Target> testSizeFilter(final Set<TestSize> allowedSizes) {
- return new Predicate<Target>() {
- @Override
- public boolean apply(Target target) {
- if (!(target instanceof Rule)) {
- return false;
- }
- return allowedSizes.contains(TestSize.getTestSize((Rule) target));
+ return target -> {
+ if (!(target instanceof Rule)) {
+ return false;
}
+ return allowedSizes.contains(TestSize.getTestSize((Rule) target));
};
}
@@ -59,14 +56,11 @@
* the given timeout.
**/
public static Predicate<Target> testTimeoutFilter(final Set<TestTimeout> allowedTimeouts) {
- return new Predicate<Target>() {
- @Override
- public boolean apply(Target target) {
- if (!(target instanceof Rule)) {
- return false;
- }
- return allowedTimeouts.contains(TestTimeout.getTestTimeout((Rule) target));
+ return target -> {
+ if (!(target instanceof Rule)) {
+ return false;
}
+ return allowedTimeouts.contains(TestTimeout.getTestTimeout((Rule) target));
};
}
@@ -93,13 +87,10 @@
}
}
- return new Predicate<Target>() {
- @Override
- public boolean apply(Target rule) {
- String ruleLang = TargetUtils.getRuleLanguage(rule);
- return (requiredLangs.isEmpty() || requiredLangs.contains(ruleLang))
- && !excludedLangs.contains(ruleLang);
- }
+ return rule -> {
+ String ruleLang = TargetUtils.getRuleLanguage(rule);
+ return (requiredLangs.isEmpty() || requiredLangs.contains(ruleLang))
+ && !excludedLangs.contains(ruleLang);
};
}