Extract position in file from Origin

And make available through a separate API in Diagnostic.

Change-Id: Iefd79fec568753c4435075bbebbb09ccc73cb4f6
diff --git a/src/test/apiUsageSample/com/android/tools/apiusagesample/D8DiagnosticsHandler.java b/src/test/apiUsageSample/com/android/tools/apiusagesample/D8DiagnosticsHandler.java
index 3dca445..d9f11b0 100644
--- a/src/test/apiUsageSample/com/android/tools/apiusagesample/D8DiagnosticsHandler.java
+++ b/src/test/apiUsageSample/com/android/tools/apiusagesample/D8DiagnosticsHandler.java
@@ -9,7 +9,9 @@
 import com.android.tools.r8.origin.ArchiveEntryOrigin;
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.origin.PathOrigin;
-import com.android.tools.r8.origin.TextRangeOrigin;
+import com.android.tools.r8.position.Position;
+import com.android.tools.r8.position.TextPosition;
+import com.android.tools.r8.position.TextRange;
 import java.nio.file.Files;
 import java.nio.file.Path;
 
@@ -45,14 +47,21 @@
     String textMessage = diagnostic.getDiagnosticMessage();
 
     Origin origin = diagnostic.getOrigin();
+    Position positionInOrigin = diagnostic.getPosition();
     String position;
-    if (origin instanceof TextRangeOrigin && origin.parent() instanceof PathOrigin) {
-      TextRangeOrigin textRange = (TextRangeOrigin) origin;
-      position = ((PathOrigin) origin.parent()).getPath().toFile() + ": "
-          + textRange.getStart().getLine() + "," + textRange.getStart().getColumn()
-          + " - " + textRange.getEnd().getLine() + "," + textRange.getEnd().getColumn();
-    } else if (origin.parent() instanceof PathOrigin) {
-      position = ((PathOrigin) origin.parent()).getPath().toFile().toString();
+    if (origin instanceof PathOrigin) {
+      if (positionInOrigin instanceof TextRange) {
+        TextRange textRange = (TextRange) positionInOrigin;
+        position = ((PathOrigin) origin.parent()).getPath().toFile() + ": "
+            + textRange.getStart().getLine() + "," + textRange.getStart().getColumn()
+            + " - " + textRange.getEnd().getLine() + "," + textRange.getEnd().getColumn();
+      } else if (positionInOrigin instanceof TextPosition) {
+        TextPosition textPosition = (TextPosition) positionInOrigin;
+        position = ((PathOrigin) origin.parent()).getPath().toFile() + ": "
+            + textPosition.getLine() + "," + textPosition.getColumn();
+      } else {
+        position = ((PathOrigin) origin.parent()).getPath().toFile().toString();
+      }
     } else {
       position = "UNKNOWN";
       if (origin != Origin.unknown()) {