All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.elder.sourcerer.EventData Maven / Gradle / Ivy

package org.elder.sourcerer;

import com.google.common.collect.ImmutableMap;

import java.util.Map;
import java.util.UUID;

/**
 * Event payload with metadata and related information, for writing events.
 *
 * @param  The (base) type of events wrapped.
 */
public final class EventData {
    private final String eventType;
    private final UUID eventId;
    private final ImmutableMap metadata;
    private final T payload;

    public EventData(
            final String eventType,
            final UUID eventId,
            final Map metadata,
            final T payload) {
        this.eventType = eventType;
        this.eventId = eventId;
        this.metadata = metadata == null ? null : ImmutableMap.copyOf(metadata);
        this.payload = payload;
    }

    public String getEventType() {
        return eventType;
    }

    public UUID getEventId() {
        return eventId;
    }

    public ImmutableMap getMetadata() {
        return metadata;
    }

    public T getEvent() {
        return payload;
    }

    @Override
    public String toString() {
        return "EventData{" +
                "eventType='" + eventType + '\'' +
                ", eventId=" + eventId +
                ", metadata=" + metadata +
                ", payload=" + payload +
                '}';
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy