-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathEventData.java
More file actions
129 lines (113 loc) · 3.73 KB
/
EventData.java
File metadata and controls
129 lines (113 loc) · 3.73 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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package io.kurrent.dbclient;
import java.util.UUID;
/**
* Represents an event that will be sent to KurrentDB.
*/
public final class EventData {
private final UUID eventId;
private final String eventType;
private final String contentType;
private final byte[] eventData;
private final byte[] userMetadata;
EventData(UUID eventId, String eventType, String contentType, byte[] eventData, byte[] userMetadata) {
this.eventId = eventId;
this.eventType = eventType;
this.contentType = contentType;
this.eventData = eventData;
this.userMetadata = userMetadata;
}
/**
* Returns event's unique identifier
*/
public UUID getEventId() {
return eventId;
}
/**
* Returns event's type.
*/
public String getEventType() {
return eventType;
}
/**
* Returns event's content's type
*/
public String getContentType() {
return contentType;
}
/**
* Returns event's payload data
*/
public byte[] getEventData() {
return eventData;
}
/**
* Returns event's custom user metadata.
*/
public byte[] getUserMetadata() {
return userMetadata;
}
/**
* Configures an event data builder to host a JSON payload.
* @param eventType event's type.
* @param eventData event's payload.
* @return an event data builder.
* @param <A> a type that can be serialized in JSON.
*/
@Deprecated
public static <A> EventDataBuilder builderAsJson(String eventType, A eventData) {
return builderAsJson(null, eventType, eventData);
}
/**
* Configures an event data builder to host a JSON payload.
* @param eventId event's id.
* @param eventType event's type.
* @param eventData event's payload.
* @return an event data builder.
* @param <A> a type that can be serialized in JSON.
*/
@Deprecated
public static <A> EventDataBuilder builderAsJson(UUID eventId, String eventType, A eventData) {
return EventDataBuilder.json(eventId, eventType, eventData);
}
/**
* Configures an event data builder to host a JSON payload.
* @param eventType event's type.
* @param eventData event's payload.
* @return an event data builder.
*/
public static EventDataBuilder builderAsJson(String eventType, byte[] eventData) {
return EventDataBuilder.json(eventType, eventData);
}
/**
* Configures an event data builder to host a JSON payload.
* @param eventId event's id.
* @param eventType event's type.
* @param eventData event's payload.
* @return an event data builder.
*/
public static EventDataBuilder builderAsJson(UUID eventId, String eventType, byte[] eventData) {
return EventDataBuilder.json(eventId, eventType, eventData);
}
/**
* Configures an event data builder to host a binary payload.
* @param eventType event's type.
* @param eventData event's payload.
* @return an event data builder.
*/
public static EventDataBuilder builderAsBinary(String eventType, byte[] eventData) {
return builderAsBinary(null, eventType, eventData);
}
/**
* Configures an event data builder to host a binary payload.
* @param eventId event's id.
* @param eventType event's type.
* @param eventData event's payload.
* @return an event data builder.
*/
public static EventDataBuilder builderAsBinary(UUID eventId, String eventType, byte[] eventData) {
return EventDataBuilder.binary(eventId, eventType, eventData);
}
public MessageData toMessageData() {
return new MessageData(eventType, eventData, userMetadata, eventId, contentType);
}
}