private void dispatchFlagsChange(MailboxSession mailboxSession, MailboxId mailboxId, UpdatedFlags updatedFlags) throws MailboxException { if (updatedFlags.flagsChanged()) { Mailbox mailbox = mailboxSessionMapperFactory.getMailboxMapper(mailboxSession).findMailboxById(mailboxId); dispatcher.flagsUpdated(mailboxSession, updatedFlags.getUid(), mailbox, updatedFlags); } }
public MessageChangedFlags updateFlags(Mailbox mailbox, FlagsUpdateCalculator flagsUpdateCalculator, Iterator<MailboxMessage> messages) throws MailboxException { ImmutableList.Builder<UpdatedFlags> updatedFlags = ImmutableList.builder(); ImmutableList.Builder<MailboxMessage> changedFlags = ImmutableList.builder(); long modSeq = nextModSeq(mailbox); while (messages.hasNext()) { MailboxMessage member = messages.next(); Flags originalFlags = member.createFlags(); member.setFlags(flagsUpdateCalculator.buildNewFlags(originalFlags)); Flags newFlags = member.createFlags(); if (UpdatedFlags.flagsChanged(originalFlags, newFlags)) { member.setModSeq(modSeq); changedFlags.add(member); } updatedFlags.add(UpdatedFlags.builder() .uid(member.getUid()) .modSeq(member.getModSeq()) .newFlags(newFlags) .oldFlags(originalFlags) .build()); } return new MessageChangedFlags(updatedFlags.build().iterator(), changedFlags.build()); }
member.setFlags(flagsUpdateCalculator.buildNewFlags(originalFlags)); Flags newFlags = member.createFlags(); if (UpdatedFlags.flagsChanged(originalFlags, newFlags)) {