@Override
    public boolean invoke(T component, ClassMapper classMapper)
        throws IllegalAccessException,
        InvocationTargetException {

        if (method.getParameterCount() > 0
            && getMissingArgumentStrategy() == SKIP_INVOCATION
            && Stream.of(method.getParameters())
            .map(Parameter::getType)
            .map(classMapper::applyOrNull)
            .anyMatch(Objects::isNull)) {
            // Do not invoke if all arguments are optional
            // and the arguments are all null

            return false;
        }

        final Object[] args = Stream.of(method.getParameters())
            .map(Parameter::getType)
            .map(classMapper::apply)
            .toArray();

        injectorProxy.invoke(method, component, args);

        return true;
    }
An implementation of {@link Execution} that uses reflection to invoke a
method.

@param <T> the component to execute on
@author Emil Forslund
@since 1.2.0
common-parent/injector/src/main/java/com/speedment/common/injector/internal/execution/ReflectionExecutionImpl.java