1 package com.atlassian.johnson.event;
2
3 import javax.annotation.Nonnull;
4 import javax.annotation.Nullable;
5 import javax.annotation.ParametersAreNonnullByDefault;
6 import java.util.Objects;
7 import java.util.function.Predicate;
8
9 import static java.util.Arrays.asList;
10
11
12
13
14
15
16 @ParametersAreNonnullByDefault
17 public final class EventPredicates {
18
19
20
21
22
23
24
25
26 @Nonnull
27 public static Predicate<Event> level(final EventLevel... levels) {
28 return event -> asList(levels).contains(event.getLevel());
29 }
30
31
32
33
34
35
36
37
38 @Nonnull
39 public static Predicate<Event> type(final EventType type) {
40 return event -> type.equals(event.getKey());
41 }
42
43
44
45
46
47
48
49
50
51
52
53 @Nonnull
54 public static Predicate<Event> attributeEquals(final String name, @Nullable final Object value) {
55 return event -> Objects.equals(value, event.getAttribute(name));
56 }
57
58 private EventPredicates() {}
59 }