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(