java getters/setters generation added

This commit is contained in:
Gavriil Sitnikov 2017-06-28 04:40:54 +03:00
parent e94caa429e
commit 84044c3271
5 changed files with 88 additions and 9 deletions

View File

@ -23,4 +23,6 @@ public class {% include 'blocks/class/classtype.twig' with { type: type } %} ext
{%- include 'blocks/class/fields-initialization.twig' with { fields: fields } %}
}
{% endif %}
{%- include 'blocks/class/fields-getters-setters.twig' with { fields: fields } %}
}

View File

@ -0,0 +1,22 @@
{%- import '../../utils.twig' as utils -%}
{%- if fields is not empty -%}
{%- for field in fields %}
/**
* {{ field.description }}
*/
{{ utils.writeNullCheckAnnotation(field.type.type.baseTypeName, field.nullable, field.optional) }}
//TODO: getter with is****
public {{ utils.formatValueType(field.type.type, field.nullable, field.optional) }} get{{ utils.capitalize(field.name) }}() {
{{ utils.formatValueGetter(field.name, field.type.type, field.nullable, field.optional) }}
}
/**
* {{ field.description }}
*/
//TODO: setter with is****
public void set{{ utils.capitalize(field.name) }}({{ utils.writeNullCheckAnnotation(field.type.type.baseTypeName, field.nullable, field.optional) }} final {{ utils.formatValueType(field.type.type, field.nullable, field.optional) }} {{ field.name }}) {
{{ utils.formatValueSetter(field.name, field.type.type.baseTypeName, fiel.nullable, field.optional ) }}
}
{% endfor -%}
{%- endif -%}

View File

@ -1,11 +1,4 @@
{%- import '../../utils.twig' as utils -%}
{%- for field in fields %}
{%- if field.type.type.baseTypeName == "List" %}
this.{{ field.name }} = new ArrayList<>({{ field.name }});
{%- elseif field.type.type.baseTypeName == "Map" %}
this.{{ field.name }} = new HashMap<>({{ field.name }});
{%- else %}
//TODO NULLABLE COLLECTIONS
this.{{ field.name }} = {{ field.name }};
{%- endif -%}
{{ utils.formatValueSetter(field.name, field.type.type.baseTypeName, field.nullable, field.optional ) }}
{%- endfor -%}

View File

@ -2,6 +2,6 @@
{%- if fields is not empty -%}
{%- for field in fields -%}
{{ utils.writeNullCheckAnnotation(field.type.type.baseTypeName) }} final {{ utils.formatValueType(field.type.type, field.nullable, field.optional) }} {{ field.name }} {%- if not (loop.last) %}, {% endif %}
{{ utils.writeNullCheckAnnotation(field.type.type.baseTypeName, field.nullable, field.optional) }} final {{ utils.formatValueType(field.type.type, field.nullable, field.optional) }} {{ field.name }} {%- if not (loop.last) %}, {% endif %}
{%- endfor -%}
{%- endif -%}

View File

@ -2,6 +2,10 @@
{{- 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
@ -63,6 +67,64 @@ JsonOptional<{{ self.formatNonOptionalValueType(valueType, false) }}>
{{- 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(fieldName, valueType, nullable, optional) %}
{% import _self as self %}
{%- if optional -%}
this.{{ fieldName }} = new JsonOptional({{- self.formatNullableValueSetter(fieldName, valueType, nullable) -}});
{%- elseif nullable -%}
this.{{ fieldName }} = self.formatNullableValueSetter(fieldName, valueType, nullable) -}};
{%- else -%}
this.{{ 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, optional) %}
{% import _self as self %}
{%- if optional -%}
return new JsonOptional({{- self.formatNullableValueGetter(fieldName, valueType, nullable) -}});
{%- elseif nullable -%}
return self.formatNullableValueGetter(fieldName, valueType, nullable) -}};
{%- else -%}
return this.{{ fieldName }};
{%- endif -%}
{% endmacro %}
{% macro escapeIfNeeded(expr) %}
{%- if expr == "default" -%}
`{{ expr }}`