@Override
public T produce(CreationalContext<T> creationalContext)
{
CreationalContextImpl<T> creationalContextImpl = (CreationalContextImpl<T>) creationalContext;
Contextual<T> oldContextual = creationalContextImpl.getContextual();
Map<Interceptor<?>, Object> interceptorInstances = creationalContextImpl.getWebBeansContext()
.getInterceptorResolutionService().createInterceptorInstances(interceptorInfo, creationalContextImpl);
creationalContextImpl.putContextual(oldContextual);
T instance = produce(interceptorInstances, creationalContextImpl);
if (hasInterceptorInfo())
{
instance = creationalContextImpl.getWebBeansContext().getInterceptorResolutionService()
.createProxiedInstance(instance, creationalContextImpl, creationalContext,
interceptorInfo, proxyClass, methodInterceptors, passivationId, interceptorInstances,
this::isDelegateInjection, this::filterDecorators);
creationalContextImpl.putContextual(oldContextual);
}
return instance;
}