* http://msdn.microsoft.com/en-us/library/ms526356%28v=exchg.10%29.aspx
*/
public final class Chunks implements ChunkGroup {
- // 0x0050 -> 0x006F seem to be routing info or similar
- public static final int CONVERSATION_TOPIC = 0x0070;
- public static final int CONVERSATION_INDEX = 0x0071;
- public static final int SENT_BY_SERVER_TYPE = 0x0075;
- public static final int RECEIVED_BY_ADDRESS = 0x0076;
- public static final int RECEIVED_REPRESENTING_ADDRESS = 0x0078;
- public static final int MESSAGE_HEADERS = 0x007D;
- // RECEIVEDEMAIL = 76
- public static final int DISPLAY_TO = 0x0E04;
- public static final int DISPLAY_FROM = 0x0C1A;
- public static final int EMAIL_FROM = 0x0C1F;
- public static final int DISPLAY_CC = 0x0E03;
- public static final int DISPLAY_BCC = 0x0E02;
- // 0x0E1D seems a duplicate of 0x0070 !
- public static final int TEXT_BODY = 0x1000;
- public static final int MESSAGE_ID = 0x1035;
- // 0x8??? ones are outlook specific, and not standard MAPI
-
/** Holds all the chunks that were found. */
private List<Chunk> allChunks = new ArrayList<Chunk>();
if(chunk.getChunkId() == MAPIAttribute.MESSAGE_CLASS.id) {
messageClass = (StringChunk)chunk;
}
- else if(chunk.getChunkId() == MAPIAttribute.SUBJECT.id) {
- subjectChunk = (StringChunk)chunk;
- }
- else if(chunk.getChunkId() == MAPIAttribute.ORIGINAL_SUBJECT.id) {
- // TODO
+ else if(chunk.getChunkId() == MAPIAttribute.INTERNET_MESSAGE_ID.id) {
+ messageId = (StringChunk)chunk;
}
else if(chunk.getChunkId() == MAPIAttribute.MESSAGE_SUBMISSION_ID.id) {
// TODO - parse
submissionChunk = (MessageSubmissionChunk)chunk;
}
-
- switch(chunk.getChunkId()) {
- case MESSAGE_ID:
- messageId = (StringChunk)chunk;
- break;
- case CONVERSATION_TOPIC:
- conversationTopic = (StringChunk)chunk;
- break;
- case SENT_BY_SERVER_TYPE:
+ else if(chunk.getChunkId() == MAPIAttribute.RECEIVED_BY_ADDRTYPE.id) {
sentByServerType = (StringChunk)chunk;
- break;
- case MESSAGE_HEADERS:
+ }
+ else if(chunk.getChunkId() == MAPIAttribute.TRANSPORT_MESSAGE_HEADERS.id) {
messageHeaders = (StringChunk)chunk;
- break;
- case DISPLAY_TO:
+ }
+
+ else if(chunk.getChunkId() == MAPIAttribute.CONVERSATION_TOPIC.id) {
+ conversationTopic = (StringChunk)chunk;
+ }
+ else if(chunk.getChunkId() == MAPIAttribute.SUBJECT.id) {
+ subjectChunk = (StringChunk)chunk;
+ }
+ else if(chunk.getChunkId() == MAPIAttribute.ORIGINAL_SUBJECT.id) {
+ // TODO
+ }
+
+ else if(chunk.getChunkId() == MAPIAttribute.DISPLAY_TO.id) {
displayToChunk = (StringChunk)chunk;
- break;
- case DISPLAY_FROM:
- displayFromChunk = (StringChunk)chunk;
- break;
- case EMAIL_FROM:
- emailFromChunk = (StringChunk)chunk;
- break;
- case DISPLAY_CC:
+ }
+ else if(chunk.getChunkId() == MAPIAttribute.DISPLAY_CC.id) {
displayCCChunk = (StringChunk)chunk;
- break;
- case DISPLAY_BCC:
+ }
+ else if(chunk.getChunkId() == MAPIAttribute.DISPLAY_BCC.id) {
displayBCCChunk = (StringChunk)chunk;
- break;
- case TEXT_BODY:
+ }
+
+ else if(chunk.getChunkId() == MAPIAttribute.SENDER_EMAIL_ADDRESS.id) {
+ emailFromChunk = (StringChunk)chunk;
+ }
+ else if(chunk.getChunkId() == MAPIAttribute.SENDER_NAME.id) {
+ displayFromChunk = (StringChunk)chunk;
+ }
+ else if(chunk.getChunkId() == MAPIAttribute.BODY.id) {
textBodyChunk = (StringChunk)chunk;
- break;
}
-
+
// And add to the main list
allChunks.add(chunk);
}
package org.apache.poi.hsmf.datatypes;
-import org.apache.poi.hsmf.datatypes.Chunk;
-import org.apache.poi.hsmf.datatypes.Chunks;
-import org.apache.poi.hsmf.datatypes.StringChunk;
-import org.apache.poi.hsmf.datatypes.Types;
-
import junit.framework.TestCase;
/**
public void testTextBodyChunk() {
StringChunk chunk = new StringChunk(0x1000, Types.UNICODE_STRING);
- assertEquals(chunk.getChunkId(), Chunks.TEXT_BODY);
+ assertEquals(chunk.getChunkId(), MAPIAttribute.BODY.id);
}
public void testDisplayToChunk() {
StringChunk chunk = new StringChunk(0x0E04, Types.UNICODE_STRING);
- assertEquals(chunk.getChunkId(), Chunks.DISPLAY_TO);
+ assertEquals(chunk.getChunkId(), MAPIAttribute.DISPLAY_TO.id);
}
public void testDisplayCCChunk() {
StringChunk chunk = new StringChunk(0x0E03, Types.UNICODE_STRING);
- assertEquals(chunk.getChunkId(), Chunks.DISPLAY_CC);
+ assertEquals(chunk.getChunkId(), MAPIAttribute.DISPLAY_CC.id);
}
public void testDisplayBCCChunk() {
StringChunk chunk = new StringChunk(0x0E02, Types.UNICODE_STRING);
- assertEquals(chunk.getChunkId(), Chunks.DISPLAY_BCC);
+ assertEquals(chunk.getChunkId(), MAPIAttribute.DISPLAY_BCC.id);
}
public void testSubjectChunk() {