-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathEventData.java
More file actions
104 lines (90 loc) · 2.85 KB
/
EventData.java
File metadata and controls
104 lines (90 loc) · 2.85 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
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.
*/
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);
}
}