Tabnine Logo
MessageMoves
Code IndexAdd Tabnine to your IDE (free)

How to use
MessageMoves
in
org.apache.james.mailbox.model

Best Java code snippets using org.apache.james.mailbox.model.MessageMoves (Showing top 20 results out of 315)

origin: org.apache.james/apache-james-mailbox-store

public void setInMailboxesNoCheck(MessageId messageId, MailboxId targetMailboxId, MailboxSession mailboxSession) throws MailboxException {
  MessageIdMapper messageIdMapper = mailboxSessionMapperFactory.getMessageIdMapper(mailboxSession);
  List<MailboxMessage> currentMailboxMessages = messageIdMapper.find(ImmutableList.of(messageId), MessageMapper.FetchType.Full);
  MessageMoves messageMoves = MessageMoves.builder()
    .previousMailboxIds(toMailboxIds(currentMailboxMessages))
    .targetMailboxIds(targetMailboxId)
    .build();
  if (messageMoves.isChange()) {
    applyMessageMoveNoMailboxChecks(mailboxSession, currentMailboxMessages, messageMoves);
  }
}
origin: apache/james-project

public Stream<MailboxId> impactedMailboxIds() {
  return Stream.concat(
    addedMailboxIds().stream(),
    removedMailboxIds().stream());
}
origin: apache/james-project

  public MessageMoves build() {
    return new MessageMoves(previousMailboxIds.build(), targetMailboxIds.build());
  }
}
origin: org.apache.james/apache-james-mailbox-store

private SortedMap<MessageUid, MessageMetaData> copy(MessageRange set, StoreMessageManager to, MailboxSession session) throws MailboxException {
  IteratorWrapper<MailboxMessage> originalRows = new IteratorWrapper<>(retrieveOriginalRows(set, session));
  SortedMap<MessageUid, MessageMetaData> copiedUids = collectMetadata(to.copy(originalRows, session));
  ImmutableMap.Builder<MessageUid, MailboxMessage> messagesMap = ImmutableMap.builder();
  for (MailboxMessage message : originalRows.getEntriesSeen()) {
    messagesMap.put(message.getUid(), immutableMailboxMessageFactory.from(to.getMailboxEntity().getMailboxId(), message));
  }
  dispatcher.added(session, copiedUids, to.getMailboxEntity(), messagesMap.build());
  dispatcher.moved(session,
    MessageMoves.builder()
      .previousMailboxIds(getMailboxEntity().getMailboxId())
      .targetMailboxIds(to.getMailboxEntity().getMailboxId(), getMailboxEntity().getMailboxId())
      .build(),
    messagesMap.build());
  return copiedUids;
}
origin: org.apache.james/james-server-jmap

private void assertValidUpdate(List<MessageResult> messagesToBeUpdated, UpdateMessagePatch updateMessagePatch, MailboxSession session) throws MailboxException {
  List<MailboxId> outboxMailboxes = mailboxIdFor(Role.OUTBOX, session);
  ImmutableList<MailboxId> previousMailboxes = messagesToBeUpdated.stream()
    .map(MessageResult::getMailboxId)
    .collect(Guavate.toImmutableList());
  List<MailboxId> targetMailboxes = getTargetedMailboxes(previousMailboxes, updateMessagePatch);
  boolean isDraft = messagesToBeUpdated.stream()
    .map(MessageResult::getFlags)
    .map(Keywords.factory().filterImapNonExposedKeywords()::fromFlags)
    .reduce(new KeywordsCombiner())
    .orElse(Keywords.DEFAULT_VALUE)
    .contains(Keyword.DRAFT);
  MessageMoves messageMoves = MessageMoves.builder()
    .previousMailboxIds(previousMailboxes)
    .targetMailboxIds(targetMailboxes)
    .build();
  boolean targetContainsOutbox = messageMoves.addedMailboxIds().stream().anyMatch(outboxMailboxes::contains);
  boolean targetIsOnlyOutbox = targetMailboxes.stream().allMatch(outboxMailboxes::contains);
  assertOutboxMoveTargetsOnlyOutBox(targetContainsOutbox, targetIsOnlyOutbox);
  assertOutboxMoveOriginallyHasDraftKeywordSet(targetContainsOutbox, isDraft);
}
origin: org.apache.james/apache-james-mailbox-store

public boolean isMoveTo(MailboxId mailboxId) {
  return messageMoves.addedMailboxIds()
      .contains(mailboxId);
}
origin: org.apache.james/apache-james-mailbox-store

  public boolean isMoveFrom(MailboxId mailboxId) {
    return messageMoves.removedMailboxIds()
        .contains(mailboxId);
  }
}
origin: org.apache.james/apache-james-mailbox-store

