Skip to content

Commit 291dff2

Browse files
authored
Merge pull request #79 from JavaBWAPI/publicidenum
Add `public` final id for all enums
2 parents 4677f15 + baf8826 commit 291dff2

File tree

11 files changed

+38
-26
lines changed

11 files changed

+38
-26
lines changed

src/main/java/bwapi/CoordinateType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public enum CoordinateType {
2929
Arrays.stream(CoordinateType.values()).forEach(v -> idToEnum[v.id] = v);
3030
}
3131

32-
final int id;
32+
public final int id;
3333

3434
CoordinateType(final int id) {
3535
this.id = id;

src/main/java/bwapi/DamageType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public enum DamageType {
2424
None(5),
2525
Unknown(6);
2626

27-
final int id;
27+
public final int id;
2828

2929
DamageType(final int id) {
3030
this.id = id;

src/main/java/bwapi/ExplosionType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public enum ExplosionType {
3232
Air_Splash(23),
3333
Unknown(24);
3434

35-
final int id;
35+
public final int id;
3636

3737
ExplosionType(final int id) {
3838
this.id = id;

src/main/java/bwapi/Flag.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public enum Flag {
1616
*/
1717
UserInput(1);
1818

19-
final int id;
19+
public final int id;
2020

2121
Flag(final int id) {
2222
this.id = id;

src/main/java/bwapi/Key.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ public enum Key {
235235
K_PA1(253),
236236
K_OEM_CLEAR(254);
237237

238-
final int id;
238+
public final int id;
239239

240240
Key(final int id) {
241241
this.id = id;

src/main/java/bwapi/MouseButton.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public enum MouseButton {
1111
M_MIDDLE(2),
1212
M_MAX(3);
1313

14-
final int id;
14+
public final int id;
1515

1616
MouseButton(final int id) {
1717
this.id = id;

src/main/java/bwapi/Text.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,10 +115,10 @@ public enum Text {
115115
*/
116116
Turquoise(31);
117117

118-
final byte id;
118+
public final int id;
119119

120120
Text(final int id) {
121-
this.id = (byte) id;
121+
this.id = id;
122122
}
123123

124124
/**
@@ -160,7 +160,7 @@ public enum Size {
160160
*/
161161
Huge(3);
162162

163-
final int id;
163+
public final int id;
164164

165165
Size(final int id) {
166166
this.id = id;

src/main/java/bwapi/UnitCommandType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public enum UnitCommandType {
5353
None(44),
5454
Unknown(45);
5555

56-
final int id;
56+
public final int id;
5757

5858
UnitCommandType(final int id) {
5959
this.id = id;

src/main/java/bwapi/UnitSizeType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public enum UnitSizeType {
2121
None(4),
2222
Unknown(5);
2323

24-
final int id;
24+
public final int id;
2525

2626
UnitSizeType(final int id) {
2727
this.id = id;

src/main/java/bwapi/WeaponType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ public enum WeaponType {
404404
TechType.None, TechType.None, TechType.None, TechType.None, TechType.None, TechType.None, TechType.None, TechType.None, TechType.None, TechType.None, TechType.None, TechType.None, TechType.None, TechType.None, TechType.None, TechType.None, TechType.None, TechType.None, TechType.None
405405
};
406406

407-
final int id;
407+
public final int id;
408408

409409
WeaponType(final int id) {
410410
this.id = id;

src/test/java/bwapi/EnumsTest.java

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@
66
import java.lang.reflect.Field;
77
import java.lang.reflect.InvocationTargetException;
88
import java.lang.reflect.Method;
9-
import java.util.ArrayList;
9+
import java.lang.reflect.Modifier;
1010
import java.util.Arrays;
1111
import java.util.List;
1212
import java.util.Objects;
1313
import java.util.stream.Collectors;
14+
import java.util.stream.Stream;
1415

1516
import static org.assertj.core.api.Assertions.assertThat;
1617
import static org.junit.Assert.assertEquals;
@@ -22,17 +23,19 @@ public class EnumsTest {
2223
static String ID_VALUE = "id";
2324

2425

25-
static List<Class<?>> getBWAPIEnums() throws ClassNotFoundException {
26-
List<Class<?>> enums = new ArrayList<>();
27-
for (File file : Objects.requireNonNull(new File(CLASSES_LOCATION).listFiles())) {
28-
if (file.isFile()) {
29-
Class<?> cls = Class.forName("bwapi." + file.getName().replace(".java", ""));
30-
if (cls.isEnum()) {
31-
enums.add(cls);
32-
}
33-
}
34-
}
35-
return enums;
26+
static List<Class<?>> getBWAPIEnums() {
27+
return Arrays.stream(Objects.requireNonNull(new File(CLASSES_LOCATION).listFiles()))
28+
.filter(File::isFile)
29+
.map(f -> {
30+
try {
31+
return Class.forName("bwapi." + f.getName().replace(".java", ""));
32+
} catch (final ClassNotFoundException exc) {
33+
throw new RuntimeException(exc);
34+
}
35+
})
36+
.filter(Class::isEnum)
37+
.flatMap(e -> Stream.concat(Stream.of(e), Arrays.stream(e.getDeclaredClasses()).filter(Class::isEnum)))
38+
.collect(Collectors.toList());
3639
}
3740
/*
3841
* Check, via reflection, that all Enums that have an "idToEnum" array to be of correct lenght
@@ -62,7 +65,7 @@ public void checkAllidToEnumsArrayLenghts() throws Exception {
6265
}
6366

6467
@Test
65-
public void ensureSimpleGettersReturnNonNullAndDontFail() throws ClassNotFoundException, InvocationTargetException, IllegalAccessException {
68+
public void ensureSimpleGettersReturnNonNullAndDontFail() throws InvocationTargetException, IllegalAccessException {
6669
for (Class<?> cls : getBWAPIEnums()) {
6770
List<Method> simpleGetters = Arrays.stream(cls.getMethods())
6871
.filter(it -> it.getParameterCount() == 0 && it.getReturnType() != Void.TYPE)
@@ -71,11 +74,20 @@ public void ensureSimpleGettersReturnNonNullAndDontFail() throws ClassNotFoundEx
7174
for (Method getter : simpleGetters) {
7275
// WHEN
7376
Object result = getter.invoke(type);
74-
7577
// THEN
7678
assertThat(result).describedAs("When calling " + getter.getName()).isNotNull();
7779
}
7880
}
7981
}
8082
}
83+
84+
@Test
85+
public void ensureEnumsExposePublicId() throws NoSuchFieldException {
86+
for (Class<?> cls : getBWAPIEnums()) {
87+
Field idField = cls.getField(ID_VALUE);
88+
assertThat(Modifier.isPublic(idField.getModifiers()))
89+
.describedAs("ID public for class "+ cls)
90+
.isTrue();
91+
}
92+
}
8193
}

0 commit comments

Comments
 (0)