diff options
author | tomlu <tomlu@google.com> | 2018-01-25 12:31:53 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-01-25 12:33:49 -0800 |
commit | 6e10efac41ea0f85130585d44df2f0565ea8d6fa (patch) | |
tree | 74363aa2b367b611d4ceba71cbcb55672d1148ca /src/main/java/com/google/devtools/build/lib/cmdline | |
parent | eb0150b5e3b95d011e99e6f531c962831beaa109 (diff) |
Add CommandLineItem interface.
This interface makes it clearer in the type system exactly how items that go into a CustomCommandLine are turned into strings.
It is a preparatory change to allow command line fingerprints to be more cheaply calculated, but it is valuable in itself from a code quality standpoint.
PiperOrigin-RevId: 183274022
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/cmdline')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/cmdline/BUILD | 1 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/cmdline/Label.java | 9 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/BUILD b/src/main/java/com/google/devtools/build/lib/cmdline/BUILD index 2883d4277a..5ce3b757be 100644 --- a/src/main/java/com/google/devtools/build/lib/cmdline/BUILD +++ b/src/main/java/com/google/devtools/build/lib/cmdline/BUILD @@ -18,6 +18,7 @@ java_library( visibility = ["//src:__subpackages__"], deps = [ "//src/main/java/com/google/devtools/build/lib:base-util", + "//src/main/java/com/google/devtools/build/lib:commandline_item", "//src/main/java/com/google/devtools/build/lib:skylarkinterface", "//src/main/java/com/google/devtools/build/lib:util", "//src/main/java/com/google/devtools/build/lib/concurrent", diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java index 47a7d7bc17..2fbb2a4217 100644 --- a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java +++ b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java @@ -17,6 +17,7 @@ import com.google.common.base.Preconditions; import com.google.common.collect.ComparisonChain; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Interner; +import com.google.devtools.build.lib.analysis.actions.CommandLineItem; import com.google.devtools.build.lib.cmdline.LabelValidator.BadLabelException; import com.google.devtools.build.lib.concurrent.BlazeInterners; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; @@ -53,7 +54,8 @@ import javax.annotation.Nullable; ) @Immutable @ThreadSafe -public final class Label implements Comparable<Label>, Serializable, SkylarkValue, SkyKey { +public final class Label + implements Comparable<Label>, Serializable, SkylarkValue, SkyKey, CommandLineItem { public static final PathFragment EXTERNAL_PACKAGE_NAME = PathFragment.create("external"); public static final PathFragment WORKSPACE_FILE_NAME = PathFragment.create("WORKSPACE"); public static final String DEFAULT_REPOSITORY_DIRECTORY = "__main__"; @@ -573,6 +575,11 @@ public final class Label implements Comparable<Label>, Serializable, SkylarkValu printer.append(getCanonicalForm()); } + @Override + public String expandToCommandLine() { + return getCanonicalForm(); + } + /** * Specialization of {@link Arrays#hashCode()} that does not require constructing a 2-element * array. |