private void notifyFlagUpdate(int msn, Flags flags, Long uidNotification, FolderListener silentListener) { synchronized (_mailboxListeners) { for (FolderListener listener : _mailboxListeners) { if (listener == silentListener) { continue; } listener.flagsUpdated(msn, flags, uidNotification); } } }
@Override public void signalDeletion() { // Notify all the listeners of the new message synchronized (_mailboxListeners) { for (FolderListener listener : _mailboxListeners) { listener.mailboxDeleted(); } } }
private void expungeMessage(int msn, Collection<FolderListener> mailboxListeners) { // Notify all the listeners of the pending delete synchronized (mailboxListeners) { deleteMessage(msn); for (FolderListener expungeListener : mailboxListeners) { expungeListener.expunged(msn); } } }
@Override public long appendMessage(MimeMessage message, Flags flags, Date receivedDate) { final long uid = nextUid.getAndIncrement(); try { message.setFlags(flags, true); message.setFlag(Flags.Flag.RECENT, true); } catch (MessagingException e) { throw new IllegalStateException("Can not set flags", e); } StoredMessage storedMessage = new StoredMessage(message, receivedDate, uid); int newMsn; synchronized (mailMessages) { mailMessages.add(storedMessage); newMsn = mailMessages.size(); } // Notify all the listeners of the new message synchronized (_mailboxListeners) { for (FolderListener _mailboxListener : _mailboxListeners) { _mailboxListener.added(newMsn); } } return uid; }
@Override public void expunge(List<FolderListener> mailboxListeners, IdRange[] idRanges) { int i = 1; synchronized (mailMessages) { for (final Iterator<Map.Entry<Long, StoredMessage>> messageEntryIt = mailMessages.entrySet().iterator(); messageEntryIt.hasNext(); ) { final Map.Entry<Long, StoredMessage> messageEntry = messageEntryIt.next(); if (messageEntry.getValue().isSet(Flags.Flag.DELETED) && (idRanges == null || IdRange.containsUid(idRanges, messageEntry.getValue().getUid()))) { // Notify all the listeners of the pending delete synchronized (mailboxListeners) { messageEntryIt.remove(); for (FolderListener expungeListener : mailboxListeners) { expungeListener.expunged(i); } } } i++; } } }
/** * Method is called before the deletion of the folder. Notifies {@link FolderListener} objects with * {@link FolderListener#mailboxDeleted()} method calls. */ public void signalDeletion() { synchronized (listeners) { for (int i = 0; i < listeners.size(); i++) { FolderListener listener = (FolderListener) listeners.get(i); listener.mailboxDeleted(); } } }
protected void notifyFlagUpdate(int msn, Flags flags, Long uidNotification, FolderListener silentListener) { synchronized (listeners) { for (FolderListener listener : listeners) { if (listener == silentListener) { continue; } listener.flagsUpdated(msn, flags, uidNotification); } } }
/** * Method is called before the deletion of the folder. Notifies {@link FolderListener} objects with * {@link FolderListener#mailboxDeleted()} method calls. */ public void signalDeletion() { synchronized (listeners) { for (int i = 0; i < listeners.size(); i++) { FolderListener listener = (FolderListener) listeners.get(i); listener.mailboxDeleted(); } } }
protected void notifyFlagUpdate(int msn, Flags flags, Long uidNotification, FolderListener silentListener) { synchronized (listeners) { for (FolderListener listener : listeners) { if (listener == silentListener) { continue; } listener.flagsUpdated(msn, flags, uidNotification); } } }