private boolean matches(SearchQuery.FlagCriterion criterion, MailboxMessage message, Collection<MessageUid> recentMessageUids) { SearchQuery.BooleanOperator operator = criterion.getOperator(); boolean isSet = operator.isSet(); Flags.Flag flag = criterion.getFlag(); if (flag == Flags.Flag.ANSWERED) { return isSet == message.isAnswered(); } else if (flag == Flags.Flag.SEEN) { return isSet == message.isSeen(); } else if (flag == Flags.Flag.DRAFT) { return isSet == message.isDraft(); } else if (flag == Flags.Flag.FLAGGED) { return isSet == message.isFlagged(); } else if (flag == Flags.Flag.RECENT) { final MessageUid uid = message.getUid(); return isSet == recentMessageUids.contains(uid); } else if (flag == Flags.Flag.DELETED) { return isSet == message.isDeleted(); } else { return false; } }
String mediaType = message.getMediaType(); String subType = message.getSubType(); boolean isAnswered = message.isAnswered(); boolean isDeleted = message.isDeleted(); boolean isDraft = message.isDraft();
public ImmutableMailboxMessage from(MailboxId mailboxId, MailboxMessage message) throws MailboxException { try { return new ImmutableMailboxMessage(message.getMessageId(), message.getInternalDate(), IOUtils.toByteArray(message.getBodyContent()), message.getMediaType(), message.getSubType(), message.getBodyOctets(), message.getFullContentOctets(), message.getFullContentOctets() - message.getBodyOctets(), message.getTextualLineCount(), IOUtils.toByteArray(message.getHeaderContent()), ImmutableList.copyOf(message.getProperties()), attachments(message), mailboxId, message.getUid(), message.getModSeq(), message.isAnswered(), message.isDeleted(), message.isDraft(), message.isFlagged(), message.isRecent(), message.isSeen(), message.createFlags().getUserFlags()); } catch (IOException e) { throw new MailboxException("Unable to parse message", e); } }
private static Flags asFlags(MailboxMessage mailboxMessage, String[] userFlags) { final Flags flags = new Flags(); if (mailboxMessage.isAnswered()) { flags.add(Flags.Flag.ANSWERED); } if (mailboxMessage.isDeleted()) { flags.add(Flags.Flag.DELETED); } if (mailboxMessage.isDraft()) { flags.add(Flags.Flag.DRAFT); } if (mailboxMessage.isFlagged()) { flags.add(Flags.Flag.FLAGGED); } if (mailboxMessage.isRecent()) { flags.add(Flags.Flag.RECENT); } if (mailboxMessage.isSeen()) { flags.add(Flags.Flag.SEEN); } if (userFlags != null && userFlags.length > 0) { for (String userFlag : userFlags) { flags.add(userFlag); } } return flags; }