1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-26 08:27:12 -07:00

Better types.

This commit is contained in:
Cedric Beust 2015-10-22 05:09:35 -07:00
parent 683afdb569
commit 66aeb19929
3 changed files with 10 additions and 12 deletions

View file

@ -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<ProjectData>()
@ -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
}

View file

@ -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<String>()
val pending = arrayListOf<CommandData>()
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)
}
}
}

View file

@ -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)