From b0ef405867cf08344994195c7cb1a0fb13ba2edd Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Thu, 5 Nov 2015 00:07:44 -0800 Subject: [PATCH] Code review from @orangy. --- src/main/kotlin/com/beust/kobalt/Plugins.kt | 8 +------- src/main/kotlin/com/beust/kobalt/api/Kobalt.kt | 7 +++---- src/main/kotlin/com/beust/kobalt/api/Plugin.kt | 6 +++--- .../kotlin/com/beust/kobalt/api/PluginProperties.kt | 10 ++-------- src/main/kotlin/com/beust/kobalt/misc/ToString.kt | 6 +++--- 5 files changed, 12 insertions(+), 25 deletions(-) diff --git a/src/main/kotlin/com/beust/kobalt/Plugins.kt b/src/main/kotlin/com/beust/kobalt/Plugins.kt index 1e996a11..d2bab348 100644 --- a/src/main/kotlin/com/beust/kobalt/Plugins.kt +++ b/src/main/kotlin/com/beust/kobalt/Plugins.kt @@ -186,13 +186,7 @@ public class Plugins @Inject constructor (val taskManagerProvider : Provider - get() { - val result = arrayListOf() - Plugins.plugins.forEach { plugin -> - result.addAll(plugin.tasks) - } - return result - } + get() = Plugins.plugins.flatMap { it.tasks } fun installPlugins(dependencies: List, classLoader: ClassLoader) { val executor = executors.newExecutor("Plugins", 5) diff --git a/src/main/kotlin/com/beust/kobalt/api/Kobalt.kt b/src/main/kotlin/com/beust/kobalt/api/Kobalt.kt index 99fea77f..eefaaeb1 100644 --- a/src/main/kotlin/com/beust/kobalt/api/Kobalt.kt +++ b/src/main/kotlin/com/beust/kobalt/api/Kobalt.kt @@ -48,8 +48,7 @@ public class Kobalt { private val KOBALT_PROPERTIES = "kobalt.properties" private val LOCAL_PROPERTIES = "local.properties" - private val properties : Properties - get() = readProperties() + private val properties : Properties by lazy { readProperties() } private fun readProperties() : Properties { val result = Properties() @@ -59,13 +58,13 @@ public class Kobalt { if (url != null) { readProperties(result, url.openConnection().inputStream) } else { - throw IllegalArgumentException("Couldn't find ${KOBALT_PROPERTIES}") + throw AssertionError("Couldn't find $KOBALT_PROPERTIES") } // local.properties can be used by external users Paths.get(LOCAL_PROPERTIES).let { path -> if (Files.exists(path)) { - Files.newInputStream(path).let { + Files.newInputStream(path).use { readProperties(result, it) } } diff --git a/src/main/kotlin/com/beust/kobalt/api/Plugin.kt b/src/main/kotlin/com/beust/kobalt/api/Plugin.kt index a9def0ae..dcdb64c2 100644 --- a/src/main/kotlin/com/beust/kobalt/api/Plugin.kt +++ b/src/main/kotlin/com/beust/kobalt/api/Plugin.kt @@ -23,9 +23,9 @@ public interface Plugin { } fun addTask(project: Project, name: String, description: String = "", - runBefore: List = arrayListOf(), - runAfter: List = arrayListOf(), - alwaysRunAfter: List = arrayListOf(), + runBefore: List = listOf(), + runAfter: List = listOf(), + alwaysRunAfter: List = listOf(), task: (Project) -> TaskResult) { tasks.add( object : BasePluginTask(this, name, description, project) { diff --git a/src/main/kotlin/com/beust/kobalt/api/PluginProperties.kt b/src/main/kotlin/com/beust/kobalt/api/PluginProperties.kt index a92d767b..302a11e9 100644 --- a/src/main/kotlin/com/beust/kobalt/api/PluginProperties.kt +++ b/src/main/kotlin/com/beust/kobalt/api/PluginProperties.kt @@ -10,14 +10,8 @@ import java.util.* class PluginProperties @Inject constructor() { private val pluginProperties = hashMapOf>() - fun put(pluginName: String, key: String, value: Any) { - var map = pluginProperties[pluginName] - if (map == null) { - map = hashMapOf() - pluginProperties.put(pluginName, map) - } - map.put(key, value) - } + fun put(pluginName: String, key: String, value: Any) = + pluginProperties.getOrPut(pluginName) { hashMapOf() }.put(key, value) fun get(pluginName: String, key: String) = pluginProperties[pluginName]?.get(key) } diff --git a/src/main/kotlin/com/beust/kobalt/misc/ToString.kt b/src/main/kotlin/com/beust/kobalt/misc/ToString.kt index 8e39bb2c..f1c38a3f 100644 --- a/src/main/kotlin/com/beust/kobalt/misc/ToString.kt +++ b/src/main/kotlin/com/beust/kobalt/misc/ToString.kt @@ -1,11 +1,11 @@ package com.beust.kobalt.misc -fun toString(name: String, vararg o: T) : String { - val sb = StringBuffer() +fun toString(name: String, vararg o: T) : String { + val sb = StringBuilder() for (i in 0..o.size - 1 step 2) { if (i > 0) sb.append(", ") - sb.append(o.get(i).toString() + ":" + o.get(i + 1)) + sb.append(o[i].toString() + ":" + o[i + 1]) } return "{$name $sb}" }