diff options
author | Googler <noreply@google.com> | 2015-12-03 15:17:55 +0000 |
---|---|---|
committer | Kristina Chodorow <kchodorow@google.com> | 2015-12-03 18:37:59 +0000 |
commit | 5e34a3d4ea30525971e320ce283ba8cd67c74e3c (patch) | |
tree | 29c755c006c6b5f1fb82f131a72c44e406a18c5a /src/tools/android/java/com/google/devtools/build/android/Converters.java | |
parent | 84fb4612dd4203425b59809ea5e3302ff55723fa (diff) |
ASwB aspect: parse java packages during execution
--
MOS_MIGRATED_REVID=109305952
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/Converters.java')
-rw-r--r-- | src/tools/android/java/com/google/devtools/build/android/Converters.java | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/Converters.java b/src/tools/android/java/com/google/devtools/build/android/Converters.java index 8a10c52285..f69aac162d 100644 --- a/src/tools/android/java/com/google/devtools/build/android/Converters.java +++ b/src/tools/android/java/com/google/devtools/build/android/Converters.java @@ -26,6 +26,8 @@ import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.InvalidPathException; import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -154,4 +156,30 @@ public final class Converters { super(VariantConfiguration.Type.class, "variant configuration type"); } } + + /** + * Validating converter for a list of Paths. + * A Path is considered valid if it resolves to a file. + */ + public static class PathListConverter implements Converter<List<Path>> { + + final PathConverter baseConverter = new PathConverter(); + + @Override + public List<Path> convert(String input) throws OptionsParsingException { + List<Path> list = new ArrayList<>(); + for (String piece : input.split(":")) { + if (!piece.isEmpty()) { + list.add(baseConverter.convert(piece)); + } + } + return Collections.unmodifiableList(list); + } + + @Override + public String getTypeDescription() { + return "a colon-separated list of paths"; + } + } + } |