package se.l4.vibe.internal.builder; import se.l4.vibe.backend.VibeBackend; import se.l4.vibe.builder.EventsBuilder; import se.l4.vibe.event.EventSeverity; import se.l4.vibe.event.Events; import se.l4.vibe.internal.EventsImpl; /** * Builder for events. * * @author Andreas Holstenson * * @param <T> */ public class EventsBuilderImpl<T> extends AbstractBuilder<EventsBuilder<T>> implements EventsBuilder<T> { private final VibeBackend backend; private EventSeverity severity; public EventsBuilderImpl(VibeBackend backend) { this.backend = backend; severity = EventSeverity.INFO; } @Override public EventsBuilder<T> setSeverity(EventSeverity severity) { this.severity = severity; return this; } @Override public Events<T> build() { return new EventsImpl<T>(severity); } @Override public Events<T> export() { verify(); Events<T> events = build(); backend.export(path, events); return events; } }