-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEnum.java.template
More file actions
34 lines (32 loc) · 871 Bytes
/
Enum.java.template
File metadata and controls
34 lines (32 loc) · 871 Bytes
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
<%import static StaticFunctions.*%>
package <%= package_name %>;
import java.util.stream.Stream;
public enum ${enum_name} <%= implements_ %>{
<% items.each { item ->
next = item != items.last() ? "," : ";"
%> ${item}${next}
<% } %>
<%
arg_list = ""
java_fields_collection = java_fields.collect { e -> "${e.value} ${e.key}" }
java_fields_collection.each {
arg_list = arg_list + (it != java_fields_collection.last() ? "final ${it}, " : "final ${it}")
%> private final $it;
<% } %>
private ${enum_name}(${arg_list}) {
<%
java_field_names = java_fields.collect { e -> "${e.key}" }
java_field_names.each { %> this.${it} = ${it};
<% } %>
}
<%
java_fields.each { e ->
%>
public ${e.value} get${cap(e.key)}() {
return ${e.key};
}
<% } %>
public static Stream<<%=enum_name%>> stream() {
return Stream.of(<%=enum_name%>.values());
}
}