private void mailboxEvent(MailboxEvent mailboxEvent) { Collection<MailboxListener> listenerSnapshot = registry.getLocalMailboxListeners(mailboxEvent.getMailboxPath()); if (mailboxEvent instanceof MailboxDeletion && listenerSnapshot.size() > 0) { registry.deleteRegistryFor(mailboxEvent.getMailboxPath()); } else if (mailboxEvent instanceof MailboxRenamed && listenerSnapshot.size() > 0) { MailboxRenamed renamed = (MailboxRenamed) mailboxEvent; registry.handleRename(renamed.getMailboxPath(), renamed.getNewPath()); } deliverEventToMailboxListeners(mailboxEvent, listenerSnapshot); }
private void deliverToMailboxPathRegisteredListeners(MailboxEvent event) { Collection<MailboxListener> listenerSnapshot = mailboxListenerRegistry.getLocalMailboxListeners(event.getMailboxPath()); if (event instanceof MailboxDeletion) { mailboxListenerRegistry.deleteRegistryFor(event.getMailboxPath()); } else if (event instanceof MailboxRenamed) { MailboxRenamed renamed = (MailboxRenamed) event; mailboxListenerRegistry.handleRename(renamed.getMailboxPath(), renamed.getNewPath()); } for (MailboxListener listener : listenerSnapshot) { eventDelivery.deliver(listener, event); } }
private void deliverToMailboxPathRegisteredListeners(MailboxEvent mailboxEvent) throws MailboxException { Collection<MailboxListener> listenerSnapshot = mailboxListenerRegistry.getLocalMailboxListeners(mailboxEvent.getMailboxPath()); if (mailboxEvent instanceof MailboxDeletion && listenerSnapshot.size() > 0) { mailboxListenerRegistry.deleteRegistryFor(mailboxEvent.getMailboxPath()); mailboxPathRegister.doCompleteUnRegister(mailboxEvent.getMailboxPath()); } else if (mailboxEvent instanceof MailboxRenamed && listenerSnapshot.size() > 0) { MailboxRenamed renamed = (MailboxRenamed) mailboxEvent; mailboxListenerRegistry.handleRename(renamed.getMailboxPath(), renamed.getNewPath()); mailboxPathRegister.doRename(renamed.getMailboxPath(), renamed.getNewPath()); } for (MailboxListener listener : listenerSnapshot) { eventDelivery.deliver(listener, mailboxEvent); } }