private Provider<?> decorate(final BeanSpec spec, Provider provider, final boolean isFactory) { if (BEAN_SPEC_PROVIDER == provider) { return provider; } final Provider postConstructed = PostConstructProcessorInvoker.decorate(spec, PostConstructorInvoker.decorate(spec, ElementLoaderProvider.decorate(spec, provider, this), this), this); Provider eventFired = new Provider() { @Override public Object get() { if (supportInjectionPoint && !isFactory) { TGT_SPEC.set(spec); } try { Object bean = postConstructed.get(); fireInjectEvent(bean, spec); return bean; } finally { if (supportInjectionPoint && !isFactory) { TGT_SPEC.remove(); } } } }; return ScopedProvider.decorate(spec, eventFired, this); }
private Provider<?> decorate(final BeanSpec spec, Provider provider, final boolean isFactory) { if (BEAN_SPEC_PROVIDER == provider) { return provider; } final Provider postConstructed = PostConstructProcessorInvoker.decorate(spec, PostConstructorInvoker.decorate(spec, ElementLoaderProvider.decorate(spec, provider, this), this), this); Provider eventFired = new Provider() { @Override public Object get() { if (supportInjectionPoint && !isFactory) { TGT_SPEC.set(spec); } try { Object bean = postConstructed.get(); fireInjectEvent(bean, spec); return bean; } finally { if (supportInjectionPoint && !isFactory) { TGT_SPEC.remove(); } } } }; return ScopedProvider.decorate(spec, eventFired, this); }