/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  org.springframework.beans.BeansException
 *  org.springframework.beans.factory.config.AutowireCapableBeanFactory
 *  org.springframework.context.ApplicationContext
 *  org.springframework.context.ApplicationContextAware
 */
package com.l7tech.server.util;

import com.l7tech.server.util.InjectingConstructor;
import com.l7tech.server.util.Injector;
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 applicationContext) throws BeansException {
        this.a = applicationContext.getAutowireCapableBeanFactory();
    }

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

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

    public static void inject(ApplicationContext applicationContext, Object object) {
        ApplicationContextInjector applicationContextInjector = new ApplicationContextInjector();
        applicationContextInjector.setApplicationContext(applicationContext);
        applicationContextInjector.inject(object);
    }
}

