-
Notifications
You must be signed in to change notification settings - Fork 82
/
AutoValueClassPostProcessor.kt
41 lines (37 loc) · 1.78 KB
/
AutoValueClassPostProcessor.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package com.robohorse.robopojogenerator.generator.postrocessing.common
import com.robohorse.robopojogenerator.generator.consts.common.ClassItem
import com.robohorse.robopojogenerator.generator.consts.templates.ClassTemplate
import com.robohorse.robopojogenerator.generator.utils.ClassGenerateHelper
import com.robohorse.robopojogenerator.generator.utils.ClassTemplateHelper
import com.robohorse.robopojogenerator.models.FieldModel
import com.robohorse.robopojogenerator.models.GenerationModel
class AutoValueClassPostProcessor(
generateHelper: ClassGenerateHelper,
classTemplateHelper: ClassTemplateHelper
) : JavaPostProcessor(generateHelper, classTemplateHelper) {
override fun proceedClassBody(
classItem: ClassItem,
generationModel: GenerationModel
): String {
val classBodyBuilder = StringBuilder()
val classFields = classItem.classFields
with(classBodyBuilder) {
for (objectName in classFields.keys) {
append(classTemplateHelper.createAutoValueField(
FieldModel(
classType = classFields[objectName]?.getJavaItem(),
annotation = classItem.annotation,
fieldName = objectName,
fieldNameFormatted = generateHelper.formatClassField(objectName)
))
)
}
append(ClassTemplate.NEW_LINE)
append(classTemplateHelper.createTypeAdapter(classItem))
return toString()
}
}
override fun createClassTemplate(
classItem: ClassItem, classBody: String?, generationModel: GenerationModel
) = classTemplateHelper.createClassBodyAbstract(classItem, classBody)
}