package com.l7tech.server.util;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

public class ApplicationContextInjector implements ApplicationContextAware, Injector, InjectingConstructor {
   private AutowireCapableBeanFactory a;

   public void setApplicationContext(ApplicationContext var1) throws BeansException {
      this.a = var1.getAutowireCapableBeanFactory();
   }

   @Override
   public void inject(Object var1) {
      this.a.autowireBeanProperties(var1, 0, false);
   }

   @Override
   public <T> T injectNew(Class<T> var1) {
      return (T)this.a.autowire(var1, 3, false);
   }

   public static void inject(ApplicationContext var0, Object var1) {
      ApplicationContextInjector var2 = new ApplicationContextInjector();
      var2.setApplicationContext(var0);
      var2.inject(var1);
   }
}
