Files
openide/plugins/devkit/intellij.devkit.workspaceModel/tests/testData/updateOldCode/after/entity.kt
Nikolay Chashnikov 609db74db6 [workspace model codegen] refactoring: move CodeWriter class and tests to devkit plugin
This is needed to get rid of dependencies on PSI in workspaceModel.codegen module and extract it to a separate library (IDEA-297350).

GitOrigin-RevId: 36cd0cafc04b6f7f92a4c746fbec473b35b5f925
2022-08-17 11:22:16 +00:00

48 lines
1.6 KiB
Kotlin

//new comment
package com.intellij.workspaceModel.test.api
import com.intellij.workspaceModel.storage.EntitySource
import com.intellij.workspaceModel.storage.GeneratedCodeApiVersion
import com.intellij.workspaceModel.storage.ModifiableWorkspaceEntity
import com.intellij.workspaceModel.storage.MutableEntityStorage
import com.intellij.workspaceModel.storage.WorkspaceEntity
import org.jetbrains.deft.ObjBuilder
import org.jetbrains.deft.Type
interface SimpleEntity : WorkspaceEntity {
val version: Int
val name: String
val isSimple: Boolean
//region generated code
@GeneratedCodeApiVersion(1)
interface Builder : SimpleEntity, ModifiableWorkspaceEntity<SimpleEntity>, ObjBuilder<SimpleEntity> {
override var version: Int
override var entitySource: EntitySource
override var name: String
override var isSimple: Boolean
}
companion object : Type<SimpleEntity, Builder>() {
operator fun invoke(version: Int,
name: String,
isSimple: Boolean,
entitySource: EntitySource,
init: (Builder.() -> Unit)? = null): SimpleEntity {
val builder = builder()
builder.version = version
builder.name = name
builder.isSimple = isSimple
builder.entitySource = entitySource
init?.invoke(builder)
return builder
}
}
//endregion
}
//region generated code
fun MutableEntityStorage.modifyEntity(entity: SimpleEntity, modification: SimpleEntity.Builder.() -> Unit) = modifyEntity(
SimpleEntity.Builder::class.java, entity, modification)
//endregion