Change ProguardMapReaderWithFiltering to accept a predicate

Change-Id: I49e332ca779d4ae414c0cc3fe30c1ef0b301f0f0
diff --git a/src/main/java/com/android/tools/r8/retrace/internal/ProguardMapReaderWithFiltering.java b/src/main/java/com/android/tools/r8/retrace/internal/ProguardMapReaderWithFiltering.java
index d42da83..0d764a5 100644
--- a/src/main/java/com/android/tools/r8/retrace/internal/ProguardMapReaderWithFiltering.java
+++ b/src/main/java/com/android/tools/r8/retrace/internal/ProguardMapReaderWithFiltering.java
@@ -18,7 +18,7 @@
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Path;
 import java.nio.file.StandardOpenOption;
-import java.util.Set;
+import java.util.function.Predicate;
 
 public abstract class ProguardMapReaderWithFiltering implements LineReader {
 
@@ -188,9 +188,9 @@
   private int startIndex = 0;
   private int endIndex = 0;
 
-  private final Set<String> filter;
+  private final Predicate<String> filter;
 
-  protected ProguardMapReaderWithFiltering(Set<String> filter) {
+  protected ProguardMapReaderWithFiltering(Predicate<String> filter) {
     this.filter = filter;
   }
 
@@ -220,7 +220,7 @@
         seenFirstClass = true;
         String classMapping = getBufferAsString(bytes);
         String obfuscatedClassName = getObfuscatedClassName(classMapping);
-        isInsideClassOfInterest = filter.contains(obfuscatedClassName);
+        isInsideClassOfInterest = filter.test(obfuscatedClassName);
         return classMapping;
       } else if (lineParserState == IS_COMMENT_SOURCE_FILE) {
         return getBufferAsString(bytes);
@@ -284,7 +284,7 @@
     private int temporaryBufferPosition = 0;
 
     public ProguardMapReaderWithFilteringMappedBuffer(
-        Path mappingFile, Set<String> classNamesOfInterest) throws IOException {
+        Path mappingFile, Predicate<String> classNamesOfInterest) throws IOException {
       super(classNamesOfInterest);
       fileChannel = FileChannel.open(mappingFile, StandardOpenOption.READ);
       channelSize = fileChannel.size();
@@ -364,7 +364,7 @@
     private int endReadIndex = 0;
 
     public ProguardMapReaderWithFilteringInputBuffer(
-        InputStream inputStream, Set<String> classNamesOfInterest) {
+        InputStream inputStream, Predicate<String> classNamesOfInterest) {
       super(classNamesOfInterest);
       this.inputStream = inputStream;
     }
diff --git a/src/main/java/com/android/tools/r8/retrace/internal/ProguardMappingProviderBuilderImpl.java b/src/main/java/com/android/tools/r8/retrace/internal/ProguardMappingProviderBuilderImpl.java
index ebba380..8cf9ace 100644
--- a/src/main/java/com/android/tools/r8/retrace/internal/ProguardMappingProviderBuilderImpl.java
+++ b/src/main/java/com/android/tools/r8/retrace/internal/ProguardMappingProviderBuilderImpl.java
@@ -15,6 +15,7 @@
 import com.android.tools.r8.retrace.internal.ProguardMapReaderWithFiltering.ProguardMapReaderWithFilteringMappedBuffer;
 import java.util.HashSet;
 import java.util.Set;
+import java.util.function.Predicate;
 
 public class ProguardMappingProviderBuilderImpl extends ProguardMappingProvider.Builder {
 
@@ -64,7 +65,7 @@
   @Override
   public ProguardMappingProvider build() {
     try {
-      Set<String> buildForClass = allowLookupAllClasses ? null : allowedLookup;
+      Predicate<String> buildForClass = allowLookupAllClasses ? null : allowedLookup::contains;
       LineReader reader =
           proguardMapProducer.isFileBacked()
               ? new ProguardMapReaderWithFilteringMappedBuffer(