private SortedMap<MessageUid, MessageMetaData> move(MessageRange set, StoreMessageManager to, MailboxSession session) throws MailboxException {
  IteratorWrapper<MailboxMessage> originalRows = new IteratorWrapper<>(retrieveOriginalRows(set, session));
  MoveResult moveResult = to.move(originalRows, session);
  SortedMap<MessageUid, MessageMetaData> moveUids = collectMetadata(moveResult.getMovedMessages());
  ImmutableMap.Builder<MessageUid, MailboxMessage> messagesMap = ImmutableMap.builder();
  for (MailboxMessage message : originalRows.getEntriesSeen()) {
    messagesMap.put(message.getUid(), immutableMailboxMessageFactory.from(to.getMailboxEntity().getMailboxId(), message));
  }
  dispatcher.added(session, moveUids, to.getMailboxEntity(), messagesMap.build());
  dispatcher.expunged(session, collectMetadata(moveResult.getOriginalMessages()), getMailboxEntity());
  dispatcher.moved(session,
    MessageMoves.builder()
      .previousMailboxIds(getMailboxEntity().getMailboxId())
      .targetMailboxIds(to.getMailboxEntity().getMailboxId())
      .build(),
    messagesMap.build());
  return moveUids;
}
origin: apache/james-project

public boolean isMoveTo(MailboxId mailboxId) {
  return messageMoves.addedMailboxIds()
      .contains(mailboxId);
}
origin: apache/james-project

public boolean isMoveFrom(MailboxId mailboxId) {
  return messageMoves.removedMailboxIds()
      .contains(mailboxId);
}
origin: org.apache.james/apache-james-mailbox-spamassassin

@Test
public void eventShouldCallSpamAssassinSpamLearningWhenTheEventMatches() {
  MessageMoveEvent messageMoveEvent = MessageMoveEvent.builder()
    .session(MAILBOX_SESSION)
    .messageMoves(MessageMoves.builder()
      .previousMailboxIds(mailboxId1)
      .targetMailboxIds(spamMailboxId)
      .build())
    .messages(ImmutableMap.of(MessageUid.of(45),
      createMessage(mailboxId1)))
    .build();
  listener.event(messageMoveEvent);
  verify(spamAssassin).learnSpam(any(), any());
}
origin: org.apache.james/apache-james-mailbox-store

private Map<QuotaRoot, Integer> buildMapQuotaRoot(MessageMoves messageMoves, MailboxMapper mailboxMapper) throws MailboxException {
  Map<QuotaRoot, Integer> messageCountByQuotaRoot = new HashMap<>();
  for (MailboxId mailboxId : messageMoves.addedMailboxIds()) {
    QuotaRoot quotaRoot = retrieveQuotaRoot(mailboxMapper, mailboxId);
    int currentCount = Optional.ofNullable(messageCountByQuotaRoot.get(quotaRoot))
      .orElse(0);
    messageCountByQuotaRoot.put(quotaRoot, currentCount + 1);
  }
  for (MailboxId mailboxId : messageMoves.removedMailboxIds()) {
    QuotaRoot quotaRoot = retrieveQuotaRoot(mailboxMapper, mailboxId);
    int currentCount = Optional.ofNullable(messageCountByQuotaRoot.get(quotaRoot))
      .orElse(0);
    messageCountByQuotaRoot.put(quotaRoot, currentCount - 1);
  }
  return messageCountByQuotaRoot;
}
origin: org.apache.james/apache-james-mailbox-store

@Override
public void setInMailboxes(MessageId messageId, Collection<MailboxId> targetMailboxIds, MailboxSession mailboxSession) throws MailboxException {
  assertRightsOnMailboxes(targetMailboxIds, mailboxSession, Right.Read);
  List<MailboxMessage> currentMailboxMessages = findRelatedMailboxMessages(messageId, mailboxSession);
  if (currentMailboxMessages.isEmpty()) {
    LOGGER.info("Tried to access {} not accessible for {}", messageId, mailboxSession.getUser().getUserName());
    return;
  }
  MessageMoves messageMoves = MessageMoves.builder()
    .targetMailboxIds(targetMailboxIds)
    .previousMailboxIds(toMailboxIds(currentMailboxMessages))
    .build();
  if (messageMoves.isChange()) {
    applyMessageMoves(mailboxSession, currentMailboxMessages, messageMoves);
  }
}
origin: org.apache.james/apache-james-mailbox-spamassassin

@Test
public void isEventOnSpamMailboxShouldReturnTrueWhenMailboxIsSpam() {
  MessageMoveEvent messageMoveEvent = MessageMoveEvent.builder()
    .session(MAILBOX_SESSION)
    .messageMoves(MessageMoves.builder()
      .previousMailboxIds(mailboxId1)
      .targetMailboxIds(spamMailboxId)
      .build())
    .messages(ImmutableMap.of(MessageUid.of(45),
      createMessage(mailboxId1)))
    .build();
  assertThat(listener.isMessageMovedToSpamMailbox(messageMoveEvent)).isTrue();
}
origin: org.apache.james/apache-james-mailbox-store

