Code clarification

This commit is contained in:
Valentin Kipyatkov
2015-06-16 16:37:51 +03:00
parent d3402280c5
commit 67cf180aba
6 changed files with 22 additions and 16 deletions
@@ -30,7 +30,7 @@ import java.util.HashSet
import java.util.LinkedHashSet
import kotlin.platform.platformName
fun<T> CodeBuilder.append(generators: Collection<() -> T>, separator: String, prefix: String = "", suffix: String = ""): CodeBuilder {
fun<T> CodeBuilder.buildList(generators: Collection<() -> T>, separator: String, prefix: String = "", suffix: String = ""): CodeBuilder {
if (generators.isNotEmpty()) {
append(prefix)
var first = true
@@ -48,7 +48,7 @@ fun<T> CodeBuilder.append(generators: Collection<() -> T>, separator: String, pr
platformName("appendElements")
fun CodeBuilder.append(elements: Collection<Element>, separator: String, prefix: String = "", suffix: String = ""): CodeBuilder {
return append(elements.filter { !it.isEmpty }.map { { append(it) } }, separator, prefix, suffix)
return buildList(elements.filter { !it.isEmpty }.map { { append(it) } }, separator, prefix, suffix)
}
class ElementCreationStackTraceRequiredException : RuntimeException()
@@ -27,16 +27,18 @@ class Annotation(val name: Identifier, val arguments: List<Pair<Identifier?, Def
else {
builder.append(name)
.append("(")
.append(arguments.map {
{
if (it.first != null) {
builder append it.first!! append " = " append it.second
}
else {
builder append it.second
}
}
}, ", ")
.buildList(
generators = arguments.map {
{
if (it.first != null) {
builder append it.first!! append " = " append it.second
}
else {
builder append it.second
}
}
},
separator = ", ")
.append(")")
}
}
@@ -17,7 +17,6 @@
package org.jetbrains.kotlin.j2k.ast
import org.jetbrains.kotlin.j2k.CodeBuilder
import org.jetbrains.kotlin.j2k.append
class ArrayWithoutInitializationExpression(val type: ArrayType, val expressions: List<Expression>) : Expression() {
override fun generateCode(builder: CodeBuilder) {
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.j2k.ast
import org.jetbrains.kotlin.j2k.CodeBuilder
import org.jetbrains.kotlin.j2k.append
import org.jetbrains.kotlin.j2k.buildList
open class Class(
val name: Identifier,
@@ -52,7 +53,9 @@ open class Class(
get() = "class"
protected fun appendBaseTypes(builder: CodeBuilder) {
builder.append(baseClassSignatureWithParams(builder) + implementsTypes.map { { builder.append(it) } }, ", ", ":")
builder.buildList(generators = baseClassSignatureWithParams(builder) + implementsTypes.map { { builder.append(it) } },
separator = ", ",
prefix = ":")
}
private fun baseClassSignatureWithParams(builder: CodeBuilder): List<() -> CodeBuilder> {
@@ -18,7 +18,6 @@ package org.jetbrains.kotlin.j2k.ast
import org.jetbrains.kotlin.j2k.ConverterSettings
import org.jetbrains.kotlin.j2k.CodeBuilder
import org.jetbrains.kotlin.j2k.append
class LocalVariable(
private val identifier: Identifier,
@@ -44,7 +44,10 @@ class TypeParameterList(val parameters: List<TypeParameter>) : Element() {
fun appendWhere(builder: CodeBuilder): CodeBuilder {
if (hasWhere()) {
builder.append( parameters.map { { it.whereToKotlin(builder) } }, ", ", " where ", "")
builder.buildList(generators = parameters.map { { it.whereToKotlin(builder) } },
separator = ", ",
prefix = " where ",
suffix = "")
}
return builder
}