summaryrefslogtreecommitdiff
path: root/generator/templates/enum_template.java
blob: 72b88494e392b093c8eda24a834e4cb9ab4b66d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
{% extends "base_template.java" %}
{% block body %}
public enum {{class_name}} {
    {%- for param in params %}
    {%- if param.description is defined or param.since is defined %}
    /**
     {%- if param.description is defined %}
     {%- for d in param.description %}
     * {{d}}
     {%- endfor %}{% endif -%}
     {%- if param.description is defined and (param.since is defined or param.see is defined) %}
     *
     {%- endif %}{% set see, deprecated, since, history, spacing, prefix = param.see, param.deprecated, param.since, param.history, '    ', ' * ' %}
     {%- include "javadoc_version_info.java" %}
     */
    {%- endif %}
    {%- if param.deprecated is defined %}
    @Deprecated
    {%- endif %}
    {%- if kind == "simple" %}
    {{param.name}}{{ "," if not loop.last }}
    {%- elif kind == "custom" %}
    {{param.name}}({{param.internal}}){{ "," if not loop.last }}
    {%- endif %}
    {%- endfor %};

    {%- if kind == "simple" %}

    /**
     * Convert String to {{class_name}}
     *
     * @param value String
     * @return {{class_name}}
     */
    public static {{class_name}} valueForString(String value) {
        try {
            return valueOf(value);
        } catch (Exception e) {
            return null;
        }
    }
    {%- elif kind == "custom" %}

    private final String VALUE;

    /**
     * Private constructor
     */
    private {{class_name}}(String value) {
        this.VALUE = value;
    }

    /**
     * Convert String to {{class_name}}
     *
     * @param value String
     * @return {{class_name}}
     */
    public static {{class_name}} valueForString(String value) {
        if (value == null) {
            return null;
        }

        for ({{class_name}} anEnum : EnumSet.allOf({{class_name}}.class)) {
            if (anEnum.toString().equals(value)) {
                return anEnum;
            }
        }
        return null;
    }

    /**
     * Return String value of element
     *
     * @return String
     */
    @Override
    public String toString() {
        return VALUE;
    }
    {%- endif %}
}
{% endblock -%}