forked from andrei-punko/java-interview-coding
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCustomEnum.java
More file actions
45 lines (35 loc) · 1.13 KB
/
Copy pathCustomEnum.java
File metadata and controls
45 lines (35 loc) · 1.13 KB
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
package by.andd3dfx.common;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class CustomEnum {
private static List<CustomEnum> items = new ArrayList<>();
private static Map<String, CustomEnum> lookup = new HashMap<>();
private final String value;
private final int ordinal;
public static CustomEnum SUNDAY = add("SUNDAY");
public static CustomEnum MONDAY = add("MONDAY");
public CustomEnum(String value, int ordinal) {
this.value = value;
this.ordinal = ordinal;
}
public static CustomEnum[] values() {
return items.toArray(new CustomEnum[0]);
}
public static CustomEnum valueOf(String value) {
return lookup.get(value);
}
public String name() {
return value;
}
public int ordinal() {
return ordinal;
}
private static CustomEnum add(String value) {
CustomEnum customEnum = new CustomEnum(value, items.size());
items.add(customEnum);
lookup.put(value, customEnum);
return customEnum;
}
}