private boolean isDispositionNotification(Entity entity) { return entity .getMimeType() .startsWith(MESSAGE_DISPOSITION_NOTIFICATION); }
private static boolean isMultipartAlternative(Entity entity) { return entity.getMimeType().equalsIgnoreCase(MULTIPART_ALTERNATIVE); }
private Optional<String> getFirstMatchingTextBody(Multipart multipart, String mimeType, Predicate<Entity> condition) { Function<TextBody, Optional<String>> textBodyOptionalFunction = Throwing .function(this::asString).sneakyThrow(); return multipart.getBodyParts() .stream() .filter(part -> mimeType.equals(part.getMimeType())) .filter(condition) .map(Entity::getBody) .filter(TextBody.class::isInstance) .map(TextBody.class::cast) .findFirst() .flatMap(textBodyOptionalFunction); }
private Optional<String> getFirstMatchingTextBody(Multipart multipart, String mimeType, Predicate<Entity> condition) { Function<TextBody, Optional<String>> textBodyOptionalFunction = Throwing .function(this::asString).sneakyThrow(); return multipart.getBodyParts() .stream() .filter(part -> mimeType.equals(part.getMimeType())) .filter(condition) .map(Entity::getBody) .filter(TextBody.class::isInstance) .map(TextBody.class::cast) .findFirst() .flatMap(textBodyOptionalFunction); }
private Optional<String> getFirstMatchingTextBody(Multipart multipart, String mimeType, Predicate<Entity> condition) { Function<TextBody, Optional<String>> textBodyOptionalFunction = Throwing .function(this::asString).sneakyThrow(); return multipart.getBodyParts() .stream() .filter(part -> mimeType.equals(part.getMimeType())) .filter(condition) .map(Entity::getBody) .filter(TextBody.class::isInstance) .map(TextBody.class::cast) .findFirst() .flatMap(textBodyOptionalFunction); }
private MessageContent parseMultipartContent(Entity entity, Multipart multipart) throws IOException { switch (entity.getMimeType()) { case MULTIPART_ALTERNATIVE: return retrieveHtmlAndPlainTextContent(multipart); default: return retrieveFirstReadablePart(multipart); } }
private MessageContent parseMultipartContent(Entity entity, Multipart multipart) throws IOException { switch (entity.getMimeType()) { case MULTIPART_ALTERNATIVE: return retrieveHtmlAndPlainTextContent(multipart); default: return retrieveFirstReadablePart(multipart); } }
private MessageContent parseMultipartContent(Entity entity, Multipart multipart) throws IOException { switch (entity.getMimeType()) { case MULTIPART_ALTERNATIVE: return retrieveHtmlAndPlainTextContent(multipart); default: return retrieveFirstReadablePart(multipart); } }
private MessageContent parseTextBody(Entity entity, TextBody textBody) throws IOException { Optional<String> bodyContent = asString(textBody); if (TEXT_HTML.equals(entity.getMimeType())) { return MessageContent.ofHtmlOnly(bodyContent); } return MessageContent.ofTextOnly(bodyContent); }
private MessageContent parseTextBody(Entity entity, TextBody textBody) throws IOException { Optional<String> bodyContent = asString(textBody); if (TEXT_HTML.equals(entity.getMimeType())) { return MessageContent.ofHtmlOnly(bodyContent); } return MessageContent.ofTextOnly(bodyContent); }
private MessageContent parseTextBody(Entity entity, TextBody textBody) throws IOException { Optional<String> bodyContent = asString(textBody); if (TEXT_HTML.equals(entity.getMimeType())) { return MessageContent.ofHtmlOnly(bodyContent); } return MessageContent.ofTextOnly(bodyContent); }
private Stream<MessageContent> extractContentIfReadable(Entity entity) throws IOException { if (TEXT_HTML.equals(entity.getMimeType()) && entity.getBody() instanceof TextBody) { return Stream.of( MessageContent.ofHtmlOnly(asString((TextBody)entity.getBody()))); } if (TEXT_PLAIN.equals(entity.getMimeType()) && entity.getBody() instanceof TextBody) { return Stream.of( MessageContent.ofTextOnly(asString((TextBody)entity.getBody()))); } if (entity.isMultipart() && entity.getBody() instanceof Multipart) { MessageContent innerMultipartContent = parseMultipart(entity, (Multipart)entity.getBody()); if (!innerMultipartContent.isEmpty()) { return Stream.of(innerMultipartContent); } } return Stream.empty(); }
private Stream<MessageContent> extractContentIfReadable(Entity entity) throws IOException { if (TEXT_HTML.equals(entity.getMimeType()) && entity.getBody() instanceof TextBody) { return Stream.of( MessageContent.ofHtmlOnly(asString((TextBody)entity.getBody()))); } if (TEXT_PLAIN.equals(entity.getMimeType()) && entity.getBody() instanceof TextBody) { return Stream.of( MessageContent.ofTextOnly(asString((TextBody)entity.getBody()))); } if (entity.isMultipart() && entity.getBody() instanceof Multipart) { MessageContent innerMultipartContent = parseMultipart(entity, (Multipart)entity.getBody()); if (!innerMultipartContent.isEmpty()) { return Stream.of(innerMultipartContent); } } return Stream.empty(); }
private Stream<MessageContent> extractContentIfReadable(Entity entity) throws IOException { if (TEXT_HTML.equals(entity.getMimeType()) && entity.getBody() instanceof TextBody) { return Stream.of( MessageContent.ofHtmlOnly(asString((TextBody)entity.getBody()))); } if (TEXT_PLAIN.equals(entity.getMimeType()) && entity.getBody() instanceof TextBody) { return Stream.of( MessageContent.ofTextOnly(asString((TextBody)entity.getBody()))); } if (entity.isMultipart() && entity.getBody() instanceof Multipart) { MessageContent innerMultipartContent = parseMultipart(entity, (Multipart)entity.getBody()); if (!innerMultipartContent.isEmpty()) { return Stream.of(innerMultipartContent); } } return Stream.empty(); }
+ body.getParent().getMimeType() + "\n" + "Size of decoded data: " + size + " bytes");
type += " (" + entity.getMimeType() + ")"; node.add(new DefaultMutableTreeNode(new ObjectWrapper(type, body)));
assertThat(mainBodyPart.getBody()).isInstanceOf(Multipart.class); assertThat(mainBodyPart.isMultipart()).isTrue(); assertThat(mainBodyPart.getMimeType()).isEqualTo("multipart/alternative"); assertThat(((Multipart)mainBodyPart.getBody()).getBodyParts()).hasSize(2); Entity textPart = ((Multipart)mainBodyPart.getBody()).getBodyParts().get(0); assertThat(attachmentPart.getBody()).isEqualToComparingOnlyGivenFields(expectedAttachmentBody, "content"); assertThat(attachmentPart.getDispositionType()).isEqualTo("inline"); assertThat(attachmentPart.getMimeType()).isEqualTo(expectedMimeType); assertThat(attachmentPart.getHeader().getField("Content-ID").getBody()).isEqualTo(expectedCID);
assertThat(attachmentPart.getBody()).isEqualToComparingOnlyGivenFields(expectedBody, "content"); assertThat(attachmentPart.getDispositionType()).isEqualTo("inline"); assertThat(attachmentPart.getMimeType()).isEqualTo(expectedMimeType); assertThat(attachmentPart.getHeader().getField("Content-ID").getBody()).isEqualTo(expectedCID); assertThat(attachmentPart.getContentTransferEncoding()).isEqualTo("base64");