Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit c00d562

Browse filesBrowse files
committed
Remove internal map-only enum
We took a change that added an enum that was used purely for mapping from EventInfo.type to GHEvent. This seemed fine but that enum is used only by EventInfo. This change removed that enum and adds a map to EventInfo to do the required mapping. This avoids shoehorning mapping behavior in to the EnumUtils.
1 parent a79971e commit c00d562
Copy full SHA for c00d562

File tree

Expand file treeCollapse file tree

8 files changed

+55
-66
lines changed
Filter options
Expand file treeCollapse file tree

8 files changed

+55
-66
lines changed

‎src/main/java/org/kohsuke/github/GHApp.java

Copy file name to clipboardExpand all lines: src/main/java/org/kohsuke/github/GHApp.java
+1-2Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import java.io.IOException;
66
import java.net.URL;
77
import java.util.List;
8-
import java.util.Locale;
98
import java.util.Map;
109
import java.util.stream.Collectors;
1110

@@ -119,7 +118,7 @@ public void setExternalUrl(String externalUrl) {
119118
*/
120119
public List<GHEvent> getEvents() {
121120
return events.stream()
122-
.map(e -> EnumUtils.getEnumOrDefault(GHEvent.class, e.toUpperCase(Locale.ROOT), GHEvent.UNKNOWN))
121+
.map(e -> EnumUtils.getEnumOrDefault(GHEvent.class, e, GHEvent.UNKNOWN))
123122
.collect(Collectors.toList());
124123
}
125124

‎src/main/java/org/kohsuke/github/GHAppInstallation.java

Copy file name to clipboardExpand all lines: src/main/java/org/kohsuke/github/GHAppInstallation.java
+1-2Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import java.net.MalformedURLException;
88
import java.net.URL;
99
import java.util.List;
10-
import java.util.Locale;
1110
import java.util.Map;
1211
import java.util.stream.Collectors;
1312

@@ -254,7 +253,7 @@ public void setPermissions(Map<String, GHPermissionType> permissions) {
254253
*/
255254
public List<GHEvent> getEvents() {
256255
return events.stream()
257-
.map(e -> EnumUtils.getEnumOrDefault(GHEvent.class, e.toUpperCase(Locale.ROOT), GHEvent.UNKNOWN))
256+
.map(e -> EnumUtils.getEnumOrDefault(GHEvent.class, e, GHEvent.UNKNOWN))
258257
.collect(Collectors.toList());
259258
}
260259

‎src/main/java/org/kohsuke/github/GHEvent.java

Copy file name to clipboardExpand all lines: src/main/java/org/kohsuke/github/GHEvent.java
-46Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
package org.kohsuke.github;
22

3-
import org.kohsuke.github.internal.EnumUtils;
4-
53
import java.util.Locale;
64

7-
import javax.annotation.Nonnull;
8-
95
/**
106
* Hook event type.
117
*
@@ -91,46 +87,4 @@ String symbol() {
9187
return "*";
9288
return name().toLowerCase(Locale.ENGLISH);
9389
}
94-
95-
/**
96-
* Representation of GitHub Event Type
97-
*
98-
* @see <a href="https://docs.github.com/en/developers/webhooks-and-events/github-event-types">GitHub event
99-
* types</a>
100-
*/
101-
enum GitHubEventType {
102-
CommitCommentEvent(COMMIT_COMMENT),
103-
CreateEvent(CREATE),
104-
DeleteEvent(DELETE),
105-
ForkEvent(FORK),
106-
GollumEvent(GOLLUM),
107-
IssueCommentEvent(ISSUE_COMMENT),
108-
IssuesEvent(ISSUES),
109-
MemberEvent(MEMBER),
110-
PublicEvent(PUBLIC),
111-
PullRequestEvent(PULL_REQUEST),
112-
PullRequestReviewEvent(PULL_REQUEST_REVIEW),
113-
PullRequestReviewCommentEvent(PULL_REQUEST_REVIEW_COMMENT),
114-
PushEvent(PUSH),
115-
ReleaseEvent(RELEASE),
116-
WatchEvent(WATCH),
117-
UnknownEvent(UNKNOWN);
118-
119-
private final GHEvent event;
120-
GitHubEventType(GHEvent event) {
121-
this.event = event;
122-
}
123-
124-
/**
125-
* Required due to different naming conventions between different GitHub event names for Webhook events and
126-
* GitHub events
127-
*
128-
* @param event
129-
* the github event as a string to convert to Event enum
130-
* @return GHEvent
131-
*/
132-
static GHEvent transformToGHEvent(@Nonnull String event) {
133-
return EnumUtils.getEnumOrDefault(GitHubEventType.class, event, UnknownEvent).event;
134-
}
135-
}
13690
}

‎src/main/java/org/kohsuke/github/GHEventInfo.java

Copy file name to clipboardExpand all lines: src/main/java/org/kohsuke/github/GHEventInfo.java
+44-3Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@
22

33
import com.fasterxml.jackson.databind.node.ObjectNode;
44
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
5-
import org.kohsuke.github.GHEvent.GitHubEventType;
65

76
import java.io.IOException;
8-
import java.util.Date;
7+
import java.util.*;
98

109
/**
1110
* Represents an event.
@@ -19,6 +18,16 @@ public class GHEventInfo extends GitHubInteractiveObject {
1918

2019
private long id;
2120
private String created_at;
21+
22+
/**
23+
* Representation of GitHub Event API Event Type.
24+
*
25+
* This is not the same as the values used for hook methods such as
26+
* {@link GHRepository#createHook(String, Map, Collection, boolean)}.
27+
*
28+
* @see <a href="https://docs.github.com/en/developers/webhooks-and-events/github-event-types">GitHub event
29+
* types</a>
30+
*/
2231
private String type;
2332

2433
// these are all shallow objects
@@ -41,13 +50,45 @@ public static class GHEventRepository {
4150
private String name; // owner/repo
4251
}
4352

53+
static final Map<String, GHEvent> mapTypeStringToEvent = createEventMap();
54+
55+
/**
56+
* Map for GitHub Event API Event Type to GHEvent.
57+
*
58+
* @see <a href="https://docs.github.com/en/developers/webhooks-and-events/github-event-types">GitHub event
59+
* types</a>
60+
*/
61+
private static Map<String, GHEvent> createEventMap() {
62+
HashMap<String, GHEvent> map = new HashMap<>();
63+
map.put("CommitCommentEvent", GHEvent.COMMIT_COMMENT);
64+
map.put("CreateEvent", GHEvent.CREATE);
65+
map.put("DeleteEvent", GHEvent.DELETE);
66+
map.put("ForkEvent", GHEvent.FORK);
67+
map.put("GollumEvent", GHEvent.GOLLUM);
68+
map.put("IssueCommentEvent", GHEvent.ISSUE_COMMENT);
69+
map.put("IssuesEvent", GHEvent.ISSUES);
70+
map.put("MemberEvent", GHEvent.MEMBER);
71+
map.put("PublicEvent", GHEvent.PUBLIC);
72+
map.put("PullRequestEvent", GHEvent.PULL_REQUEST);
73+
map.put("PullRequestReviewEvent", GHEvent.PULL_REQUEST_REVIEW);
74+
map.put("PullRequestReviewCommentEvent", GHEvent.PULL_REQUEST_REVIEW_COMMENT);
75+
map.put("PushEvent", GHEvent.PUSH);
76+
map.put("ReleaseEvent", GHEvent.RELEASE);
77+
map.put("WatchEvent", GHEvent.WATCH);
78+
return Collections.unmodifiableMap(map);
79+
}
80+
81+
static GHEvent transformTypeToGHEvent(String type) {
82+
return mapTypeStringToEvent.getOrDefault(type, GHEvent.UNKNOWN);
83+
}
84+
4485
/**
4586
* Gets type.
4687
*
4788
* @return the type
4889
*/
4990
public GHEvent getType() {
50-
return GitHubEventType.transformToGHEvent(type);
91+
return transformTypeToGHEvent(type);
5192
}
5293

5394
GHEventInfo wrapUp(GitHub root) {

‎src/main/java/org/kohsuke/github/GHHook.java

Copy file name to clipboardExpand all lines: src/main/java/org/kohsuke/github/GHHook.java
+1-5Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import java.util.Collections;
99
import java.util.EnumSet;
1010
import java.util.List;
11-
import java.util.Locale;
1211
import java.util.Map;
1312

1413
/**
@@ -41,10 +40,7 @@ public String getName() {
4140
public EnumSet<GHEvent> getEvents() {
4241
EnumSet<GHEvent> s = EnumSet.noneOf(GHEvent.class);
4342
for (String e : events) {
44-
if (e.equals("*"))
45-
s.add(GHEvent.ALL);
46-
else
47-
s.add(EnumUtils.getEnumOrDefault(GHEvent.class, e.toUpperCase(Locale.ROOT), GHEvent.UNKNOWN));
43+
s.add(e.equals("*") ? GHEvent.ALL : EnumUtils.getEnumOrDefault(GHEvent.class, e, GHEvent.UNKNOWN));
4844
}
4945
return s;
5046
}

‎src/main/java/org/kohsuke/github/internal/EnumUtils.java

Copy file name to clipboardExpand all lines: src/main/java/org/kohsuke/github/internal/EnumUtils.java
+3-3Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public static <E extends Enum<E>> E getNullableEnumOrDefault(Class<E> enumClass,
3030
if (value == null) {
3131
return null;
3232
}
33-
return getEnumOrDefault(enumClass, value.toUpperCase(Locale.ROOT), defaultEnum);
33+
return getEnumOrDefault(enumClass, value, defaultEnum);
3434
}
3535

3636
/**
@@ -49,8 +49,8 @@ public static <E extends Enum<E>> E getNullableEnumOrDefault(Class<E> enumClass,
4949
*/
5050
public static <E extends Enum<E>> E getEnumOrDefault(Class<E> enumClass, String value, E defaultEnum) {
5151
try {
52-
return Enum.valueOf(enumClass, value);
53-
} catch (IllegalArgumentException e) {
52+
return Enum.valueOf(enumClass, value.toUpperCase(Locale.ROOT));
53+
} catch (NullPointerException | IllegalArgumentException e) {
5454
LOGGER.warning("Unknown value " + value + " for enum class " + enumClass.getName() + ", defaulting to "
5555
+ defaultEnum.name());
5656
return defaultEnum;

‎src/test/java/org/kohsuke/github/GHEventTest.java

Copy file name to clipboardExpand all lines: src/test/java/org/kohsuke/github/GHEventTest.java
+3-5Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.kohsuke.github;
22

33
import org.junit.Test;
4-
import org.kohsuke.github.GHEvent.GitHubEventType;
54

65
import static org.hamcrest.MatcherAssert.assertThat;
76
import static org.hamcrest.Matchers.is;
@@ -26,10 +25,9 @@ private static GHEvent oldTransformationFunction(String t) {
2625

2726
@Test
2827
public void regressionTest() {
29-
assertThat(GitHubEventType.transformToGHEvent("NewlyAddedOrBogusEvent"), is(GHEvent.UNKNOWN));
30-
for (GitHubEventType gitHubEventType : GitHubEventType.values()) {
31-
assertThat(GitHubEventType.transformToGHEvent(gitHubEventType.name()),
32-
is(oldTransformationFunction(gitHubEventType.name())));
28+
assertThat(GHEventInfo.transformTypeToGHEvent("NewlyAddedOrBogusEvent"), is(GHEvent.UNKNOWN));
29+
for (String eventInfoType : GHEventInfo.mapTypeStringToEvent.keySet()) {
30+
assertThat(GHEventInfo.transformTypeToGHEvent(eventInfoType), is(oldTransformationFunction(eventInfoType)));
3331
}
3432
}
3533
}

‎src/test/java/org/kohsuke/github/internal/EnumUtilsTest.java

Copy file name to clipboardExpand all lines: src/test/java/org/kohsuke/github/internal/EnumUtilsTest.java
+2Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ public class EnumUtilsTest {
99

1010
@Test
1111
public void testGetEnum() {
12+
assertThat(EnumUtils.getEnumOrDefault(TestEnum.class, null, TestEnum.UNKNOWN), equalTo(TestEnum.UNKNOWN));
13+
1214
assertThat(EnumUtils.getNullableEnumOrDefault(TestEnum.class, null, TestEnum.UNKNOWN), nullValue());
1315
assertThat(EnumUtils.getNullableEnumOrDefault(TestEnum.class, "foobar", TestEnum.UNKNOWN),
1416
equalTo(TestEnum.UNKNOWN));

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.