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));
    }
  }