diff options
author | 2018-03-26 15:06:57 -0700 | |
---|---|---|
committer | 2018-03-26 15:08:21 -0700 | |
commit | 354728db5d546a2a01cf2d3d9a73fa5940633d0a (patch) | |
tree | b1b4ff23f441c5291d648f38acaa10b13afcd636 /src/main | |
parent | 848e78623fb418381e2982e00b7a3021e6c312f0 (diff) |
Separate out single-extension matching in FileType to reduce garbage.
PiperOrigin-RevId: 190532114
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/util/FileType.java | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/util/FileType.java b/src/main/java/com/google/devtools/build/lib/util/FileType.java index 599851dbbb..19cfdd7593 100644 --- a/src/main/java/com/google/devtools/build/lib/util/FileType.java +++ b/src/main/java/com/google/devtools/build/lib/util/FileType.java @@ -41,7 +41,28 @@ public abstract class FileType implements Predicate<String> { }; public static FileType of(final String ext) { - return new ListFileType(ImmutableList.of(ext)); + return new SingletonFileType(ext); + } + + @AutoCodec.VisibleForSerialization + @AutoCodec + static final class SingletonFileType extends FileType { + private final String ext; + + @AutoCodec.VisibleForSerialization + SingletonFileType(String ext) { + this.ext = ext; + } + + @Override + public boolean apply(String path) { + return path.endsWith(ext); + } + + @Override + public List<String> getExtensions() { + return ImmutableList.of(ext); + } } public static FileType of(final List<String> extensions) { |