code: private Function wrapValueMethod(Method method) {
      return c -> {
        try {
          return method.invoke(this, c);
        } catch (InvocationTargetException e) {
          throw new CommandException(e);
        } catch (IllegalAccessException e) {
          throw new AssertionError(e);
        }
      };
    }
docs: Wraps a value method.