
io.serialized.client.aggregate.Event Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of serialized-client Show documentation
Show all versions of serialized-client Show documentation
Java Client for Serialized APIs
package io.serialized.client.aggregate;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.UUID;
import static java.util.Collections.unmodifiableMap;
public class Event {
private String eventId;
private String eventType;
private T data;
private String encryptedData;
public String eventId() {
return eventId;
}
public String eventType() {
return eventType;
}
public T data() {
return data;
}
public String encryptedData() {
return encryptedData;
}
public static Event.RawBuilder newEvent(String eventType) {
return new Event.RawBuilder(eventType);
}
public static Event.TypedBuilder newEvent(Class eventType) {
return new Event.TypedBuilder<>(eventType);
}
public static Event.TypedBuilder newEvent(T data) {
Class aClass = (Class) data.getClass();
return new TypedBuilder<>(aClass).data(data);
}
public static class TypedBuilder {
private UUID eventId;
private final String eventType;
private T data;
private String encryptedData;
public TypedBuilder(String eventType) {
this.eventId = UUID.randomUUID();
this.eventType = eventType;
}
public TypedBuilder(Class eventType) {
this(eventType.getSimpleName());
}
public TypedBuilder eventId(UUID eventId) {
this.eventId = eventId;
return this;
}
public TypedBuilder data(T dataObject) {
this.data = dataObject;
return this;
}
public TypedBuilder eventId(String eventId) {
return eventId(UUID.fromString(eventId));
}
public TypedBuilder encryptedData(String data) {
this.encryptedData = data;
return this;
}
public Event build() {
Event event = new Event<>();
event.eventId = eventId.toString();
event.eventType = eventType;
event.data = data;
event.encryptedData = encryptedData;
return event;
}
}
public static class RawBuilder {
private UUID eventId;
private final String eventType;
private Object data = new LinkedHashMap<>();
private String encryptedData;
public RawBuilder(String eventType) {
this.eventId = UUID.randomUUID();
this.eventType = eventType;
}
public RawBuilder eventId(UUID eventId) {
this.eventId = eventId;
return this;
}
public RawBuilder eventId(String eventId) {
return eventId(UUID.fromString(eventId));
}
public RawBuilder data(Map data) {
this.data = new LinkedHashMap
© 2015 - 2025 Weber Informatics LLC | Privacy Policy