Packages
mob_new
0.4.6
0.4.20
0.4.19
0.4.18
0.4.17
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.16
0.3.15
0.3.14
0.3.13
0.3.12
0.3.11
0.3.10
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.0
0.1.45
0.1.44
0.1.43
0.1.42
0.1.40
0.1.33
0.1.30
0.1.29
0.1.28
0.1.27
0.1.26
0.1.25
0.1.24
0.1.23
0.1.21
0.1.20
0.1.19
0.1.18
0.1.17
0.1.16
0.1.15
0.1.14
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Project generator for the Mob mobile framework
Current section
Files
Jump to
Current section
Files
priv/templates/mob.new/android/app/src/main/java/MobNode.kt.eex
package <%= java_package %>
import org.json.JSONArray
import org.json.JSONObject
/**
* Immutable data class representing one node in the Mob component tree.
* Parsed from the JSON binary produced by Mob.Renderer on the BEAM.
*/
data class MobNode(
val type: String,
val props: Map<String, Any?>,
val children: List<MobNode>
)
/** Recursively parse a JSONObject into a MobNode tree. */
fun JSONObject.toMobNode(): MobNode {
val propsMap = mutableMapOf<String, Any?>()
val propsObj = optJSONObject("props") ?: JSONObject()
for (key in propsObj.keys()) {
propsMap[key] = propsObj.get(key)
}
val childList = mutableListOf<MobNode>()
val childArr = optJSONArray("children") ?: JSONArray()
for (i in 0 until childArr.length()) {
childList.add(childArr.getJSONObject(i).toMobNode())
}
return MobNode(
type = getString("type"),
props = propsMap,
children = childList
)
}