public Collection<Registration> getRegistrations(String topic, boolean forceCreate) {
        Collection<Registration> listenerList = registrations.get(topic);
        if (listenerList == null && forceCreate) {
            ConstructorFunction<String, Collection<Registration>> func
                    = key -> newSetFromMap(new ConcurrentHashMap<Registration, Boolean>());
            return ConcurrencyUtil.getOrPutIfAbsent(registrations, topic, func);
        }
        return listenerList;
    }
public Collection < Registration > getRegistrations ( String topic , boolean forceCreate ) { Collection < Registration > listenerList = registrations . get ( topic ) ; if ( listenerList == null && forceCreate ) { ConstructorFunction < String , Collection < Registration > > func = key -> newSetFromMap ( new ConcurrentHashMap < Registration , Boolean > ( ) ) ; return ConcurrencyUtil . getOrPutIfAbsent ( registrations , topic , func ) ; } return listenerList ; }
Returns the {@link Registration}s for the event {@code topic}. If there are no
registrations and {@code forceCreate}, it will create a concurrent set and put it in the registration map.

@param topic       the event topic
@param forceCreate whether to create the registration set if none exists or to return null
@return the collection of registrations for the topic or null if none exists and {@code forceCreate} is {@code false}