{%- macro enum_value(enum, field, index) -%} | |
{%- if field.value -%} | |
(int) ({{field.value|expression_to_text('i32')}}) | |
{%- elif index == 0 -%} | |
0 | |
{%- else -%} | |
{{enum.fields[index - 1].name}} + 1 | |
{%- endif -%} | |
{%- endmacro -%} | |
{%- macro enum_def(enum, top_level) -%} | |
public {{ 'static ' if not top_level }}final class {{enum|name}} { | |
{% for field in enum.fields %} | |
public static final int {{field.name}} = {{enum_value(enum, field, loop.index0)}}; | |
{% endfor %} | |
private {{enum|name}}() {} | |
} | |
{%- endmacro -%} |