api-generator-templates/Java/blocks/class/converters.twig

92 lines
2.9 KiB
Twig

{%- import '../../utils.twig' as utils -%}
{%- for field in fields -%}
{%- if field.type.type.baseTypeName == "Array" %}
@TypeConverter
@Nullable
public static String serialize{{ capitalize(field.name) }}(@Nullable final {{ utils.formatValueType(field.type.type, true) }} value) {
if (value == null) {
return null;
}
try {
return LoganSquare.serialize(value);
} catch (final IOException exception) {
return null;
}
}
@TypeConverter
@Nullable
public static {{ utils.formatValueType(field.type.type, true) }} deserialize{{ capitalize(field.name) }}(@Nullable final String value) {
if (value == null) {
return null;
}
try {
return LoganSquare.parseList(value, {{ utils.formatValueType(field.type.type.itemsType, true) }}.class);
} catch (final IOException exception) {
return null;
}
}
{%- elseif field.type.type.baseTypeName == "Map" %}
@TypeConverter
@Nullable
public static String serialize{{ capitalize(field.name) }}(@Nullable final {{ utils.formatValueType(field.type.type, true) }} value) {
if (value == null) {
return null;
}
try {
return LoganSquare.serialize(value);
} catch (final IOException exception) {
return null;
}
}
@TypeConverter
@Nullable
public static {{ utils.formatValueType(field.type.type, true) }} deserialize{{ capitalize(field.name) }}(@Nullable final String value) {
if (value == null) {
return null;
}
try {
return LoganSquare.parseMap(value, {{ utils.formatValueType(field.type.type.valuesType, true) }}.class);
} catch (final IOException exception) {
return null;
}
}
{%- elseif field.type.type.baseTypeName != "Bool"
and field.type.type.baseTypeName != "Int"
and field.type.type.baseTypeName != "Long"
and field.type.type.baseTypeName != "Double"
and field.type.type.baseTypeName != "String"
and field.type.storable != true %}
@TypeConverter
@Nullable
public static String serialize{{ capitalize(field.name) }}(@Nullable final {{ utils.formatValueType(field.type.type, true) }} value) {
if (value == null) {
return null;
}
try {
return LoganSquare.serialize(value);
} catch (final IOException exception) {
return null;
}
}
@TypeConverter
@Nullable
public static {{ utils.formatValueType(field.type.type, true) }} deserialize{{ capitalize(field.name) }}(@Nullable final String value) {
if (value == null) {
return null;
}
try {
return LoganSquare.parse(value, {{ utils.formatValueType(field.type.type, true) }}.class);
} catch (final IOException exception) {
return null;
}
}
{%- endif -%}
{%- endfor -%}