class SessionStartedStateController implements IdpSelectingStateController, EidasCountrySelectingStateController, ResponseProcessingStateController, ErrorResponsePreparedStateController {

    @Override
    public void selectCountry(String countryEntityId) {
        EidasCountrySelectedState eidasCountrySelectedState = new EidasCountrySelectedState(
                countryEntityId,
                state.getRelayState().orElse(null),
                state.getRequestId(),
                state.getRequestIssuerEntityId(),
                state.getSessionExpiryTimestamp(),
                state.getAssertionConsumerServiceUri(),
                state.getSessionId(),
                state.getTransactionSupportsEidas(),
                Collections.singletonList(LevelOfAssurance.LEVEL_2), // TODO: EID-154 will plug in a real LOA
                state.getForceAuthentication().orElse(null)
        );
        stateTransitionAction.transitionTo(eidasCountrySelectedState);
        hubEventLogger.logCountrySelectedEvent(eidasCountrySelectedState);
    }

    public  SessionStartedStateController(
            final SessionStartedState state,
            final HubEventLogger hubEventLogger,
            final StateTransitionAction stateTransitionAction,
            final TransactionsConfigProxy transactionsConfigProxy,
            final ResponseFromHubFactory responseFromHubFactory,
            final IdentityProvidersConfigProxy identityProvidersConfigProxy);

}