public Builder parse()

in dom/src/main/java/org/apache/james/mime4j/dom/Message.java [871:899]


        public Builder parse(final InputStream is) throws IOException {
            MimeConfig currentConfig = config != null ? config : MimeConfig.DEFAULT;
            boolean strict = currentConfig.isStrictParsing();
            DecodeMonitor currentMonitor = monitor != null ? monitor : strict ? DecodeMonitor.STRICT : DecodeMonitor.SILENT;
            BodyDescriptorBuilder currentBodyDescBuilder = bodyDescBuilder != null ? bodyDescBuilder :
                new DefaultBodyDescriptorBuilder(null, fieldParser != null ? fieldParser :
                    strict ? DefaultFieldParser.getParser() : LenientFieldParser.getParser(), currentMonitor);
            BodyFactory currentBodyFactory = bodyFactory != null ? bodyFactory : new BasicBodyFactory(!strict);
            MimeStreamParser parser = new MimeStreamParser(currentConfig, currentMonitor, currentBodyDescBuilder);

            Message message = new MessageImpl();
            parser.setContentHandler(new ParserStreamContentHandler(message, currentBodyFactory));
            parser.setContentDecoding(!rawContent);
            if (flatMode) {
                parser.setFlat();
            }
            try {
                parser.parse(is);
            } catch (MimeException e) {
                throw new MimeIOException(e);
            }
            clearFields();
            final List<Field> fields = message.getHeader().getFields();
            for (Field field: fields) {
                addField(field);
            }
            setBody(message.getBody());
            return this;
        }