api-generator-templates/Java/utils.twig

89 lines
2.7 KiB
Twig

{% macro decapitalize(text) %}
{{- concat(slice(text, 0, 1) | lower, slice(text, 1, text | length)) -}}
{% endmacro %}
{% macro enumType(valuesTypes) %}
{%- if valuesTypes == "STRING" -%}
String
{%- elseif valuesTypes == "INT" -%}
Int
{%- endif -%}
{% endmacro %}
{% macro parentClassType(parent) %}
{%- if parent is not null %}
{{- parent.type.baseTypeName -}}
{%- else -%}
LoganSquareJsonModel
{%- endif -%}
{% endmacro %}
{% macro writeNullCheckAnnotation(baseTypeName, nullable, optional) %}
{%- if optional -%}
@NonNull
{%- elseif nullable -%}
@Nullable
{%- elseif not (baseTypeName == "Int" or baseTypeName == "Long" or baseTypeName == "Double" or baseTypeName == "Bool") -%}
@NonNull
{%- endif -%}
{% endmacro %}
{% macro formatNonOptionalValueType(valueType, tryUsePrimitive) %}
{% import _self as self %}
{%- if valueType.baseTypeName == "Int" -%}
{%- if tryUsePrimitive -%}int{%- else -%}Integer{%- endif -%}
{%- elseif valueType.baseTypeName == "Long" -%}
{%- if tryUsePrimitive -%}long{%- else -%}Long{%- endif -%}
{%- elseif valueType.baseTypeName == "Double" -%}
{%- if tryUsePrimitive -%}double{%- else -%}Double{%- endif -%}
{%- elseif valueType.baseTypeName == "Decimal" -%}
BigDecimal
{%- elseif valueType.baseTypeName == "Bool" -%}
{%- if tryUsePrimitive -%}bool{%- else -%}Boolean{%- endif -%}
{%- elseif valueType.baseTypeName == "Map" -%}
Map<{{ self.formatNonOptionalValueType(valueType.keysType, false) }}, {{ self.formatNonOptionalValueType(valueType.valuesType, false) }}>
{%- elseif valueType.baseTypeName == "Array" -%}
List<{{ self.formatNonOptionalValueType(valueType.itemsType, false) }}>
{%- else -%}
{{ valueType.baseTypeName }}
{%- endif -%}
{% endmacro %}
{% macro formatValueType(valueType, nullable, optional) %}
{% import _self as self %}
{%- if optional -%}
JsonOptional<{{ self.formatNonOptionalValueType(valueType, false) }}>
{%- else -%}
{{ self.formatNonOptionalValueType(valueType, not nullable) }}
{%- endif -%}
{% endmacro %}
{% macro formatSimpleValueType(valueType) %}
{%- import _self as self -%}
{{- self.formatValueType(valueType, true, false) -}}
{% endmacro %}
{% macro escapeIfNeeded(expr) %}
{%- if expr == "default" -%}
`{{ expr }}`
{%- else -%}
{{ expr }}
{%- endif -%}
{% endmacro %}
{% macro mappingFromMapForField(field) %}
{%- if field.type.type.baseTypeName == "DateTime" -%}
map.value("{{ field.jsonName }}", using: {{ field.name -}}Transform)
{%- else -%}
map.value("{{ field.jsonName }}")
{%- endif -%}
{% endmacro %}
{% macro mappingToMapForField(field) %}
{%- if field.type.type.baseTypeName == "DateTime" -%}
(map["{{ field.jsonName }}"], {{ field.name -}}Transform)
{%- else -%}
map["{{ field.jsonName }}"]
{%- endif -%}
{% endmacro %}