@@ -52,30 +52,29 @@ class DeferredJsonMerger {
52
52
}
53
53
54
54
fun merge (payload : JsonMap ): JsonMap {
55
+ val completed = payload[" completed" ] as ? List <JsonMap >
55
56
if (merged.isEmpty()) {
56
57
// Initial payload, no merging needed (strip some fields that should not appear in the final result)
57
58
_merged + = payload - " hasNext" - " pending"
58
59
handlePending(payload)
59
- handleCompleted(payload )
60
+ handleCompleted(completed )
60
61
return merged
61
62
}
62
63
handlePending(payload)
63
64
64
65
val incrementalList = payload[" incremental" ] as ? List <JsonMap >
65
- if (incrementalList == null ) {
66
- isEmptyPayload = true
67
- } else {
68
- isEmptyPayload = false
66
+ if (incrementalList != null ) {
69
67
for (incrementalItem in incrementalList) {
70
68
mergeIncrementalData(incrementalItem)
71
69
// Merge errors (if any) of the incremental item
72
70
(incrementalItem[" errors" ] as ? List <JsonMap >)?.let { getOrPutMergedErrors() + = it }
73
71
}
74
72
}
73
+ isEmptyPayload = completed == null && incrementalList == null
75
74
76
75
hasNext = payload[" hasNext" ] as Boolean? ? : false
77
76
78
- handleCompleted(payload )
77
+ handleCompleted(completed )
79
78
80
79
(payload[" extensions" ] as ? JsonMap )?.let { getOrPutExtensions() + = it }
81
80
@@ -98,8 +97,7 @@ class DeferredJsonMerger {
98
97
}
99
98
}
100
99
101
- private fun handleCompleted (payload : JsonMap ) {
102
- val completed = payload[" completed" ] as ? List <JsonMap >
100
+ private fun handleCompleted (completed : List <JsonMap >? ) {
103
101
if (completed != null ) {
104
102
for (completedItem in completed) {
105
103
// Merge errors (if any) of the completed item
0 commit comments