Update naming of the main api entry point of R8 retrace

Change-Id: Ibfd7d837031d02684ddf6180eff63deef483ef45
diff --git a/src/main/java/com/android/tools/r8/retrace/Retrace.java b/src/main/java/com/android/tools/r8/retrace/Retrace.java
index 0cb273e..0689227 100644
--- a/src/main/java/com/android/tools/r8/retrace/Retrace.java
+++ b/src/main/java/com/android/tools/r8/retrace/Retrace.java
@@ -141,13 +141,13 @@
           ClassNameMapper.mapperFromString(
               command.proguardMapProducer.get(), command.diagnosticsHandler);
       timing.end();
-      RetraceBase retraceBase = RetraceBaseImpl.create(classNameMapper);
+      RetraceApi retracer = Retracer.create(classNameMapper);
       RetraceCommandLineResult result;
       timing.begin("Parse and Retrace");
       if (command.regularExpression != null) {
         result =
             new RetraceRegularExpression(
-                    retraceBase,
+                    retracer,
                     command.stackTrace,
                     command.diagnosticsHandler,
                     command.regularExpression)
@@ -155,7 +155,7 @@
       } else {
         result =
             new RetraceStackTrace(
-                    retraceBase, command.stackTrace, command.diagnosticsHandler, command.isVerbose)
+                    retracer, command.stackTrace, command.diagnosticsHandler, command.isVerbose)
                 .retrace();
       }
       timing.end();
diff --git a/src/main/java/com/android/tools/r8/retrace/RetraceBase.java b/src/main/java/com/android/tools/r8/retrace/RetraceApi.java
similarity index 82%
rename from src/main/java/com/android/tools/r8/retrace/RetraceBase.java
rename to src/main/java/com/android/tools/r8/retrace/RetraceApi.java
index ee7d7ab..551dac4 100644
--- a/src/main/java/com/android/tools/r8/retrace/RetraceBase.java
+++ b/src/main/java/com/android/tools/r8/retrace/RetraceApi.java
@@ -4,12 +4,15 @@
 
 package com.android.tools.r8.retrace;
 
+import com.android.tools.r8.KeepForSubclassing;
 import com.android.tools.r8.references.ClassReference;
 import com.android.tools.r8.references.FieldReference;
 import com.android.tools.r8.references.MethodReference;
 import com.android.tools.r8.references.TypeReference;
 
