private synchronized java.util.List<NotifyMessageSet> createNotify(final BrokerKey key, final MALMessageHeader hdr,
final MALPublishBody publishBody) throws MALInteractionException, MALException
{
MALBrokerImpl.LOGGER.fine("Checking provider");
final PublisherSource details = getProviderEntry(key, hdr, false);
if (null == details)
{
MALBrokerImpl.LOGGER.warning("Provider not known");
throw new MALInteractionException(new MALStandardError(MALHelper.INCORRECT_STATE_ERROR_NUMBER, null));
}
final UpdateHeaderList hl = publishBody.getUpdateHeaderList();
details.checkPublish(hdr, hl);
final List<NotifyMessageSet> lst = new LinkedList<NotifyMessageSet>();
if (hl != null)
{
final Map<String, SubscriptionSource> rv = getConsumerMap(key);
for (Map.Entry<String, SubscriptionSource> entry : rv.entrySet())
{
entry.getValue().populateNotifyList(hdr, lst, hl, publishBody);
}
}
return lst;
}