org.apache.james.mime4j.parser
Class MimeStreamParser

java.lang.Object
  extended by org.apache.james.mime4j.parser.MimeStreamParser

public class MimeStreamParser
extends java.lang.Object

Parses MIME (or RFC822) message streams of bytes or characters and reports parsing events to a ContentHandler instance.

Typical usage:

      ContentHandler handler = new MyHandler();
      MimeConfig config = new MimeConfig();
      MimeStreamParser parser = new MimeStreamParser(config);
      parser.setContentHandler(handler);
      InputStream instream = new FileInputStream("mime.msg");
      try {
          parser.parse(instream);
      } finally {
          instream.close();
      }
 


Constructor Summary
MimeStreamParser()
           
MimeStreamParser(MimeConfig config)
           
MimeStreamParser(MimeConfig config, DecodeMonitor monitor, BodyDescriptorBuilder bodyDescBuilder)
           
MimeStreamParser(MimeTokenStream tokenStream)
           
 
Method Summary
 boolean isContentDecoding()
          Determines whether this parser automatically decodes body content based on the on the MIME fields with the standard defaults.
 boolean isRaw()
          Determines if this parser is currently in raw mode.
 void parse(java.io.InputStream instream)
          Parses a stream of bytes containing a MIME message.
 void setContentDecoding(boolean b)
          Defines whether parser should automatically decode body content based on the on the MIME fields with the standard defaults.
 void setContentHandler(ContentHandler h)
          Sets the ContentHandler to use when reporting parsing events.
 void setFlat()
          Enables flat mode.
 void setRaw()
          Enables raw mode.
 void setRecurse()
          Enables recursive mode.
 void stop()
          Finishes the parsing and stops reading lines.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MimeStreamParser

public MimeStreamParser(MimeTokenStream tokenStream)

MimeStreamParser

public MimeStreamParser(MimeConfig config,
                        DecodeMonitor monitor,
                        BodyDescriptorBuilder bodyDescBuilder)

MimeStreamParser

public MimeStreamParser(MimeConfig config)

MimeStreamParser

public MimeStreamParser()
Method Detail

isContentDecoding

public boolean isContentDecoding()
Determines whether this parser automatically decodes body content based on the on the MIME fields with the standard defaults.


setContentDecoding

public void setContentDecoding(boolean b)
Defines whether parser should automatically decode body content based on the on the MIME fields with the standard defaults.


parse

public void parse(java.io.InputStream instream)
           throws MimeException,
                  java.io.IOException
Parses a stream of bytes containing a MIME message. Please note that if the MimeConfig associated with the mime stream returns a not null Content-Type value from its MimeConfig.getHeadlessParsing() method, the message is assumed to have no head section and the headless parsing mode will be used.

Parameters:
instream - the stream to parse.
Throws:
MimeException - if the message can not be processed
java.io.IOException - on I/O errors.

isRaw

public boolean isRaw()
Determines if this parser is currently in raw mode.

Returns:
true if in raw mode, false otherwise.
See Also:
setRaw()

setRaw

public void setRaw()
Enables raw mode. In raw mode all future entities (messages or body parts) in the stream will be reported to the ContentHandler.raw(InputStream) handler method only. The stream will contain the entire unparsed entity contents including header fields and whatever is in the body.


setFlat

public void setFlat()
Enables flat mode. In flat mode rfc822 parts are not recursively parsed and multipart content is handled as a single "simple" stream.


setRecurse

public void setRecurse()
Enables recursive mode. In this mode rfc822 parts are recursively parsed.


stop

public void stop()
Finishes the parsing and stops reading lines. NOTE: No more lines will be parsed but the parser will still call ContentHandler.endMultipart(), ContentHandler.endBodyPart(), ContentHandler.endMessage(), etc to match previous calls to ContentHandler.startMultipart(BodyDescriptor), ContentHandler.startBodyPart(), ContentHandler.startMessage(), etc.


setContentHandler

public void setContentHandler(ContentHandler h)
Sets the ContentHandler to use when reporting parsing events.

Parameters:
h - the ContentHandler.


Copyright © 2004-2012 The Apache Software Foundation. All Rights Reserved.