private void applyMessageMoves(MailboxSession mailboxSession, List<MailboxMessage> currentMailboxMessages, MessageMoves messageMoves) throws MailboxException {
  assertRightsOnMailboxes(messageMoves.addedMailboxIds(), mailboxSession, Right.Insert);
  assertRightsOnMailboxes(messageMoves.removedMailboxIds(), mailboxSession, Right.DeleteMessages);
  applyMessageMoveNoMailboxChecks(mailboxSession, currentMailboxMessages, messageMoves);
}
origin: org.apache.james/apache-james-mailbox-spamassassin

@Test
public void isEventOnSpamMailboxShouldReturnFalseWhenMailboxIsSpamOtherCase() {
  MessageMoveEvent messageMoveEvent = MessageMoveEvent.builder()
    .session(MAILBOX_SESSION)
    .messageMoves(MessageMoves.builder()
      .previousMailboxIds(mailboxId1)
      .targetMailboxIds(spamCapitalMailboxId)
      .build())
    .messages(ImmutableMap.of(MessageUid.of(45),
      createMessage(mailboxId1)))
    .build();
  assertThat(listener.isMessageMovedToSpamMailbox(messageMoveEvent)).isFalse();
}
origin: org.apache.james/apache-james-mailbox-store

private void applyMessageMoveNoMailboxChecks(MailboxSession mailboxSession, List<MailboxMessage> currentMailboxMessages, MessageMoves messageMoves) throws MailboxException {
  MailboxMessage mailboxMessage = currentMailboxMessages.stream().findAny().orElseThrow(() -> new MailboxNotFoundException("can't load message"));
  validateQuota(messageMoves, mailboxSession, mailboxMessage);
  addMessageToMailboxes(mailboxMessage, messageMoves.addedMailboxIds(), mailboxSession);
  removeMessageFromMailboxes(mailboxMessage, messageMoves.removedMailboxIds(), mailboxSession);
  dispatcher.moved(mailboxSession, messageMoves, ImmutableMap.of(mailboxMessage.getUid(), mailboxMessage));
}
origin: org.apache.james/apache-james-mailbox-spamassassin

@Test
public void eventShouldCallSpamAssassinHamLearningWhenTheEventMatches() {
  MessageMoveEvent messageMoveEvent = MessageMoveEvent.builder()
    .session(MAILBOX_SESSION)
    .messageMoves(MessageMoves.builder()
      .previousMailboxIds(spamMailboxId)
      .targetMailboxIds(mailboxId1)
      .build())
    .messages(ImmutableMap.of(MessageUid.of(45),
      createMessage(mailboxId1)))
    .build();
  listener.event(messageMoveEvent);
  verify(spamAssassin).learnHam(any(), any());
}
origin: org.apache.james/apache-james-mailbox-spamassassin

@Test
public void isMessageMovedOutOfSpamMailboxShouldReturnTrueWhenMessageMovedOutOfSpamMailbox() {
  MessageMoveEvent messageMoveEvent = MessageMoveEvent.builder()
    .session(MAILBOX_SESSION)
    .messageMoves(MessageMoves.builder()
      .previousMailboxIds(spamMailboxId)
      .targetMailboxIds(mailboxId2)
      .build())
    .messages(ImmutableMap.of(MessageUid.of(45),
      createMessage(mailboxId2)))
    .build();
  assertThat(listener.isMessageMovedOutOfSpamMailbox(messageMoveEvent)).isTrue();
}
origin: org.apache.james/apache-james-mailbox-spamassassin

@Test
public void isEventOnSpamMailboxShouldReturnFalseWhenMessageIsMovedToANonSpamMailbox() {
  MessageMoveEvent messageMoveEvent = MessageMoveEvent.builder()
    .session(MAILBOX_SESSION)
    .messageMoves(MessageMoves.builder()
      .previousMailboxIds(mailboxId1)
      .targetMailboxIds(mailboxId2)
      .build())
    .messages(ImmutableMap.of(MessageUid.of(45),
      createMessage(mailboxId2)))
    .build();
  assertThat(listener.isMessageMovedToSpamMailbox(messageMoveEvent)).isFalse();
}
org.apache.james.mailbox.modelMessageMoves

Most used methods

  • builder
  • addedMailboxIds
  • removedMailboxIds
  • <init>
  • isChange

Popular in Java

  • Reactive rest calls using spring rest template
  • getApplicationContext (Context)
  • startActivity (Activity)
  • putExtra (Intent)
  • URI (java.net)
    A Uniform Resource Identifier that identifies an abstract or physical resource, as specified by RFC
  • Format (java.text)
    The base class for all formats. This is an abstract base class which specifies the protocol for clas
  • Callable (java.util.concurrent)
    A task that returns a result and may throw an exception. Implementors define a single method with no
  • Stream (java.util.stream)
    A sequence of elements supporting sequential and parallel aggregate operations. The following exampl
  • DataSource (javax.sql)
    An interface for the creation of Connection objects which represent a connection to a database. This
  • Reflections (org.reflections)
    Reflections one-stop-shop objectReflections scans your classpath, indexes the metadata, allows you t
  • Top 12 Jupyter Notebook extensions
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

    FAQBlogTabnine AcademyTerms of usePrivacy policyJava Code IndexJavascript Code Index
Get Tabnine for your IDE now