{% macro decapitalize(text) %} {{- concat(slice(text, 0, 1) | lower, slice(text, 1, text | length)) -}} {% endmacro %} {% macro capitalize(text) %} {{- concat(slice(text, 0, 1) | upper, 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 -%}boolean{%- 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 formatOptionalValueType(valueType, nullable) %} {% import _self as self %} {%- if nullable -%} JsonOptional {%- else -%} NonNullJsonOptional {%- endif -%} {% endmacro %} {% macro formatValueType(valueType, nullable, optional) %} {% import _self as self %} {%- if optional -%} {{ self.formatOptionalValueType(valueType, nullable) }}<{{ 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 formatNullableValueSetter(fieldName, valueType, nullable) %} {%- if valueType == "List" -%} {%- if nullable -%} {{ fieldName }} != null ? new ArrayList<>({{ fieldName }}) : null {%- else -%} new ArrayList<>({{ fieldName }}) {%- endif -%} {%- elseif valueType == "Map" -%} {%- if nullable -%} {{ fieldName }} != null ? new HashMap<>({{ fieldName }}) : null {%- else -%} new HashMap<>({{ fieldName }}) {%- endif -%} {%- else -%} {{ fieldName }} {%- endif -%} {% endmacro %} {% macro formatValueSetter(object, fieldName, valueType, nullable) %} {% import _self as self %} {%- if nullable -%} {{ object }}.{{ fieldName }} = {{ self.formatNullableValueSetter(fieldName, valueType, nullable)}}; {%- else -%} {{ object }}.{{ fieldName }} = {{ fieldName }}; {%- endif -%} {% endmacro %} {% macro formatNullableValueGetter(fieldName, valueType, nullable) %} {%- if valueType == "List" -%} {%- if nullable -%} {{ fieldName }} != null ? Collections.unmodifiableList({{ fieldName }}) : null {%- else -%} Collections.unmodifiableList({{ fieldName }}) {%- endif -%} {%- elseif valueType == "Map" -%} {%- if nullable -%} {{ fieldName }} != null ? Collections.unmodifiableMap({{ fieldName }}) : null {%- else -%} Collections.unmodifiableMap({{ fieldName }}) {%- endif -%} {%- else -%} {{ fieldName }} {%- endif -%} {% endmacro %} {% macro formatValueGetter(fieldName, valueType, nullable) %} {% import _self as self %} {%- if nullable -%} return {{ self.formatNullableValueGetter(fieldName, valueType, nullable) }}; {%- else -%} return this.{{ fieldName }}; {%- endif -%} {% endmacro %} {% macro formatEquals(fieldName, valueType, optional) %} {%- if valueType == "List" -%} ObjectUtils.isCollectionsEquals({{ fieldName }}{%- if optional -%} .get() {%- endif -%}, that.{{ fieldName }}{%- if optional -%} .get() {%- endif -%}) {%- elseif valueType == "Map" -%} ObjectUtils.isMapsEquals({{ fieldName }}{%- if optional -%} .get() {%- endif -%}, that.{{ fieldName }}{%- if optional -%} .get() {%- endif -%}) {%- else -%} ObjectUtils.equals({{ fieldName }}, that.{{ fieldName }}) {%- endif -%} {% 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 %} {% macro formatWriteObject(fieldName, valueType, nullable, optional) %} {%- if nullable or optional -%} writeObject({{ fieldName }}) {%- else -%} {%- if valueType.baseTypeName == "Int" -%} writeInt({{ fieldName }}) {%- elseif valueType.baseTypeName == "Long" -%} writeLong({{ fieldName }}) {%- elseif valueType.baseTypeName == "Double" -%} writeDouble({{ fieldName }}) {%- elseif valueType.baseTypeName == "String" -%} writeUTF({{ fieldName }}) {%- elseif valueType.baseTypeName == "Bool" -%} writeBoolean({{ fieldName }}) {%- else -%} writeObject({{ fieldName }}) {%- endif -%} {%- endif -%} {% endmacro %} {% macro formatReadObject(valueType, nullable, optional) %} {% import _self as self %} {%- if nullable or optional -%} ({{ self.formatValueType(valueType, nullable, optional) }}) inputStream.readObject() {%- else -%} {%- if valueType.baseTypeName == "Int" -%} inputStream.readInt() {%- elseif valueType.baseTypeName == "Long" -%} inputStream.readLong() {%- elseif valueType.baseTypeName == "Double" -%} inputStream.readDouble() {%- elseif valueType.baseTypeName == "String" -%} inputStream.readUTF() {%- elseif valueType.baseTypeName == "Bool" -%} inputStream.readBoolean() {%- else -%} ({{ self.formatValueType(valueType, nullable, optional) }}) inputStream.readObject() {%- endif -%} {%- endif -%} {% endmacro %} {% macro formatValidateObject(object, valueTopType, valueType, nullable, optional) %} {% import _self as self %} {%- if not nullable and valueType.baseTypeName != "Int" and valueType.baseTypeName != "Long" and valueType.baseTypeName != "Double" and valueType.baseTypeName != "Bool" %} {%- if optional %} if (!{{ object }}.isEmpty()) { validateNotNull({{ object }}.get()); } {%- else %} validateNotNull({{ object }}); {%- endif -%} {%- endif -%} {%- if valueType.baseTypeName == "Map" %} {%- if optional %} if ({{ object }}.get() != null) { validateCollection({{ object }}.get().values(), CollectionValidationRule.EXCEPTION_IF_ANY_INVALID); } {%- else -%} {%- if nullable %} if ({{ object }} != null) { validateCollection({{ object }}.values(), CollectionValidationRule.EXCEPTION_IF_ANY_INVALID); } {%- else %} validateCollection({{ object }}.values(), CollectionValidationRule.EXCEPTION_IF_ANY_INVALID); {%- endif -%} {%- endif -%} {%- elseif valueType.baseTypeName == "Array" %} {%- if optional %} if ({{ object }}.get() != null) { validateCollection({{ object }}.get(), CollectionValidationRule.EXCEPTION_IF_ANY_INVALID); } {%- else %} {%- if nullable %} if ({{ object }} != null) { validateCollection({{ object }}, CollectionValidationRule.EXCEPTION_IF_ANY_INVALID); } {%- else %} validateCollection({{ object }}, CollectionValidationRule.EXCEPTION_IF_ANY_INVALID); {%- endif -%} {%- endif -%} {%- elseif valueType.baseTypeName != "Int" and valueType.baseTypeName != "Long" and valueType.baseTypeName != "Double" and valueType.baseTypeName != "Bool" and valueType.baseTypeName != "String" and valueType.baseTypeName != "Decimal" and valueType.baseTypeName != "DateTime" and (valueTopType.values is empty) %} {%- if valueTopType.allFieldsOrdered is empty %} if (((ApiModel) {{ object }}{%- if optional -%} .get() {%- endif -%}) instanceof ApiModel) { ((ApiModel) {{ object }}{%- if optional -%} .get() {%- endif -%}).validate(); } else if ({{ object }} instanceof List) { validateCollection(((List) {{ object }}), CollectionValidationRule.EXCEPTION_IF_ANY_INVALID); } else if ({{ object }} instanceof Map) { validateCollection(((Map) {{ object }}).values(), CollectionValidationRule.EXCEPTION_IF_ANY_INVALID); } {%- elseif optional %} if ({{ object }}.get() != null) { {{ object }}.get().validate(); } {%- elseif nullable %} if ({{ object }} != null) { {{ object }}.validate(); } {%- else -%} {{ object }}.validate(); {%- endif -%} {%- endif -%} {% endmacro %}