-public interface RetraceBase {
+/** This is the main api interface for retrace. */
+@KeepForSubclassing
+public interface RetraceApi {
 
   RetraceMethodResult retrace(MethodReference methodReference);
 
@@ -18,6 +21,4 @@
   RetraceClassResult retrace(ClassReference classReference);
 
   RetraceTypeResult retrace(TypeReference typeReference);
-
-  RetraceSourceFileResult retraceSourceFile(ClassReference classReference, String sourceFile);
 }
diff --git a/src/main/java/com/android/tools/r8/retrace/RetraceRegularExpression.java b/src/main/java/com/android/tools/r8/retrace/RetraceRegularExpression.java
index e2e78b2..b35bb12 100644
--- a/src/main/java/com/android/tools/r8/retrace/RetraceRegularExpression.java
+++ b/src/main/java/com/android/tools/r8/retrace/RetraceRegularExpression.java
@@ -27,7 +27,7 @@
 
 public class RetraceRegularExpression {
 
-  private final RetraceBase retraceBase;
+  private final RetraceApi retracer;
   private final List<String> stackTrace;
   private final DiagnosticsHandler diagnosticsHandler;
   private final String regularExpression;
@@ -52,11 +52,11 @@
   private static final String CAPTURE_GROUP_PREFIX = "captureGroup";
 
   RetraceRegularExpression(
-      RetraceBase retraceBase,
+      RetraceApi retracer,
       List<String> stackTrace,
       DiagnosticsHandler diagnosticsHandler,
       String regularExpression) {
-    this.retraceBase = retraceBase;
+    this.retracer = retracer;
     this.stackTrace = stackTrace;
     this.diagnosticsHandler = diagnosticsHandler;
     this.regularExpression = regularExpression;
@@ -73,7 +73,7 @@
           Lists.newArrayList(RetraceStringBuilder.create(string).build());
       if (matcher.matches()) {
         for (RegularExpressionGroupHandler handler : handlers) {
-          retracedStrings = handler.handleMatch(retracedStrings, matcher, retraceBase);
+          retracedStrings = handler.handleMatch(retracedStrings, matcher, retracer);
         }
       }
       if (retracedStrings.isEmpty()) {
@@ -422,7 +422,7 @@
   private interface RegularExpressionGroupHandler {
 
     List<RetraceString> handleMatch(
-        List<RetraceString> strings, Matcher matcher, RetraceBase retraceBase);
+        List<RetraceString> strings, Matcher matcher, RetraceApi retracer);
   }
 
   private abstract static class RegularExpressionGroup {
@@ -450,12 +450,12 @@
 
     @Override
     RegularExpressionGroupHandler createHandler(String captureGroup) {
-      return (strings, matcher, retraceBase) -> {
+      return (strings, matcher, retracer) -> {
         if (matcher.start(captureGroup) == NO_MATCH) {
           return strings;
         }
         String typeName = matcher.group(captureGroup);
-        RetraceClassResult retraceResult = retraceBase.retrace(classFromMatch(typeName));
+        RetraceClassResult retraceResult = retracer.retrace(classFromMatch(typeName));
         List<RetraceString> retracedStrings = new ArrayList<>();
         for (RetraceString retraceString : strings) {
           retraceResult.forEach(
@@ -537,7 +537,7 @@
 
     @Override
     RegularExpressionGroupHandler createHandler(String captureGroup) {
-      return (strings, matcher, retraceBase) -> {
+      return (strings, matcher, retracer) -> {
         if (matcher.start(captureGroup) == NO_MATCH) {
           return strings;
         }
@@ -606,7 +606,7 @@
 
     @Override
     RegularExpressionGroupHandler createHandler(String captureGroup) {
-      return (strings, matcher, retraceBase) -> {
+      return (strings, matcher, retracer) -> {
         if (matcher.start(captureGroup) == NO_MATCH) {
           return strings;
         }
@@ -660,7 +660,7 @@
 
     @Override
     RegularExpressionGroupHandler createHandler(String captureGroup) {
-      return (strings, matcher, retraceBase) -> {
+      return (strings, matcher, retracer) -> {
         if (matcher.start(captureGroup) == NO_MATCH) {
           return strings;
         }
@@ -707,7 +707,7 @@
 
     @Override
     RegularExpressionGroupHandler createHandler(String captureGroup) {
-      return (strings, matcher, retraceBase) -> {
+      return (strings, matcher, retracer) -> {
         if (matcher.start(captureGroup) == NO_MATCH) {
           return strings;
         }
@@ -808,7 +808,7 @@
 
     @Override
     RegularExpressionGroupHandler createHandler(String captureGroup) {
-      return (strings, matcher, retraceBase) -> {
+      return (strings, matcher, retracer) -> {
         if (matcher.start(captureGroup) == NO_MATCH) {
           return strings;
         }
@@ -819,7 +819,7 @@
         }
         TypeReference typeReference = Reference.returnTypeFromDescriptor(descriptor);
         List<RetraceString> retracedStrings = new ArrayList<>();
-        RetraceTypeResult retracedType = retraceBase.retrace(typeReference);
+        RetraceTypeResult retracedType = retracer.retrace(typeReference);
         for (RetraceString retraceString : strings) {
           retracedType.forEach(
               element -> {
@@ -854,7 +854,7 @@
 
     @Override
     RegularExpressionGroupHandler createHandler(String captureGroup) {
-      return (strings, matcher, retraceBase) -> {
+      return (strings, matcher, retracer) -> {
         if (matcher.start(captureGroup) == NO_MATCH) {
           return strings;
         }
@@ -872,7 +872,7 @@
                       }
                       TypeReference typeReference = Reference.returnTypeFromDescriptor(descriptor);
                       Set<List<TypeReference>> retracedTypes = new LinkedHashSet<>();
-                      retraceBase
+                      retracer
                           .retrace(typeReference)
                           .forEach(
                               element -> {
diff --git a/src/main/java/com/android/tools/r8/retrace/RetraceStackTrace.java b/src/main/java/com/android/tools/r8/retrace/RetraceStackTrace.java
index 719dd44..88d048f 100644
--- a/src/main/java/com/android/tools/r8/retrace/RetraceStackTrace.java
+++ b/src/main/java/com/android/tools/r8/retrace/RetraceStackTrace.java
@@ -86,17 +86,17 @@
     }
   }
 
-  private final RetraceBase retraceBase;
+  private final RetraceApi retracer;
   private final List<String> stackTrace;
   private final DiagnosticsHandler diagnosticsHandler;
   private final boolean verbose;
 
   RetraceStackTrace(
-      RetraceBase retraceBase,
+      RetraceApi retracer,
       List<String> stackTrace,
       DiagnosticsHandler diagnosticsHandler,
       boolean verbose) {
-    this.retraceBase = retraceBase;
+    this.retracer = retracer;
     this.stackTrace = stackTrace;
     this.diagnosticsHandler = diagnosticsHandler;
     this.verbose = verbose;
@@ -117,7 +117,7 @@
       return;
     }
     StackTraceLine stackTraceLine = parseLine(index + 1, stackTrace.get(index));
-    List<StackTraceLine> retraced = stackTraceLine.retrace(retraceBase, verbose);
+    List<StackTraceLine> retraced = stackTraceLine.retrace(retracer, verbose);
     StackTraceNode node = new StackTraceNode(retraced);
     result.add(node);
     retraceLine(stackTrace, index + 1, result);
@@ -125,7 +125,7 @@
 
   abstract static class StackTraceLine {
 
-    abstract List<StackTraceLine> retrace(RetraceBase retraceBase, boolean verbose);
+    abstract List<StackTraceLine> retrace(RetraceApi retracer, boolean verbose);
 
     static int firstNonWhiteSpaceCharacterFromIndex(String line, int index) {
       return firstFromIndex(line, index, not(Character::isWhitespace));
@@ -225,9 +225,9 @@
     }
 
     @Override
-    List<StackTraceLine> retrace(RetraceBase retraceBase, boolean verbose) {
+    List<StackTraceLine> retrace(RetraceApi retracer, boolean verbose) {
       List<StackTraceLine> exceptionLines = new ArrayList<>();
-      retraceBase
+      retracer
           .retrace(Reference.classFromTypeName(exceptionClass))
           .forEach(
               element ->
@@ -397,31 +397,28 @@
     }
 
     @Override
-    List<StackTraceLine> retrace(RetraceBase retraceBase, boolean verbose) {
+    List<StackTraceLine> retrace(RetraceApi retracer, boolean verbose) {
       List<StackTraceLine> lines = new ArrayList<>();
       String retraceClassLoaderName = classLoaderName;
       if (retraceClassLoaderName != null) {
         ClassReference classLoaderReference = Reference.classFromTypeName(retraceClassLoaderName);
-        retraceBase
+        retracer
             .retrace(classLoaderReference)
             .forEach(
                 classElement -> {
                   retraceClassAndMethods(
-                      retraceBase, verbose, lines, classElement.getClassReference().getTypeName());
+                      retracer, verbose, lines, classElement.getClassReference().getTypeName());
                 });
       } else {
-        retraceClassAndMethods(retraceBase, verbose, lines, retraceClassLoaderName);
+        retraceClassAndMethods(retracer, verbose, lines, retraceClassLoaderName);
       }
       return lines;
     }
 
     private void retraceClassAndMethods(
-        RetraceBase retraceBase,
-        boolean verbose,
-        List<StackTraceLine> lines,
-        String classLoaderName) {
+        RetraceApi retracer, boolean verbose, List<StackTraceLine> lines, String classLoaderName) {
       ClassReference classReference = Reference.classFromTypeName(clazz);
-      RetraceClassResult classResult = retraceBase.retrace(classReference);
+      RetraceClassResult classResult = retracer.retrace(classReference);
       RetraceMethodResult retraceResult = classResult.lookupMethod(method);
       if (linePosition != NO_POSITION && linePosition != INVALID_POSITION) {
         retraceResult = retraceResult.narrowByLine(linePosition);
@@ -509,7 +506,7 @@
     }
 
     @Override
-    List<StackTraceLine> retrace(RetraceBase retraceBase, boolean verbose) {
+    List<StackTraceLine> retrace(RetraceApi retracer, boolean verbose) {
       return ImmutableList.of(new MoreLine(line));
     }
 
@@ -562,9 +559,9 @@
     }
 
     @Override
-    List<StackTraceLine> retrace(RetraceBase retraceBase, boolean verbose) {
+    List<StackTraceLine> retrace(RetraceApi retracer, boolean verbose) {
       List<StackTraceLine> exceptionLines = new ArrayList<>();
-      retraceBase
+      retracer
           .retrace(Reference.classFromTypeName(exceptionClass))
           .forEach(
               element ->
@@ -590,7 +587,7 @@
     }
 
     @Override
-    List<StackTraceLine> retrace(RetraceBase retraceBase, boolean verbose) {
+    List<StackTraceLine> retrace(RetraceApi retracer, boolean verbose) {
       return ImmutableList.of(new UnknownLine(line));
     }
 
diff --git a/src/main/java/com/android/tools/r8/retrace/RetraceTypeResult.java b/src/main/java/com/android/tools/r8/retrace/RetraceTypeResult.java
index 2ab72a7..8ea169f 100644
--- a/src/main/java/com/android/tools/r8/retrace/RetraceTypeResult.java
+++ b/src/main/java/com/android/tools/r8/retrace/RetraceTypeResult.java
@@ -13,11 +13,11 @@
 public class RetraceTypeResult extends Result<Element, RetraceTypeResult> {
 
   private final TypeReference obfuscatedType;
-  private final RetraceBase retraceBase;
+  private final RetraceApi retracer;
 
-  RetraceTypeResult(TypeReference obfuscatedType, RetraceBase retraceBase) {
+  RetraceTypeResult(TypeReference obfuscatedType, RetraceApi retracer) {
     this.obfuscatedType = obfuscatedType;
-    this.retraceBase = retraceBase;
+    this.retracer = retracer;
   }
 
   @Override
@@ -28,10 +28,10 @@
     }
     if (obfuscatedType.isArray()) {
       int dimensions = obfuscatedType.asArray().getDimensions();
-      return retraceBase.retrace(obfuscatedType.asArray().getBaseType()).stream()
+      return retracer.retrace(obfuscatedType.asArray().getBaseType()).stream()
           .map(base -> new Element(Reference.array(base.getTypeReference(), dimensions)));
     }
-    return retraceBase.retrace(obfuscatedType.asClass()).stream()
+    return retracer.retrace(obfuscatedType.asClass()).stream()
         .map(clazz -> new Element(clazz.getClassReference()));
   }
 
diff --git a/src/main/java/com/android/tools/r8/retrace/RetraceBaseImpl.java b/src/main/java/com/android/tools/r8/retrace/Retracer.java
similarity index 68%
rename from src/main/java/com/android/tools/r8/retrace/RetraceBaseImpl.java
rename to src/main/java/com/android/tools/r8/retrace/Retracer.java
index 1561457..b2dad89 100644
--- a/src/main/java/com/android/tools/r8/retrace/RetraceBaseImpl.java
+++ b/src/main/java/com/android/tools/r8/retrace/Retracer.java
@@ -4,23 +4,25 @@
 
 package com.android.tools.r8.retrace;
 
+import com.android.tools.r8.Keep;
 import com.android.tools.r8.naming.ClassNameMapper;
 import com.android.tools.r8.references.ClassReference;
 import com.android.tools.r8.references.FieldReference;
 import com.android.tools.r8.references.MethodReference;
 import com.android.tools.r8.references.TypeReference;
-import com.android.tools.r8.utils.Box;
 
-public class RetraceBaseImpl implements RetraceBase {
+/** A default implementation for the retrace api using the ClassNameMapper defined in R8. */
+@Keep
+public class Retracer implements RetraceApi {
 
   private final ClassNameMapper classNameMapper;
 
-  private RetraceBaseImpl(ClassNameMapper classNameMapper) {
+  private Retracer(ClassNameMapper classNameMapper) {
     this.classNameMapper = classNameMapper;
   }
 
-  public static RetraceBase create(ClassNameMapper classNameMapper) {
-    return new RetraceBaseImpl(classNameMapper);
+  public static RetraceApi create(ClassNameMapper classNameMapper) {
+    return new Retracer(classNameMapper);
   }
 
   @Override
@@ -40,15 +42,6 @@
   }
 
   @Override
-  public RetraceSourceFileResult retraceSourceFile(
-      ClassReference classReference, String sourceFile) {
-    Box<RetraceSourceFileResult> retracedSourceFile = new Box<>();
-    retrace(classReference)
-        .forEach(element -> retracedSourceFile.set(element.retraceSourceFile(sourceFile)));
-    return retracedSourceFile.get();
-  }
-
-  @Override
   public RetraceTypeResult retrace(TypeReference typeReference) {
     return new RetraceTypeResult(typeReference, this);
   }
diff --git a/src/test/java/com/android/tools/r8/utils/codeinspector/CodeInspector.java b/src/test/java/com/android/tools/r8/utils/codeinspector/CodeInspector.java
index 43ba1fb..1428897 100644
--- a/src/test/java/com/android/tools/r8/utils/codeinspector/CodeInspector.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/CodeInspector.java
@@ -38,8 +38,8 @@
 import com.android.tools.r8.references.FieldReference;
 import com.android.tools.r8.references.MethodReference;
 import com.android.tools.r8.references.Reference;
-import com.android.tools.r8.retrace.RetraceBase;
-import com.android.tools.r8.retrace.RetraceBaseImpl;
+import com.android.tools.r8.retrace.RetraceApi;
+import com.android.tools.r8.retrace.Retracer;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.BiMapContainer;
 import com.android.tools.r8.utils.DescriptorUtils;
@@ -481,7 +481,7 @@
     }
   }
 
-  public RetraceBase retrace() {
-    return RetraceBaseImpl.create(mapping);
+  public RetraceApi retrace() {
+    return Retracer.create(mapping);
   }
 }
diff --git a/src/test/java/com/android/tools/r8/utils/codeinspector/InstructionSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/InstructionSubject.java
index bfcda02..ad9b5c2 100644
--- a/src/test/java/com/android/tools/r8/utils/codeinspector/InstructionSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/InstructionSubject.java
@@ -6,7 +6,7 @@
 
 import com.android.tools.r8.graph.DexField;
 import com.android.tools.r8.graph.DexMethod;
-import com.android.tools.r8.retrace.RetraceBase;
+import com.android.tools.r8.retrace.RetraceApi;
 import com.android.tools.r8.retrace.RetraceMethodResult;
 
 public interface InstructionSubject {
@@ -129,18 +129,17 @@
     return lineNumberTable == null ? -1 : lineNumberTable.getLineForInstruction(this);
   }
 
-  default RetraceMethodResult retrace(RetraceBase retraceBase) {
+  default RetraceMethodResult retrace(RetraceApi retracer) {
     MethodSubject methodSubject = getMethodSubject();
     assert methodSubject.isPresent();
-    return retraceBase.retrace(methodSubject.asFoundMethodSubject().asMethodReference());
+    return retracer.retrace(methodSubject.asFoundMethodSubject().asMethodReference());
   }
 
-  default RetraceMethodResult retraceLinePosition(RetraceBase retraceBase) {
-    return retrace(retraceBase).narrowByLine(getLineNumber());
+  default RetraceMethodResult retraceLinePosition(RetraceApi retracer) {
+    return retrace(retracer).narrowByLine(getLineNumber());
   }
 
-  default RetraceMethodResult retracePcPosition(
-      RetraceBase retraceBase, MethodSubject methodSubject) {
-    return retrace(retraceBase).narrowByLine(getOffset(methodSubject).offset);
+  default RetraceMethodResult retracePcPosition(RetraceApi retracer, MethodSubject methodSubject) {
+    return retrace(retracer).narrowByLine(getOffset(methodSubject).offset);
   }
 }