package org.rakam.plugin; import io.netty.handler.codec.http.HttpHeaders; import io.netty.handler.codec.http.cookie.Cookie; import org.rakam.collection.Event; import org.rakam.collection.EventList; import java.net.InetAddress; import java.util.ArrayList; import java.util.List; import java.util.concurrent.CompletableFuture; public interface SyncEventMapper extends EventMapper { default List<Cookie> map(EventList events, RequestParams requestParams, InetAddress sourceAddress, HttpHeaders responseHeaders) { List<Cookie> cookies = null; for (Event event : events.events) { List<Cookie> map = map(event, requestParams, sourceAddress, responseHeaders); if (map != null) { if (cookies == null) { cookies = new ArrayList<>(); } cookies.addAll(map); } } return cookies; } List<Cookie> map(Event event, RequestParams requestParams, InetAddress sourceAddress, HttpHeaders responseHeaders); default CompletableFuture<List<Cookie>> mapAsync(Event event, RequestParams requestParams, InetAddress sourceAddress, HttpHeaders responseHeaders) { List<Cookie> map = map(event, requestParams, sourceAddress, responseHeaders); if (map == null) { return COMPLETED_EMPTY_FUTURE; } return CompletableFuture.completedFuture(map); } }