summaryrefslogtreecommitdiff
path: root/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-09-20 22:04:23 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-09-20 22:04:23 +0200
commitc7fff03408ee3109d0a39a96c043584a2d8f67ca (patch)
tree8c4a877e0f00f14a9091f9c26fdb0e85cad94904 /opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt
parent140aafdaa711b0fdeacf99b9c7e70b706b8490f4 (diff)
refactor(trace): Simplify TraceFormat SPI interface
This change simplifies the TraceFormat SPI interface by reducing the number of interfaces that implementors need to implement to only TraceFormat.
Diffstat (limited to 'opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt')
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt19
1 files changed, 6 insertions, 13 deletions
diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt
index 0ae45e86..6d0014cb 100644
--- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt
@@ -22,9 +22,9 @@
package org.opendc.trace
+import org.opendc.trace.internal.TraceImpl
import org.opendc.trace.spi.TraceFormat
import java.io.File
-import java.net.URL
import java.nio.file.Path
/**
@@ -48,31 +48,24 @@ public interface Trace {
public companion object {
/**
- * Open a [Trace] at the specified [url] in the given [format].
- *
- * @throws IllegalArgumentException if [format] is not supported.
- */
- public fun open(url: URL, format: String): Trace {
- val provider = requireNotNull(TraceFormat.byName(format)) { "Unknown format $format" }
- return provider.open(url)
- }
-
- /**
* Open a [Trace] at the specified [path] in the given [format].
*
+ * @param path The path to the trace.
* @throws IllegalArgumentException if [format] is not supported.
*/
public fun open(path: File, format: String): Trace {
- return open(path.toURI().toURL(), format)
+ return open(path.toPath(), format)
}
/**
* Open a [Trace] at the specified [path] in the given [format].
*
+ * @param path The [Path] to the trace.
* @throws IllegalArgumentException if [format] is not supported.
*/
public fun open(path: Path, format: String): Trace {
- return open(path.toUri().toURL(), format)
+ val provider = requireNotNull(TraceFormat.byName(format)) { "Unknown format $format" }
+ return TraceImpl(provider, path)
}
}
}