private boolean checkHeader(final CharBuffer buffer, MimeTokenStream parser) throws IOException { final String value = parser.getField().getBody(); final StringReader reader = new StringReader(value); return isFoundIn(reader, buffer); }
private List readHeaders() throws IOException, MimeException { if(log.isDebugEnabled()){ log.debug("readHeaders"); } checkParserState(parser.next(), EntityState.T_START_HEADER); List headers = new ArrayList(); while (parser.next() == EntityState.T_FIELD) { Field field = parser.getField(); String name = field.getName(); String value = field.getBody(); if (log.isDebugEnabled()){ log.debug("addHeader: (" + name + ") value=(" + value +")"); } headers.add(new Header(name, value)); } checkParserState(parser.next(), EntityState.T_BODY); return headers; }
private static MimeDescriptorImpl createDescriptor( final MimeTokenStream parser) throws IOException, MimeException { EntityState next = parser.next(); final Collection<MessageResult.Header> headers = new ArrayList<>(); while (next != EntityState.T_BODY && next != EntityState.T_END_OF_STREAM && next != EntityState.T_START_MULTIPART) { if (next == EntityState.T_FIELD) { headers.add(new ResultHeader(parser.getField().getName(), parser .getField().getBody().trim())); } next = parser.next(); } final MimeDescriptorImpl mimeDescriptorImpl; switch (next) { case T_BODY: mimeDescriptorImpl = simplePartDescriptor(parser, headers); break; case T_START_MULTIPART: mimeDescriptorImpl = compositePartDescriptor(parser, headers); break; case T_END_OF_STREAM: throw new MimeException("Premature end of stream"); default: throw new MimeException("Unexpected parse state"); } return mimeDescriptorImpl; }
fields.add(parser.getField());
private void processMimePart(MimeTokenStream stream, EntityState state) { switch (state) { case T_START_MULTIPART: case T_START_MESSAGE: stackCurrent(); break; case T_START_HEADER: currentlyBuildMimePart = MimePart.builder(); break; case T_FIELD: currentlyBuildMimePart.addToHeaders(stream.getField()); break; case T_BODY: manageBodyExtraction(stream); closeMimePart(); break; case T_END_MULTIPART: case T_END_MESSAGE: unstackToCurrent(); closeMimePart(); break; default: break; } }
break; case T_FIELD: handler.field(mimeTokenStream.getField()); break; case T_PREAMBLE:
while (next != EntityState.T_BODY && next != EntityState.T_END_OF_STREAM && next != EntityState.T_START_MULTIPART) { if (next == EntityState.T_FIELD) { header.addField(parser.getField());