code: @Override
      public Object inject(Class Klass, boolean doPostConstruct, ExternalContext eContext) throws InjectionProviderException {
  
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && logger.isLoggable(Level.FINE)) {
              logger.logp(Level.FINE, CLASS_NAME,
                          "inject(Class<?> Klass,boolean,econtext)", "Klass =" + Klass.getName(), ", doPostConstruct = " + doPostConstruct + ", eContext = " + eContext);
          }
  
          ManagedObject mo = null;
          if (isAvailable) {
              try {
                  // boolean passed to runtimeAnnotationHelper indicates whether or not to delay postConstruct
                  // so need the opposite value to doPostConstruct
                  mo = runtimeAnnotationHelper.inject(Klass, !doPostConstruct);
  
                  if (eContext != null) {
  
                      List<BeanEntry> injectedBeanStorage =
                                      (List<BeanEntry>) eContext.getApplicationMap().get(FacesConfigurator.INJECTED_BEAN_STORAGE_KEY);
  
                      injectedBeanStorage.add(new BeanEntry(mo.getObject(), mo.getContextData(CreationalContext.class)));
  
                  }
              } catch (RuntimeException exc) {
                  throw new InjectionProviderException(exc);
              }
          }
          return mo;
      }
docs: {@inheritDoc}