From: Nick Burch Date: Tue, 11 Jan 2011 16:11:23 +0000 (+0000) Subject: More converting of HSMF code to use strongly type attributes X-Git-Tag: REL_3_8_BETA1~41 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=c09b4f435194a858502dbe915aed2897c581afa4;p=poi.git More converting of HSMF code to use strongly type attributes git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1057712 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/src/scratchpad/src/org/apache/poi/hsmf/datatypes/Chunks.java b/src/scratchpad/src/org/apache/poi/hsmf/datatypes/Chunks.java index bb989d1d96..46ac9edf3b 100644 --- a/src/scratchpad/src/org/apache/poi/hsmf/datatypes/Chunks.java +++ b/src/scratchpad/src/org/apache/poi/hsmf/datatypes/Chunks.java @@ -30,24 +30,6 @@ import java.util.List; * 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 allChunks = new ArrayList(); @@ -92,50 +74,50 @@ public final class Chunks implements ChunkGroup { 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); } diff --git a/src/scratchpad/src/org/apache/poi/hsmf/datatypes/MAPIAttribute.java b/src/scratchpad/src/org/apache/poi/hsmf/datatypes/MAPIAttribute.java index 6d679a4bc1..8cc4c2cc56 100644 --- a/src/scratchpad/src/org/apache/poi/hsmf/datatypes/MAPIAttribute.java +++ b/src/scratchpad/src/org/apache/poi/hsmf/datatypes/MAPIAttribute.java @@ -1020,6 +1020,8 @@ public final class MAPIAttribute { public static final MAPIAttribute UNKNOWN = new MAPIAttribute(-1, -1, "Unknown", null); + // 0x8??? ones are outlook specific, and not standard MAPI + /* --------------------------------------------------------------------- */ public final int id; diff --git a/src/scratchpad/testcases/org/apache/poi/hsmf/datatypes/TestChunkData.java b/src/scratchpad/testcases/org/apache/poi/hsmf/datatypes/TestChunkData.java index 23b2faecd6..f9c17abdfb 100644 --- a/src/scratchpad/testcases/org/apache/poi/hsmf/datatypes/TestChunkData.java +++ b/src/scratchpad/testcases/org/apache/poi/hsmf/datatypes/TestChunkData.java @@ -17,11 +17,6 @@ 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; /** @@ -58,23 +53,23 @@ public final class TestChunkData extends 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() { diff --git a/src/scratchpad/testcases/org/apache/poi/hsmf/parsers/TestPOIFSChunkParser.java b/src/scratchpad/testcases/org/apache/poi/hsmf/parsers/TestPOIFSChunkParser.java index ee6f17db8e..fdbc052fe4 100644 --- a/src/scratchpad/testcases/org/apache/poi/hsmf/parsers/TestPOIFSChunkParser.java +++ b/src/scratchpad/testcases/org/apache/poi/hsmf/parsers/TestPOIFSChunkParser.java @@ -60,7 +60,7 @@ public final class TestPOIFSChunkParser extends TestCase { (new StringChunk(MAPIAttribute.SUBJECT.id, Types.ASCII_STRING)).getEntryName() ); simple.getRoot().getEntry( - (new StringChunk(Chunks.DISPLAY_FROM, Types.ASCII_STRING)).getEntryName() + (new StringChunk(MAPIAttribute.SENDER_NAME.id, Types.ASCII_STRING)).getEntryName() ); // Now load the file