protected <C extends DeadboltHandler> DeadboltHandler getDeadboltHandler(final String handlerKey)
    {
        LOGGER.debug("Getting Deadbolt handler with key [{}]",
                     handlerKey);
        return handlerKey == null || Constants.DEFAULT_HANDLER_KEY.equals(handlerKey) ? handlerCache.get()
                                                                                       : handlerCache.apply(handlerKey);
    }
protected <C extends DeadboltHandler> DeadboltHandler getDeadboltHandler(final String handlerKey)
    {
        LOGGER.debug("Getting Deadbolt handler with key [{}]",
                     handlerKey);
        return handlerKey == null || Constants.DEFAULT_HANDLER_KEY.equals(handlerKey) ? handlerCache.get()
                                                                                       : handlerCache.apply(handlerKey);
    }
protected < C extends DeadboltHandler > DeadboltHandler getDeadboltHandler ( final String handlerKey ) { LOGGER . debug ( "Getting Deadbolt handler with key [{}]" , handlerKey ) ; return handlerKey == null || Constants . DEFAULT_HANDLER_KEY . equals ( handlerKey ) ? handlerCache . get ( ) : handlerCache . apply ( handlerKey ) ; }
Gets the current {@link DeadboltHandler}.  This can come from one of two places:
- a handler key is provided in the annotation.  A cached instance of that class will be used. This has the highest priority.
- the global handler defined in the application.conf by deadbolt.handler.  This has the lowest priority.

@param handlerKey the DeadboltHandler key, if any, coming from the annotation.
@param <C>        the actual class of the DeadboltHandler
@return an option for the DeadboltHandler.
Gets the current { @link DeadboltHandler } . This can come from one of two places : - a handler key is provided in the annotation . A cached instance of that class will be used . This has the highest priority . - the global handler defined in the application . conf by deadbolt . handler . This has the lowest priority .