mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 22:51:17 +07:00
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
48 lines
1.6 KiB
Kotlin
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
|