@Override public void event(Event event) { if (event instanceof MailboxDeletion) { MailboxDeletion mailboxDeletion = (MailboxDeletion) event; isPathDeleted.put(mailboxDeletion.getMailboxPath(), true); } else if (event instanceof MailboxRenamed) { MailboxRenamed mailboxRenamed = (MailboxRenamed) event; nameCorrespondence.put(mailboxRenamed.getMailboxPath(), ((MailboxRenamed) event).getNewPath()); } } }
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); }
@Override public void event(Event event) { if (event instanceof MailboxRenamed) { MailboxRenamed mailboxRenamed = (MailboxRenamed) event; GhostMailbox.logger() .addField(MAILBOX_NAME, mailboxRenamed.getNewPath()) .addField(TYPE, ADDED) .log(logger -> logger.info("Mailbox renamed event")); GhostMailbox.logger() .addField(MAILBOX_NAME, mailboxRenamed.getMailboxPath()) .addField(TYPE, REMOVED) .log(logger -> logger.info("Mailbox renamed event")); } if (event instanceof MailboxDeletion) { MailboxDeletion mailboxDeletion = (MailboxDeletion) event; GhostMailbox.logger() .addField(MAILBOX_NAME, mailboxDeletion.getMailboxPath()) .addField(TYPE, REMOVED) .log(logger -> logger.info("Mailbox deleted event")); } if (event instanceof MailboxAdded) { MailboxAdded mailboxAdded = (MailboxAdded) event; GhostMailbox.logger() .addField(MAILBOX_NAME, mailboxAdded.getMailboxPath()) .addField(TYPE, ADDED) .log(logger -> logger.info("Mailbox added 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); } }
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); } }