aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/ResourceContainerConverter.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/ResourceContainerConverter.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ResourceContainerConverter.java23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceContainerConverter.java b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceContainerConverter.java
index 899340f67a..57cc800b8c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceContainerConverter.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceContainerConverter.java
@@ -26,6 +26,7 @@ import com.google.devtools.build.lib.actions.CommandLineItem;
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.rules.android.ResourceContainerConverter.ToArg.Includes;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.PathFragment;
import java.util.HashSet;
import java.util.Set;
@@ -75,25 +76,37 @@ public class ResourceContainerConverter {
switch (separatorType) {
case COLON_COMMA:
- argJoiner = Joiner.on(":");
+ argJoiner = COLON_JOINER;
// We currently use ":" to separate components of an argument and "," to separate
// arguments in a list of arguments. Those characters require escaping if used in a label
// (part of the set of allowed characters in a label).
if (includes.contains(Includes.Label)) {
- escaper = (String input) -> input.replace(":", "\\:").replace(",", "\\,");
+ escaper = COLON_COMMA;
} else {
- escaper = Functions.identity();
+ escaper = IDENTITY;
}
break;
case SEMICOLON_AMPERSAND:
- argJoiner = Joiner.on(";");
- escaper = Functions.identity();
+ argJoiner = SEMICOLON_JOINER;
+ escaper = IDENTITY;
break;
default:
throw new IllegalStateException("Unknown separator type " + separatorType);
}
}
+ @AutoCodec @AutoCodec.VisibleForSerialization
+ static final Function<String, String> IDENTITY = Functions.identity();
+
+ @AutoCodec @AutoCodec.VisibleForSerialization
+ static final Function<String, String> COLON_COMMA =
+ (input) -> input.replace(":", "\\:").replace(",", "\\,");
+
+ @AutoCodec @AutoCodec.VisibleForSerialization
+ static final Joiner SEMICOLON_JOINER = Joiner.on(";");
+
+ @AutoCodec @AutoCodec.VisibleForSerialization static final Joiner COLON_JOINER = Joiner.on(":");
+
@Override
public void expandToCommandLine(ValidatedAndroidData container, Consumer<String> args) {
args.accept(map(container));