Files
breez-sdk-liquid/lib/bindings/bindings-react-native/src/gen_kotlin/templates/EnumTemplate.kt
ok300 6589a8799b Rename workspace members (subfolders) (#149)
* Rename ls-sdk-bindings workspace member

* Rename ls-sdk-core workspace member

* Rename ls-sdk-react-native
2024-05-02 18:22:32 +00:00

56 lines
2.0 KiB
Kotlin

{%- let e = ci.get_enum_definition(name).unwrap() %}
{%- if e.is_flat() %}
fun as{{ type_name }}(type: String): {{ type_name }} {
return {{ type_name }}.valueOf(type.uppercase())
}
{%- else %}
fun as{{ type_name }}({{ type_name|var_name|unquote }}: ReadableMap): {{ type_name }}? {
val type = {{ type_name|var_name|unquote }}.getString("type")
{% for variant in e.variants() -%}
if (type == "{{ variant.name()|var_name|unquote }}") {
{% if variant.has_fields() -%}
return {{ type_name }}.{{ variant.name() }}( {{ variant.fields()[0].type_()|render_from_map(ci, type_name|var_name|unquote, variant.fields()[0].name()|var_name|unquote, false) }})
{%- else %}
return {{ type_name }}.{{ variant.name() }}
{%- endif %}
}
{% endfor -%}
return null
}
fun readableMapOf({{ type_name|var_name|unquote }}: {{ type_name }}): ReadableMap? {
val map = Arguments.createMap()
when ({{ type_name|var_name|unquote }}) {
{% for variant in e.variants() -%}
is {{ type_name }}.{{ variant.name() }} -> {
pushToMap(map, "type", "{{ variant.name()|var_name|unquote }}")
{% for f in variant.fields() -%}
pushToMap(map, "{{ f.name()|var_name|unquote }}", {{ f.type_()|render_to_map(ci,type_name|var_name|unquote,f.name()|var_name|unquote, false) }})
{% endfor -%}
}
{% endfor %}
}
return map
}
{%- endif %}
fun as{{ type_name }}List(arr: ReadableArray): List<{{ type_name }}> {
val list = ArrayList<{{ type_name }}>()
for (value in arr.toArrayList()) {
when (value) {
{%- if e.is_flat() %}
is String -> list.add(as{{ type_name }}(value)!!)
{%- else %}
is ReadableMap -> list.add(as{{ type_name }}(value)!!)
{%- endif %}
else -> throw LsSdkException.Generic(errUnexpectedType("${value::class.java.name}"))
}
}
return list
}