From 66aeb19929a43f55357e4388741940e6a1a45762 Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Thu, 22 Oct 2015 05:09:35 -0700 Subject: [PATCH] Better types. --- .../internal/remote/GetDependenciesCommand.kt | 4 ++-- .../beust/kobalt/internal/remote/KobaltServer.kt | 13 +++++++------ .../com/beust/kobalt/internal/remote/PingCommand.kt | 5 +---- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/main/kotlin/com/beust/kobalt/internal/remote/GetDependenciesCommand.kt b/src/main/kotlin/com/beust/kobalt/internal/remote/GetDependenciesCommand.kt index 76bf886d..ecc0e659 100644 --- a/src/main/kotlin/com/beust/kobalt/internal/remote/GetDependenciesCommand.kt +++ b/src/main/kotlin/com/beust/kobalt/internal/remote/GetDependenciesCommand.kt @@ -35,7 +35,7 @@ class GetDependenciesCommand @Inject constructor(val executors: KobaltExecutors, scriptCompiler.compileBuildFiles(args) } - private fun toJson(info: BuildFileCompiler.BuildScriptInfo) : String { + private fun toJson(info: BuildFileCompiler.BuildScriptInfo) : CommandData { val executor = executors.miscExecutor val projects = arrayListOf() @@ -55,7 +55,7 @@ class GetDependenciesCommand @Inject constructor(val executors: KobaltExecutors, projects.add(ProjectData(project.name!!, allDependencies)) } log(1, "Returning BuildScriptInfo") - val result = toCommandDataJson(Gson().toJson(GetDependenciesData(projects))) + val result = toCommandData(Gson().toJson(GetDependenciesData(projects))) log(2, " $result") return result } diff --git a/src/main/kotlin/com/beust/kobalt/internal/remote/KobaltServer.kt b/src/main/kotlin/com/beust/kobalt/internal/remote/KobaltServer.kt index 2fc7d93e..e7e79558 100644 --- a/src/main/kotlin/com/beust/kobalt/internal/remote/KobaltServer.kt +++ b/src/main/kotlin/com/beust/kobalt/internal/remote/KobaltServer.kt @@ -29,7 +29,7 @@ interface ICommand { */ fun run(sender: ICommandSender, received: JsonObject) - fun toCommandDataJson(data: String) = Gson().toJson(CommandData(name, data)) + fun toCommandData(data: String) = CommandData(name, data) } /** @@ -37,7 +37,7 @@ interface ICommand { * @param The string content that will be sent in the "data" field. */ interface ICommandSender { - fun sendData(data: String) + fun sendData(commandData: CommandData) } /** @@ -56,7 +56,7 @@ class CommandData(val commandName: String, val data: String) @Singleton public class KobaltServer @Inject constructor(val args: Args) : Runnable, ICommandSender { var outgoing: PrintWriter? = null - val pending = arrayListOf() + val pending = arrayListOf() private val COMMAND_CLASSES = listOf(GetDependenciesCommand::class.java, PingCommand::class.java) private val COMMANDS = COMMAND_CLASSES.map { @@ -92,7 +92,7 @@ public class KobaltServer @Inject constructor(val args: Args) : Runnable, IComma runCommand(jo) // Done, send a quit to the client - sendData("{ \"name\": \"quit\" }") + sendData(CommandData("quit", "")) line = ins.readLine() } @@ -112,13 +112,14 @@ public class KobaltServer @Inject constructor(val args: Args) : Runnable, IComma } } - override fun sendData(content: String) { + override fun sendData(commandData: CommandData) { + val content = Gson().toJson(commandData) if (outgoing != null) { outgoing!!.println(content) } else { log1("Queuing $content") synchronized(pending) { - pending.add(content) + pending.add(commandData) } } } diff --git a/src/main/kotlin/com/beust/kobalt/internal/remote/PingCommand.kt b/src/main/kotlin/com/beust/kobalt/internal/remote/PingCommand.kt index d05d1907..ad9b2f21 100644 --- a/src/main/kotlin/com/beust/kobalt/internal/remote/PingCommand.kt +++ b/src/main/kotlin/com/beust/kobalt/internal/remote/PingCommand.kt @@ -16,10 +16,7 @@ class PingCommand() : ICommand { override val name = "ping" override fun run(sender: ICommandSender, received: JsonObject) { - val commandData = toCommandDataJson(Gson().toJson(PingData(received.toString()))) - val result = Gson().toJson(commandData) - log(1, "ping returning: $result") - sender.sendData(result) + sender.sendData(toCommandData(Gson().toJson(PingData(received.toString())))) } class PingData(val received: String)