/* * Copyright OpenSearch Contributors * SPDX-License-Identifier: Apache-2.0 */ package org.opensearch.search.asynchronous.context.state; import org.opensearch.search.asynchronous.context.AsynchronousSearchContextId; import org.opensearch.search.asynchronous.listener.AsynchronousSearchContextEventListener; import java.util.function.BiConsumer; public class AsynchronousSearchTransition implements Transition { private final AsynchronousSearchState sourceState; private final AsynchronousSearchState targetState; private final BiConsumer onEvent; private final BiConsumer eventListener; private final Class eventType; public AsynchronousSearchTransition(AsynchronousSearchState sourceState, AsynchronousSearchState targetState, BiConsumer onEvent, BiConsumer eventListener, Class eventName) { this.sourceState = sourceState; this.targetState = targetState; this.onEvent = onEvent; this.eventListener = eventListener; this.eventType = eventName; } @Override public AsynchronousSearchState sourceState() { return sourceState; } @Override public AsynchronousSearchState targetState() { return targetState; } @Override public Class eventType() { return eventType; } @Override public BiConsumer onEvent() { return onEvent; } @Override public BiConsumer eventListener() { return eventListener; } }