public MessageModification build() { return new MessageModification(this); } }
if (mod.getLabelsToRemove().contains(ReservedLabels.ALL_MAILS.getId())) { throw new IllegalLabelException("This label cannot be removed"); Set<String> labelsToAddAsAttributes = labelsToMessageAttibutes(mod.getLabelsToAdd()); Set<String> labelsToRemoveAsAttributes = labelsToMessageAttibutes(mod.getLabelsToRemove()); Set<String> markersToAddAsAttributes = markersToMessageAttibutes(mod.getMarkersToAdd()); Set<String> markersToRemoveAsAttributes = markersToMessageAttibutes(mod.getMarkersToRemove()); if (!mod.getLabelsToAdd().isEmpty()) LabelIndexPersistence.add(mutator, mailbox.getId(), messageId, mod.getLabelsToAdd()); for (int labelId : mod.getLabelsToAdd()) if (!mod.getLabelsToRemove().isEmpty()) LabelIndexPersistence.remove(mutator, mailbox.getId(), messageId, mod.getLabelsToRemove()); for (int labelId : mod.getLabelsToRemove()) if (!mod.getMarkersToAdd().isEmpty()) if (mod.getMarkersToAdd().contains(Marker.SEEN) && !message.getMarkers().contains(Marker.SEEN)) if (!mod.getMarkersToRemove().isEmpty()) if (mod.getMarkersToRemove().contains(Marker.SEEN) && message.getMarkers().contains(Marker.SEEN))