package org.apereo.cas.web.flow.resolver;
import org.springframework.webflow.execution.Event;
import org.springframework.webflow.execution.RequestContext;
import java.util.Set;
/**
* This is {@link CasWebflowEventResolver}
* that decides the next event in the authentication web flow.
*
* @author Misagh Moayyed
* @since 5.0.0
*/
public interface CasWebflowEventResolver {
/**
* Resolve event.
*
* @param context the context
* @return the event
*/
Set<Event> resolve(RequestContext context);
/**
* Resolve single event.
*
* @param context the context
* @return the event
*/
Event resolveSingle(RequestContext context);
/**
* Define the name of this even resolver.
* @return name of the resolver.
*/
default String getName() {
return this.getClass().getSimpleName();
}
/**
* Resolve internal event.
*
* @param context the context
* @return the event
*/
Set<Event> resolveInternal(RequestContext context);
}