@Override public boolean equals(Object other) { if (other instanceof ImapFolder) { ImapFolder otherFolder = (ImapFolder) other; return otherFolder.getServerId().equals(getServerId()); } return super.equals(other); }
@Override public int hashCode() { return getServerId().hashCode(); }
protected String getLogId() { String id = store.getStoreConfig().toString() + ":" + getServerId() + "/" + Thread.currentThread().getName(); if (connection != null) { id += "/" + connection.getLogId(); } return id; }
private Map<String, ImapFolder> toFolderMap(List<ImapFolder> folders) { Map<String, ImapFolder> folderMap = new HashMap<>(); for (ImapFolder folder : folders) { folderMap.put(folder.getServerId(), folder); } return folderMap; }
private void configureRemoteStoreWithFolder() { when(remoteStore.getFolder(FOLDER_NAME)).thenReturn(remoteFolder); when(remoteFolder.getServerId()).thenReturn(FOLDER_NAME); }
@Override public void delete(List<? extends Message> messages, String trashFolder) throws MessagingException { if (messages.isEmpty()) { return; } if (trashFolder == null || getServerId().equals(trashFolder)) { setFlags(messages, Collections.singleton(Flag.DELETED), true); } else { ImapFolder remoteTrashFolder = getStore().getFolder(trashFolder); String encodedTrashFolderName = folderNameCodec.encode(remoteTrashFolder.getPrefixedName()); String escapedTrashFolderName = ImapUtility.encodeString(encodedTrashFolderName); if (!exists(escapedTrashFolderName)) { if (K9MailLib.isDebug()) { Timber.i("ImapFolder.delete: couldn't find remote trash folder '%s' for %s", trashFolder, getLogId()); } throw new FolderNotFoundException(remoteTrashFolder.getServerId()); } if (K9MailLib.isDebug()) { Timber.d("IMAPMessage.delete: copying remote %d messages to '%s' for %s", messages.size(), trashFolder, getLogId()); } moveMessages(messages, remoteTrashFolder); } }
throw new FolderNotFoundException(imapFolder.getServerId());