private void executionHandler(DependencyGraph graph, ClassMapper classMapper, Object instance, Execution<Object> exec) {
        // We might want to log exactly which steps we
        // have completed.
        if (INTERNAL_LOGGER.getLevel()
            .isEqualOrLowerThan(Level.DEBUG)) {

            INTERNAL_LOGGER.debug(
                "| -> %-76s |",
                limit(exec.toString(), 76)
            );
        }

        try {
            if (!exec.invoke(instance, classMapper)) {
                final MissingArgumentStrategy i = exec.getMissingArgumentStrategy();
                if (i == MissingArgumentStrategy.THROW_EXCEPTION) {
                    throw new InjectorException(format(
                        "The injector could not invoke the method '%s' " +
                            "before state '%s' since one of the parameters is not available.",
                        exec.getName(), exec.getState()));
                } else if (i == MissingArgumentStrategy.SKIP_INVOCATION && INTERNAL_LOGGER.getLevel().isEqualOrLowerThan(Level.DEBUG)) {
                    INTERNAL_LOGGER.debug(
                        "|      %-74s |",
                        limit("(Not invoked due to missing optional dependencies.)", 74)
                    );
                }
            }
        } catch (final ReflectiveOperationException ex) {
            throwInjectorException(graph, exec, ex);
        }
    }
Default implementation of the {@link InjectorBuilder}-interface.

@author Emil Forslund
@since  1.2.0
common-parent/injector/src/main/java/com/speedment/common/injector/internal/InjectorBuilderImpl.java