class MimeEntity extends java.lang.Object implements EntityStateMachine
| Modifier and Type | Field and Description |
|---|---|
private BodyDescriptor |
body |
private BodyDescriptorBuilder |
bodyDescBuilder |
private MimeConfig |
config |
private MimeBoundaryInputStream |
currentMimePartStream |
private LineReaderInputStreamAdaptor |
dataStream |
private boolean |
endOfHeader |
private EntityState |
endState |
private Field |
field |
private FieldBuilder |
fieldBuilder |
private int |
headerCount |
private BufferedLineReaderInputStream |
inbuffer |
private ByteArrayBuffer |
linebuf |
private int |
lineCount |
private LineNumberSource |
lineSource |
private DecodeMonitor |
monitor |
private RecursionMode |
recursionMode |
private EntityState |
state |
private byte[] |
tmpbuf |
| Constructor and Description |
|---|
MimeEntity(LineNumberSource lineSource,
java.io.InputStream instream,
BodyDescriptorBuilder bodyDescBuilder) |
MimeEntity(LineNumberSource lineSource,
java.io.InputStream instream,
FieldBuilder fieldBuilder,
BodyDescriptorBuilder bodyDescBuilder) |
MimeEntity(LineNumberSource lineSource,
java.io.InputStream instream,
MimeConfig config,
BodyDescriptorBuilder bodyDescBuilder) |
MimeEntity(LineNumberSource lineSource,
java.io.InputStream instream,
MimeConfig config,
EntityState startState,
EntityState endState,
BodyDescriptorBuilder bodyDescBuilder) |
MimeEntity(LineNumberSource lineSource,
java.io.InputStream instream,
MimeConfig config,
EntityState startState,
EntityState endState,
DecodeMonitor monitor,
FieldBuilder fieldBuilder,
BodyDescriptorBuilder bodyDescBuilder) |
| Modifier and Type | Method and Description |
|---|---|
EntityStateMachine |
advance()
Advances the state machine to the next state in the
process of the MIME stream parsing.
|
private void |
advanceToBoundary() |
private void |
clearMimePartStream() |
private void |
createMimePartStream() |
private java.io.InputStream |
decodedStream(java.io.InputStream instream) |
BodyDescriptor |
getBodyDescriptor()
Gets a descriptor for the current entity.
|
java.io.InputStream |
getContentStream()
Returns content stream of the entity body.
|
private LineReaderInputStream |
getDataStream() |
java.io.InputStream |
getDecodedContentStream()
Returns the decoded content stream of the entity body.
|
Field |
getField()
This method is valid, if
getState() returns EntityState.T_FIELD. |
private java.io.InputStream |
getLimitedContentStream() |
private int |
getLineNumber() |
RecursionMode |
getRecursionMode() |
EntityState |
getState()
Return the current state of the entity.
|
protected java.lang.String |
message(Event event)
Creates an indicative message suitable for display
based on the given event and the current state of the system.
|
protected void |
monitor(Event event) |
protected boolean |
nextField() |
private EntityStateMachine |
nextMessage() |
private EntityStateMachine |
nextMimeEntity() |
private EntityStateMachine |
nextMimeEntity(EntityState startState,
EntityState endState,
java.io.InputStream instream) |
private void |
readRawField() |
void |
setRecursionMode(RecursionMode recursionMode)
Sets the current recursion mode.
|
static java.lang.String |
stateToString(EntityState state)
Renders a state as a string suitable for logging.
|
void |
stop() |
java.lang.String |
toString() |
private final EntityState endState
private final MimeConfig config
private final DecodeMonitor monitor
private final FieldBuilder fieldBuilder
private final BodyDescriptorBuilder bodyDescBuilder
private final ByteArrayBuffer linebuf
private final LineNumberSource lineSource
private final BufferedLineReaderInputStream inbuffer
private EntityState state
private int lineCount
private boolean endOfHeader
private int headerCount
private Field field
private BodyDescriptor body
private RecursionMode recursionMode
private MimeBoundaryInputStream currentMimePartStream
private LineReaderInputStreamAdaptor dataStream
private byte[] tmpbuf
MimeEntity(LineNumberSource lineSource, java.io.InputStream instream, MimeConfig config, EntityState startState, EntityState endState, DecodeMonitor monitor, FieldBuilder fieldBuilder, BodyDescriptorBuilder bodyDescBuilder)
MimeEntity(LineNumberSource lineSource, java.io.InputStream instream, MimeConfig config, EntityState startState, EntityState endState, BodyDescriptorBuilder bodyDescBuilder)
MimeEntity(LineNumberSource lineSource, java.io.InputStream instream, MimeConfig config, BodyDescriptorBuilder bodyDescBuilder)
MimeEntity(LineNumberSource lineSource, java.io.InputStream instream, FieldBuilder fieldBuilder, BodyDescriptorBuilder bodyDescBuilder)
MimeEntity(LineNumberSource lineSource, java.io.InputStream instream, BodyDescriptorBuilder bodyDescBuilder)
public EntityState getState()
EntityStateMachinegetState in interface EntityStateMachineEntityStatepublic RecursionMode getRecursionMode()
public void setRecursionMode(RecursionMode recursionMode)
EntityStateMachineRecursionMode.M_RAW mode does not parse the part at all.
RecursionMode.M_RECURSE mode recursively parses each mail
when an message/rfc822 part is encounted;
RecursionMode.M_NO_RECURSE does not.setRecursionMode in interface EntityStateMachineRecursionModepublic void stop()
private int getLineNumber()
private LineReaderInputStream getDataStream()
protected java.lang.String message(Event event)
event - Event, not nullprotected void monitor(Event event) throws MimeException, java.io.IOException
MimeExceptionjava.io.IOExceptionprivate void readRawField()
throws java.io.IOException,
MimeException
java.io.IOExceptionMimeExceptionprotected boolean nextField()
throws MimeException,
java.io.IOException
MimeExceptionjava.io.IOExceptionpublic EntityStateMachine advance() throws java.io.IOException, MimeException
EntityStateMachineadvance in interface EntityStateMachinenull otherwise.java.io.IOException - if an I/O error occurs.MimeException - if the message can not be processed due
to the MIME specification violation.private void createMimePartStream()
throws MimeException,
java.io.IOException
MimeExceptionjava.io.IOExceptionprivate void clearMimePartStream()
private void advanceToBoundary()
throws java.io.IOException
java.io.IOExceptionprivate EntityStateMachine nextMessage()
private java.io.InputStream decodedStream(java.io.InputStream instream)
private EntityStateMachine nextMimeEntity()
private EntityStateMachine nextMimeEntity(EntityState startState, EntityState endState, java.io.InputStream instream)
private java.io.InputStream getLimitedContentStream()
public BodyDescriptor getBodyDescriptor()
Gets a descriptor for the current entity.
This method is valid if getState() returns:
getBodyDescriptor in interface EntityStateMachineBodyDescriptor, not nullspublic Field getField()
getState() returns EntityState.T_FIELD.getField in interface EntityStateMachinejava.lang.IllegalStateException - getState() returns another
value than EntityState.T_FIELD.public java.io.InputStream getContentStream()
EntityStateMachinegetContentStream in interface EntityStateMachineEntityStateMachine.getContentStream()public java.io.InputStream getDecodedContentStream()
throws java.lang.IllegalStateException
EntityStateMachinegetDecodedContentStream in interface EntityStateMachinejava.lang.IllegalStateException - if the content stream cannot be
obtained at the current stage of the parsing process.EntityStateMachine.getDecodedContentStream()public java.lang.String toString()
toString in class java.lang.Objectpublic static java.lang.String stateToString(EntityState state)
state -