class CoreTokenAdapter {

    public ResultHandler<Token, CoreTokenException> updateOrCreate(Token token) throws CoreTokenException {
        applyBlobStrategy(token);
        debug("UpdateOrCreate: queued {0} Token {1}\n{2}", token.getType(), token.getTokenId(), token);
        final ResultHandler<Token, CoreTokenException> updateHandler = handlerFactory.getUpdateHandler();
        dispatcher.update(token, updateHandler);
        return updateHandler;
    }

    @Inject public  CoreTokenAdapter(TokenBlobStrategy strategy, TaskDispatcher dispatcher, ResultHandlerFactory handlerFactory,
                            CTSReaperInit reaperInit, @Named(CoreTokenConstants.CTS_DEBUG) Debug debug);

}