11package com.querydsl.ksp.codegen
22
33import com.google.devtools.ksp.processing.CodeGenerator
4+ import com.google.devtools.ksp.processing.Dependencies
45import com.google.devtools.ksp.processing.Resolver
56import com.google.devtools.ksp.processing.SymbolProcessor
67import com.google.devtools.ksp.symbol.*
@@ -12,8 +13,10 @@ class QueryDslProcessor(
1213 private val codeGenerator : CodeGenerator
1314) : SymbolProcessor {
1415 val typeProcessor = QueryModelExtractor (settings)
16+ lateinit var typeResolver: Resolver
1517
1618 override fun process (resolver : Resolver ): List <KSAnnotated > {
19+ typeResolver = resolver
1720 if (settings.enable) {
1821 QueryModelType .entries.forEach { type ->
1922 resolver.getSymbolsWithAnnotation(type.associatedAnnotation)
@@ -29,14 +32,22 @@ class QueryDslProcessor(
2932 val models = typeProcessor.process()
3033 models.forEach { model ->
3134 val typeSpec = QueryModelRenderer .render(model)
35+
36+ val sources = if (model.originatingFile != null ) {
37+ arrayOf(model.originatingFile)
38+ } else if (this ::typeResolver.isInitialized) {
39+ typeResolver.getAllFiles().toList().toTypedArray()
40+ } else {
41+ emptyArray()
42+ }
43+
3244 FileSpec .builder(model.className)
3345 .indent(settings.indent)
3446 .addType(typeSpec)
3547 .build()
3648 .writeTo(
37- codeGenerator = codeGenerator,
38- aggregating = false ,
39- originatingKSFiles = listOfNotNull(model.originatingFile)
49+ codeGenerator,
50+ Dependencies (false , * sources)
4051 )
4152 }
4253 }
0 commit comments