code: private BasicInjectionTarget<T> prepareInjectionTarget(BasicInjectionTarget<T> injectionTarget) {
          try {
              postProcess(initialize(validate(injectionTarget)));
              return injectionTarget;
          } catch (Throwable e) {
              throw new IllegalArgumentException(e);
          }
      }
docs: /*
  Just a shortcut for calling validate, initialize and postProcess