public SimpleReferenceListenerMetadata(AbstractBeanDefinition beanDefinition) { MutablePropertyValues pvs = beanDefinition.getPropertyValues(); bindMethodName = (String) MetadataUtils.getValue(pvs, BIND_PROP); unbindMethodName = (String) MetadataUtils.getValue(pvs, UNBIND_PROP); // listener reference if (pvs.contains(LISTENER_NAME_PROP)) { listenerComponent = new SimpleRefMetadata((String) MetadataUtils.getValue(pvs, LISTENER_NAME_PROP)); } else { // convert the BeanDefinitionHolder listenerComponent = (Target) ValueFactory.buildValue(MetadataUtils.getValue(pvs, LISTENER_PROP)); } }