public void vetoBean(AbstractBean<?, ?> bean) {
   beans.remove(bean);
   if (bean instanceof AbstractClassBean<?>) {
     classBeanMap.get(bean.getBeanClass()).remove(bean);
     if (bean instanceof InterceptorImpl<?>) {
       interceptors.remove(bean);
     }
     if (bean instanceof DecoratorImpl<?>) {
       decorators.remove(bean);
     }
   }
   if (bean instanceof ProducerMethod<?, ?>) {
     ProducerMethod<?, ?> producerMethod = cast(bean);
     producerMethodBeanMap.get(WeldMethodKey.of(producerMethod)).remove(producerMethod);
   }
   if (bean instanceof ProducerField<?, ?>) {
     producerFields.remove(bean);
   }
 }
 public void addProducerMethod(ProducerMethod<?, ?> bean) {
   producerMethodBeanMap.get(WeldMethodKey.of(bean)).add(bean);
   addAbstractBean(bean);
 }