code: public static InternalListenerMetadata introspect(Class<?> listenerClass) {
      InternalListenerMetadata cachedMetadata = cache.get(listenerClass);
      if (cachedMetadata != null) {
        return cachedMetadata;
      }
      synchronized (listenerClass) {
        cachedMetadata = cache.get(listenerClass);
        if (cachedMetadata != null) {
          return cachedMetadata;
        }
        InternalListenerIntrospector introspector = new InternalListenerIntrospector(listenerClass);
        introspector.introspect();
        cache.put(listenerClass, introspector.metadata);
        return introspector.metadata;
      }
    }
docs: Introspects the given class for any defined listeners and returns the metadata.
  
  @param listenerClass
  the entity listener class
  @return the entity listener metadata