diff options
Diffstat (limited to 'opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi')
| -rw-r--r-- | opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt index 83537822..89cac608 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt @@ -24,6 +24,13 @@ package org.opendc.trace.spi import org.opendc.trace.TableReader import org.opendc.trace.TableWriter +import org.opendc.trace.azure.AzureTraceFormat +import org.opendc.trace.bitbrains.BitbrainsTraceFormat +import org.opendc.trace.formats.opendc.OdcVmTraceFormat +import org.opendc.trace.gwf.GwfTraceFormat +import org.opendc.trace.swf.SwfTraceFormat +import org.opendc.trace.wfformat.WfFormatTraceFormat +import org.opendc.trace.wtf.WtfTraceFormat import java.nio.file.Path import java.util.ServiceLoader @@ -107,13 +114,31 @@ public interface TraceFormat { return ServiceLoader.load(TraceFormat::class.java) } +// /** +// * Obtain a [TraceFormat] implementation by [name]. +// */ +// @JvmStatic +// public fun byName(name: String): TraceFormat? { +// +// val loader = ServiceLoader.load(TraceFormat::class.java) +// return loader.find { it.name == name } +// } + /** * Obtain a [TraceFormat] implementation by [name]. */ @JvmStatic public fun byName(name: String): TraceFormat? { - val loader = ServiceLoader.load(TraceFormat::class.java) - return loader.find { it.name == name } + return when (name) { + "opendc-vm" -> OdcVmTraceFormat() + "azure" -> AzureTraceFormat() + "bitbrains" -> BitbrainsTraceFormat() + "gwf" -> GwfTraceFormat() + "swf" -> SwfTraceFormat() + "wfformat" -> WfFormatTraceFormat() + "wtf" -> WtfTraceFormat() + else -> null + } } } } |
