class SlotModelArgumentResolver implements ArgumentResolver {

    @Override
    public Optional<Object> resolve(ArgumentResolverContext input) {
        try {
            if (input.requestTypeEquals(IntentRequest.class)) {
                Optional<Slot> annotation = input.getMethodParameter().findAnnotation(Slot.class);
                if (annotation.isPresent()) {
                    return Optional.of(intentMapper.parseIntentSlot((IntentRequest) input.unwrapRequest(), annotation.get().value()));
                }
            }
        } catch (IntentParseException e) {
        }
        return Optional.empty();
    }

    public  SlotModelArgumentResolver(IntentMapper intentMapper);

}