package io.divolte.server; import io.undertow.server.HttpServerExchange; import javax.annotation.ParametersAreNonnullByDefault; import java.time.Instant; import java.util.Objects; @ParametersAreNonnullByDefault public abstract class UndertowEvent { public final Instant requestTime; public final HttpServerExchange exchange; public final DivolteIdentifier partyId; public UndertowEvent(final Instant requestTime, final HttpServerExchange exchange, final DivolteIdentifier partyId) { this.requestTime = Objects.requireNonNull(requestTime); this.exchange = Objects.requireNonNull(exchange); this.partyId = Objects.requireNonNull(partyId); } public abstract DivolteEvent parseRequest() throws IncompleteRequestException; }