@@ -4,7 +4,7 @@ import com.squareup.kotlinpoet.*
4
4
import java.util.*
5
5
6
6
7
- internal class ClassTypeHolder (val delegate : SourceBuildDelegate ) : TraversalDelegate {
7
+ internal class ClassTypeHolder (val delegate : SourceBuildDelegate ) : TraversalDelegate { // TODO rename, bad ontology
8
8
9
9
internal val stack = Stack <TypeSpec >()
10
10
private val jsonProcessor = JsonProcessor ()
@@ -13,9 +13,9 @@ internal class ClassTypeHolder(val delegate: SourceBuildDelegate) : TraversalDel
13
13
/* *
14
14
* Processes a single level in the tree
15
15
*/
16
- override fun processTreeLevel (levelQueue : LinkedList <TypedJsonElement >) {
16
+ override fun processTreeLevel (levelQueue : LinkedList <TypedJsonElement >) { // FIXME not ll, generify?
17
17
val fieldValues = levelQueue.filter { it.isJsonObject }.toMutableList()
18
- fieldValues.forEach { println (it) }
18
+ fieldValues.forEach { println (it) } // TODO add verbose flag to config, default to false
19
19
20
20
jsonFieldGrouper.groupCommonFieldValues(fieldValues)
21
21
.flatMap { convertFieldsToTypes(it) }
@@ -40,17 +40,17 @@ internal class ClassTypeHolder(val delegate: SourceBuildDelegate) : TraversalDel
40
40
41
41
return commonElements.filterNot { // reuse any types which already exist in the map
42
42
val containsValue = jsonProcessor.jsonElementMap.containsValue(classType)
43
- jsonProcessor.jsonElementMap.put(it.jsonElement, classType) // FIXME weird
43
+ jsonProcessor.jsonElementMap.put(it.jsonElement, classType) // FIXME feels weird
44
44
containsValue
45
45
}.map { classType }
46
46
}
47
47
48
48
private fun buildClass (commonElements : List <TypedJsonElement >, fields : Collection <String >): TypeSpec .Builder {
49
- val identifier = commonElements.last().kotlinIdentifier
49
+ val identifier = commonElements.last().kotlinIdentifier // FIXME should only pass in one if that's all that's needed!
50
50
val classBuilder = TypeSpec .classBuilder(identifier.capitalize()) // FIXME check symbol pool!
51
51
val constructor = FunSpec .constructorBuilder()
52
52
53
- if (fields.isEmpty()) {
53
+ if (fields.isEmpty()) { // FIXME misses delegate!
54
54
return classBuilder
55
55
}
56
56
@@ -67,7 +67,7 @@ internal class ClassTypeHolder(val delegate: SourceBuildDelegate) : TraversalDel
67
67
val sanitisedName = field.toKotlinIdentifier() // FIXME should be done before this
68
68
val typeName = fieldTypeMap[field]
69
69
val initializer = PropertySpec .builder(sanitisedName, typeName!! ).initializer(sanitisedName)
70
- delegate.prepareClassProperty(initializer, sanitisedName, field) // FIXME pass in original name
70
+ delegate.prepareClassProperty(initializer, sanitisedName, field)
71
71
classBuilder.addProperty(initializer.build())
72
72
constructor .addParameter(sanitisedName, typeName)
73
73
}
0 commit comments