diff options
author | Laurent Le Brun <laurentlb@google.com> | 2017-02-27 14:52:40 +0000 |
---|---|---|
committer | Yue Gan <yueg@google.com> | 2017-02-27 15:10:57 +0000 |
commit | ccbcf8ed221c8a9dd8313672a9fa37976ad57f2b (patch) | |
tree | e8beb32b0c3b3423322a7cbdfa79893a73b7e4d1 | |
parent | 949b7b5300afb224078ccffcfd09782415a38309 (diff) |
Handle TriState type in `bazel query --output=build`
--
PiperOrigin-RevId: 148643993
MOS_MIGRATED_REVID=148643993
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/packages/TriState.java | 17 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/query2/output/OutputFormatter.java | 3 |
2 files changed, 19 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/TriState.java b/src/main/java/com/google/devtools/build/lib/packages/TriState.java index ce9188c540..d321e9d020 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/TriState.java +++ b/src/main/java/com/google/devtools/build/lib/packages/TriState.java @@ -18,5 +18,20 @@ package com.google.devtools.build.lib.packages; * Enum used to represent tri-state parameters in rule attributes (yes/no/auto). */ public enum TriState { - YES, NO, AUTO + YES, + NO, + AUTO; + + public int toInt() { + switch (this) { + case YES: + return 1; + case NO: + return 0; + case AUTO: + return -1; + default: + throw new IllegalStateException(); + } + } } diff --git a/src/main/java/com/google/devtools/build/lib/query2/output/OutputFormatter.java b/src/main/java/com/google/devtools/build/lib/query2/output/OutputFormatter.java index d20880c5ef..18890c3eb6 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/output/OutputFormatter.java +++ b/src/main/java/com/google/devtools/build/lib/query2/output/OutputFormatter.java @@ -32,6 +32,7 @@ import com.google.devtools.build.lib.packages.License; import com.google.devtools.build.lib.packages.RawAttributeMapper; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.Target; +import com.google.devtools.build.lib.packages.TriState; import com.google.devtools.build.lib.query2.engine.OutputFormatterCallback; import com.google.devtools.build.lib.query2.engine.QueryEnvironment; import com.google.devtools.build.lib.query2.output.QueryOptions.OrderOutput; @@ -449,6 +450,8 @@ public abstract class OutputFormatter implements Serializable { } else if (value instanceof List<?> && EvalUtils.isImmutable(value)) { // Display it as a list (and not as a tuple). Attributes can never be tuples. value = new ArrayList<>((List<?>) value); + } else if (value instanceof TriState) { + value = ((TriState) value).toInt(); } // It is *much* faster to write to a StringBuilder compared to the PrintStream object. StringBuilder builder = new StringBuilder(); |