Dutch
01/09/2022, 12:32 AMabstract class A(
open var field1: String
)
abstract class B(
override var field1 : String
) : A(field1)
I tried to also create a corresponding PropertySpec for my class, but as a result I get the following:
public abstract class B(
override field1: String
) : A() {
public override var field1: String
}ephemient
01/09/2022, 12:56 AMTypeSpec.classBuilder("B")
.addModifiers(KModifier.ABSTRACT)
.primaryConstructor(FunSpec.constructorBuilder()
.addParameter("field1", STRING)
.build())
.superclass(ClassName("example", "A"))
.addSuperclassConstructorParameter("field1")
.addProperty(PropertySpec.builder("field1", STRING, KModifier.OVERRIDE)
.mutable()
.initializer("field1")
.build())
.build()ephemient
01/09/2022, 12:57 AMpublic abstract class B(
field1: String
) : A(field1)
which still has a var field1: StringDutch
01/09/2022, 1:10 AMoverride var part, which is needed since I want to add the Room annotation "`ColumnInfo`"
Following this issue: https://github.com/square/kotlinpoet/issues/113 tells me that I need to add a property to my class, but even then, I don't get a var or val
I'm currently generating a test class with:
classBuilder.superclass(classDeclaration.buildClassName())
classBuilder.primaryConstructor(FunSpec.constructorBuilder()
.addParameter(ParameterSpec.builder("cheese", String::class)
.addModifiers(KModifier.OVERRIDE)
.build())
.build())
classBuilder.addSuperclassConstructorParameter("cheese")
classBuilder.addProperty(PropertySpec.builder("cheese", String::class)
.addModifiers(KModifier.OVERRIDE)
.mutable()
.build())
And tried it with and without the propertyephemient
01/09/2022, 1:11 AMDutch
01/09/2022, 1:16 AMvar part.
The PropertySpec is only there because in the issue it is stated that that one is neccesary for kotlinpoet to create the var or val at ParameterSpec levelephemient
01/09/2022, 1:17 AMDutch
01/09/2022, 1:19 AMDutch
01/09/2022, 1:19 AMephemient
01/09/2022, 1:21 AMpublic class A(
cheese: String
) : A(cheese) {
public override var cheese: String
}
which is validDutch
01/09/2022, 1:38 AMvar.
So now I'm back at my first problem... Since it doesn't has a `var`or is overriden I cannot add my annotionDutch
01/09/2022, 2:06 AMinitializer to be set to the ParameterSpec nameDutch
01/09/2022, 2:07 AMclassBuilder.superclass(classDeclaration.buildClassName())
classBuilder
.primaryConstructor(FunSpec.constructorBuilder()
.addParameter(ParameterSpec.builder("userName2", String::class)
.addModifiers(KModifier.OVERRIDE)
.addAnnotation(AnnotationSpec.builder(ColumnInfo::class).build())
.build())
.build())
classBuilder.addSuperclassConstructorParameter("userName2")
classBuilder.addProperty(PropertySpec.builder("userName2", String::class)
.addModifiers(KModifier.OVERRIDE)
.initializer("userName2")
.mutable()
.build())