Java to Kotlin conversion: artificial constructors (when no primary detected) use var/val parameters
This commit is contained in:
@@ -159,10 +159,16 @@ public class Converter(val project: Project, val settings: ConverterSettings) {
|
||||
}
|
||||
|
||||
//TODO: comments?
|
||||
val parameters = finalOrWithEmptyInitializerFields.map { Parameter(Identifier("_" + it.identifier.name), it.`type`, Parameter.VarValModifier.None, listOf()) }
|
||||
classBodyElements.add(PrimaryConstructor(this, MemberComments.Empty, setOf(Modifier.PRIVATE),
|
||||
val parameters = finalOrWithEmptyInitializerFields.map { field ->
|
||||
val varValModifier = if (field.modifiers.contains(Modifier.FINAL)) Parameter.VarValModifier.Val else Parameter.VarValModifier.Var
|
||||
Parameter(field.identifier, field.`type`, varValModifier, field.modifiers.filter { ACCESS_MODIFIERS.contains(it) })
|
||||
}
|
||||
classBodyElements.add(PrimaryConstructor(this,
|
||||
MemberComments.Empty,
|
||||
setOf(Modifier.PRIVATE),
|
||||
ParameterList(parameters),
|
||||
Block(createInitStatementsFromFields(finalOrWithEmptyInitializerFields))))
|
||||
Block.Empty))
|
||||
classBodyElements.removeAll(finalOrWithEmptyInitializerFields)
|
||||
}
|
||||
|
||||
val baseClassParams: List<Expression> = run {
|
||||
@@ -459,15 +465,6 @@ public class Converter(val project: Project, val settings: ConverterSettings) {
|
||||
return expression
|
||||
}
|
||||
|
||||
private fun createInitStatementsFromFields(fields: List<Field>): List<Statement> {
|
||||
val result = ArrayList<Statement>()
|
||||
for (field in fields) {
|
||||
val kotlinIdentifier = field.identifier.toKotlin()
|
||||
result.add(DummyStringExpression(kotlinIdentifier + " = " + "_" + kotlinIdentifier))
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
private fun createPrimaryConstructorInvocation(s: String, fields: List<Field>, initializers: Map<String, String>): String {
|
||||
return s + "(" + fields.map { initializers[it.identifier.toKotlin()] }.makeString(", ") + ")"
|
||||
}
|
||||
|
||||
@@ -1,17 +1,10 @@
|
||||
public class Identifier<T> private(_myName: T, _myHasDollar: Boolean) {
|
||||
private val myName: T
|
||||
private var myHasDollar: Boolean = false
|
||||
public class Identifier<T> private(private val myName: T, private var myHasDollar: Boolean) {
|
||||
private var myNullable: Boolean = true
|
||||
|
||||
public fun getName(): T {
|
||||
return myName
|
||||
}
|
||||
|
||||
{
|
||||
myName = _myName
|
||||
myHasDollar = _myHasDollar
|
||||
}
|
||||
|
||||
class object {
|
||||
|
||||
public fun <T> init(name: T): Identifier<T> {
|
||||
|
||||
@@ -1,17 +1,10 @@
|
||||
public open class Identifier<T> private(_myName: T?, _myHasDollar: Boolean) {
|
||||
private val myName: T?
|
||||
private var myHasDollar: Boolean = false
|
||||
public open class Identifier<T> private(private val myName: T?, private var myHasDollar: Boolean) {
|
||||
private var myNullable: Boolean = true
|
||||
|
||||
public open fun getName(): T? {
|
||||
return myName
|
||||
}
|
||||
|
||||
{
|
||||
myName = _myName
|
||||
myHasDollar = _myHasDollar
|
||||
}
|
||||
|
||||
class object {
|
||||
|
||||
public open fun <T> init(name: T?): Identifier<T> {
|
||||
|
||||
@@ -1,17 +1,10 @@
|
||||
public class Identifier private(_myName: String, _myHasDollar: Boolean) {
|
||||
private val myName: String
|
||||
private var myHasDollar: Boolean = false
|
||||
public class Identifier private(private val myName: String, private var myHasDollar: Boolean) {
|
||||
private var myNullable: Boolean = true
|
||||
|
||||
public fun getName(): String {
|
||||
return myName
|
||||
}
|
||||
|
||||
{
|
||||
myName = _myName
|
||||
myHasDollar = _myHasDollar
|
||||
}
|
||||
|
||||
class object {
|
||||
|
||||
public fun init(name: String): Identifier {
|
||||
|
||||
@@ -1,17 +1,10 @@
|
||||
public open class Identifier private(_myName: String?, _myHasDollar: Boolean) {
|
||||
private val myName: String?
|
||||
private var myHasDollar: Boolean = false
|
||||
public open class Identifier private(private val myName: String?, private var myHasDollar: Boolean) {
|
||||
private var myNullable: Boolean = true
|
||||
|
||||
public open fun getName(): String? {
|
||||
return myName
|
||||
}
|
||||
|
||||
{
|
||||
myName = _myName
|
||||
myHasDollar = _myHasDollar
|
||||
}
|
||||
|
||||
class object {
|
||||
|
||||
public open fun init(name: String?): Identifier {
|
||||
|
||||
@@ -1,24 +1,4 @@
|
||||
public class Test private(_myName: String, _a: Boolean, _b: Double, _c: Float, _d: Long, _e: Int, _f: Short, _g: Char) {
|
||||
private val myName: String
|
||||
private var a: Boolean = false
|
||||
private var b: Double = 0.toDouble()
|
||||
private var c: Float = 0.toFloat()
|
||||
private var d: Long = 0
|
||||
private var e: Int = 0
|
||||
private var f: Short = 0
|
||||
private var g: Char = ' '
|
||||
|
||||
{
|
||||
myName = _myName
|
||||
a = _a
|
||||
b = _b
|
||||
c = _c
|
||||
d = _d
|
||||
e = _e
|
||||
f = _f
|
||||
g = _g
|
||||
}
|
||||
|
||||
public class Test private(private val myName: String, private var a: Boolean, private var b: Double, private var c: Float, private var d: Long, private var e: Int, private var f: Short, private var g: Char) {
|
||||
class object {
|
||||
|
||||
public fun init(): Test {
|
||||
|
||||
@@ -1,24 +1,4 @@
|
||||
public open class Test private(_myName: String?, _a: Boolean, _b: Double, _c: Float, _d: Long, _e: Int, _f: Short, _g: Char) {
|
||||
private val myName: String?
|
||||
private var a: Boolean = false
|
||||
private var b: Double = 0.toDouble()
|
||||
private var c: Float = 0.toFloat()
|
||||
private var d: Long = 0
|
||||
private var e: Int = 0
|
||||
private var f: Short = 0
|
||||
private var g: Char = ' '
|
||||
|
||||
{
|
||||
myName = _myName
|
||||
a = _a
|
||||
b = _b
|
||||
c = _c
|
||||
d = _d
|
||||
e = _e
|
||||
f = _f
|
||||
g = _g
|
||||
}
|
||||
|
||||
public open class Test private(private val myName: String?, private var a: Boolean, private var b: Double, private var c: Float, private var d: Long, private var e: Int, private var f: Short, private var g: Char) {
|
||||
class object {
|
||||
|
||||
public open fun init(): Test {
|
||||
|
||||
@@ -1,17 +1,10 @@
|
||||
public class Identifier<T> private(_myName: T, _myHasDollar: Boolean) {
|
||||
private val myName: T
|
||||
private var myHasDollar: Boolean = false
|
||||
public class Identifier<T> private(private val myName: T, private var myHasDollar: Boolean) {
|
||||
private var myNullable: Boolean = true
|
||||
|
||||
public fun getName(): T {
|
||||
return myName
|
||||
}
|
||||
|
||||
{
|
||||
myName = _myName
|
||||
myHasDollar = _myHasDollar
|
||||
}
|
||||
|
||||
class object {
|
||||
|
||||
public fun <T> init(name: T): Identifier<T> {
|
||||
|
||||
@@ -1,17 +1,10 @@
|
||||
public open class Identifier<T> private(_myName: T?, _myHasDollar: Boolean) {
|
||||
private val myName: T?
|
||||
private var myHasDollar: Boolean = false
|
||||
public open class Identifier<T> private(private val myName: T?, private var myHasDollar: Boolean) {
|
||||
private var myNullable: Boolean = true
|
||||
|
||||
public open fun getName(): T? {
|
||||
return myName
|
||||
}
|
||||
|
||||
{
|
||||
myName = _myName
|
||||
myHasDollar = _myHasDollar
|
||||
}
|
||||
|
||||
class object {
|
||||
|
||||
public open fun <T> init(name: T?): Identifier<T> {
|
||||
|
||||
Reference in New Issue
Block a user