javax.mail.Flags.Flag#DELETED源码实例Demo

下面列出了javax.mail.Flags.Flag#DELETED 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

@Test
void setFlagsToDeleteThenExpungeFromMessageManagerThenGetMessageFromMessageIdManagerShouldNotReturnAnything() throws Exception {
    Flags deleted = new Flags(Flag.DELETED);
    MessageId messageId = messageManager1.appendMessage(MessageManager.AppendCommand.from(mailContent), session)
        .getId().getMessageId();

    messageManager1.setFlags(deleted, FlagsUpdateMode.ADD, MessageRange.all(), session);
    messageManager1.expunge(MessageRange.all(), session);

    assertThat(messageIdManager.getMessage(messageId, FetchGroup.MINIMAL, session)).isEmpty();
}
 
@Test
void expungeFromMessageManagerShouldWorkWhenSetFlagsToDeletedWithMessageIdManager() throws Exception {
    Flags deleted = new Flags(Flag.DELETED);
    ComposedMessageId messageId = messageManager1.appendMessage(MessageManager.AppendCommand.from(mailContent), session).getId();

    messageIdManager.setFlags(deleted, FlagsUpdateMode.ADD, messageId.getMessageId(), ImmutableList.of(mailbox1.getMailboxId()), session);

    assertThat(messageManager1.expunge(MessageRange.all(), session))
        .toIterable()
        .containsOnly(messageId.getUid());
}
 
@Test
void expungeFromMessageManagerShouldWorkWhenSetInMailboxesAMessageWithDeletedFlag() throws Exception { //I can mark as DELETED + expunge an mail with setInMbxs
    Flags deleted = new Flags(Flag.DELETED);
    ComposedMessageId messageId = messageManager1.appendMessage(
        MessageManager.AppendCommand.builder()
            .withFlags(deleted)
            .build(mailContent), session).getId();

    messageIdManager.setInMailboxes(messageId.getMessageId(), ImmutableList.of(mailbox1.getMailboxId()), session);

    assertThat(messageManager1.expunge(MessageRange.all(), session))
        .toIterable()
        .containsOnly(messageId.getUid());
}
 
源代码4 项目: alfresco-repository   文件: ImapServiceImpl.java
private void setFlag(NodeRef nodeRef, Flag flag, boolean value)
{
    String permission = (flag == Flag.DELETED ? PermissionService.DELETE_NODE : PermissionService.WRITE_PROPERTIES);
    
    
    AccessStatus status = permissionService.hasPermission(nodeRef, permission);
    if (status == AccessStatus.DENIED)
    {
        if(flag == Flag.DELETED)
        {
            logger.debug("[setFlag] Access denied to set DELETED FLAG:" + nodeRef);
            throw new AccessDeniedException("No permission to set DELETED flag");
        }
        if(flag == Flag.SEEN)
        {
            logger.debug("[setFlag] Access denied to set SEEN FLAG:" + nodeRef);
            //TODO - should we throw an exception here?
            //throw new AccessDeniedException("No permission to set DELETED flag");
        }
        else
        {
           
            logger.debug("[setFlag] Access denied to set flag:" + nodeRef);
            throw new AccessDeniedException("No permission to set flag:" + flag.toString());
        }
    }
    else
    {
        checkForFlaggableAspect(nodeRef);
        policyBehaviourFilter.disableBehaviour(ContentModel.ASPECT_AUDITABLE);
        policyBehaviourFilter.disableBehaviour(ContentModel.ASPECT_VERSIONABLE);
        try
        {                    
            if(logger.isDebugEnabled())
            {
                logger.debug("set flag nodeRef:" + nodeRef + ",flag:" + flagToQname.get(flag) + ", value:" + value);
            }
            nodeService.setProperty(nodeRef, flagToQname.get(flag), value);
            messageCache.remove(nodeRef);
        }
        finally
        {
            policyBehaviourFilter.enableBehaviour(ContentModel.ASPECT_AUDITABLE);
            policyBehaviourFilter.enableBehaviour(ContentModel.ASPECT_VERSIONABLE);                
        }
    }
}
 
 方法所在类
 同类方法