-
Notifications
You must be signed in to change notification settings - Fork 82
/
CommonJavaPostProcessor.kt
65 lines (61 loc) · 2.8 KB
/
CommonJavaPostProcessor.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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 CommonJavaPostProcessor(
generateHelper: ClassGenerateHelper,
classTemplateHelper: ClassTemplateHelper
) : JavaPostProcessor(generateHelper, classTemplateHelper) {
override fun proceedClassBody(
classItem: ClassItem,
generationModel: GenerationModel
): String {
val classBodyBuilder = StringBuilder()
val classMethodBuilder = StringBuilder()
val classFields = classItem.classFields
with(classBodyBuilder) {
for (objectName in classFields.keys) {
val classItemValue = classFields[objectName]?.getJavaItem()
val itemNameFormatted = generateHelper.formatClassField(objectName)
append(classTemplateHelper.createFiled(
FieldModel(
classType = classItemValue,
fieldNameFormatted = itemNameFormatted,
fieldName = objectName,
annotation = classItem.annotation
)
))
}
for (objectName in classFields.keys) {
val classItemValue = classFields[objectName]?.getJavaItem()
val itemNameFormatted = generateHelper.formatClassField(objectName)
if (generationModel.useSetters) {
append(ClassTemplate.NEW_LINE)
append(classTemplateHelper.createSetter(
itemNameFormatted,
classItemValue))
}
if (generationModel.useGetters) {
append(ClassTemplate.NEW_LINE)
append(classTemplateHelper.createGetter(
itemNameFormatted,
classItemValue))
}
}
if (generationModel.useStrings) {
append(ClassTemplate.NEW_LINE)
append(classTemplateHelper.createToString(
classItem
))
}
append(classMethodBuilder)
return toString()
}
}
override fun createClassTemplate(
classItem: ClassItem, classBody: String?, generationModel: GenerationModel
) = classTemplateHelper.createClassBody(classItem, classBody)
}