diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidDataConverter.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/AndroidDataConverter.java | 41 |
1 files changed, 13 insertions, 28 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDataConverter.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDataConverter.java index 5aaf6cad99..28d242c033 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDataConverter.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDataConverter.java @@ -16,7 +16,6 @@ package com.google.devtools.build.lib.rules.android; import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.CommandLineItem.ParametrizedMapFn; -import com.google.devtools.build.lib.analysis.actions.CustomCommandLine; import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.VectorArg; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.collect.nestedset.NestedSet; @@ -26,6 +25,7 @@ import java.util.Objects; import java.util.function.Consumer; import java.util.function.Function; import java.util.stream.Collectors; +import javax.annotation.Nullable; /** * Factory for functions to convert a {@code T} to a commandline argument. Uses a certain convention @@ -42,7 +42,7 @@ public class AndroidDataConverter<T> extends ParametrizedMapFn<T> { .withRoots(MergableAndroidData::getResourceRoots) .withRoots(MergableAndroidData::getAssetRoots) .withLabel(MergableAndroidData::getLabel) - .withArtifact(MergableAndroidData::getSymbols) + .maybeWithArtifact(MergableAndroidData::getSymbols) .build(); /** Indicates the type of joiner between options expected by the command line. */ @@ -119,14 +119,6 @@ public class AndroidDataConverter<T> extends ParametrizedMapFn<T> { return new Builder<>(joinerType); } - public void addDepsToCommandLine( - CustomCommandLine.Builder cmdBuilder, - NestedSet<? extends T> direct, - NestedSet<? extends T> transitive) { - cmdBuilder.addAll("--data", getVectorArg(transitive)); - cmdBuilder.addAll("--directData", getVectorArg(direct)); - } - public VectorArg<String> getVectorArg(NestedSet<? extends T> values) { return VectorArg.join(joinerType.listSeparator).each(values).mapped(this); } @@ -145,31 +137,24 @@ public class AndroidDataConverter<T> extends ParametrizedMapFn<T> { } Builder<T> withRoots(Function<T, ImmutableList<PathFragment>> rootsFunction) { - return with(new Function<T, String>() { - @Override - public String apply(T t) { - return rootsToString(rootsFunction.apply(t)); - } - }); + return with(t -> rootsToString(rootsFunction.apply(t))); } Builder<T> withArtifact(Function<T, Artifact> artifactFunction) { - return with(new Function<T, String>() { - @Override - public String apply(T t) { - return artifactFunction.apply(t).getExecPathString(); - } - }); + return with(t -> artifactFunction.apply(t).getExecPathString()); + } + + Builder<T> maybeWithArtifact(Function<T, Artifact> nullableArtifactFunction) { + return with( + t -> { + @Nullable Artifact artifact = nullableArtifactFunction.apply(t); + return artifact == null ? "" : artifact.getExecPathString(); + }); } Builder<T> withLabel(Function<T, Label> labelFunction) { // Escape labels, since they are known to contain separating characters (specifically, ':'). - return with(new Function<T, String>() { - @Override - public String apply(T t) { - return joinerType.escape(labelFunction.apply(t).toString()); - } - }); + return with(t -> joinerType.escape(labelFunction.apply(t).toString())); } Builder<T> with(Function<T, String> stringFunction) { |