mirror of https://github.com/apache/poi.git
[bug-69434] -- add more properties to AttachmentChunks
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1921800 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
b9eabbb477
commit
157512d437
|
@ -17,12 +17,17 @@
|
||||||
package org.apache.poi.hsmf.datatypes;
|
package org.apache.poi.hsmf.datatypes;
|
||||||
|
|
||||||
import static org.apache.poi.hsmf.datatypes.MAPIProperty.ATTACH_CONTENT_ID;
|
import static org.apache.poi.hsmf.datatypes.MAPIProperty.ATTACH_CONTENT_ID;
|
||||||
|
import static org.apache.poi.hsmf.datatypes.MAPIProperty.ATTACH_CONTENT_LOCATION;
|
||||||
import static org.apache.poi.hsmf.datatypes.MAPIProperty.ATTACH_DATA;
|
import static org.apache.poi.hsmf.datatypes.MAPIProperty.ATTACH_DATA;
|
||||||
import static org.apache.poi.hsmf.datatypes.MAPIProperty.ATTACH_EXTENSION;
|
import static org.apache.poi.hsmf.datatypes.MAPIProperty.ATTACH_EXTENSION;
|
||||||
import static org.apache.poi.hsmf.datatypes.MAPIProperty.ATTACH_FILENAME;
|
import static org.apache.poi.hsmf.datatypes.MAPIProperty.ATTACH_FILENAME;
|
||||||
import static org.apache.poi.hsmf.datatypes.MAPIProperty.ATTACH_LONG_FILENAME;
|
import static org.apache.poi.hsmf.datatypes.MAPIProperty.ATTACH_LONG_FILENAME;
|
||||||
|
import static org.apache.poi.hsmf.datatypes.MAPIProperty.ATTACH_LONG_PATHNAME;
|
||||||
import static org.apache.poi.hsmf.datatypes.MAPIProperty.ATTACH_MIME_TAG;
|
import static org.apache.poi.hsmf.datatypes.MAPIProperty.ATTACH_MIME_TAG;
|
||||||
import static org.apache.poi.hsmf.datatypes.MAPIProperty.ATTACH_RENDERING;
|
import static org.apache.poi.hsmf.datatypes.MAPIProperty.ATTACH_RENDERING;
|
||||||
|
import static org.apache.poi.hsmf.datatypes.MAPIProperty.DISPLAY_NAME;
|
||||||
|
import static org.apache.poi.hsmf.datatypes.MAPIProperty.LANGUAGE;
|
||||||
|
import static org.apache.poi.hsmf.datatypes.MAPIProperty.RECORD_KEY;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
@ -46,9 +51,14 @@ public class AttachmentChunks implements ChunkGroup {
|
||||||
private StringChunk attachExtension;
|
private StringChunk attachExtension;
|
||||||
private StringChunk attachFileName;
|
private StringChunk attachFileName;
|
||||||
private StringChunk attachLongFileName;
|
private StringChunk attachLongFileName;
|
||||||
|
private StringChunk attachLongPathName;
|
||||||
|
private StringChunk attachDisplayName;
|
||||||
private StringChunk attachMimeTag;
|
private StringChunk attachMimeTag;
|
||||||
private DirectoryChunk attachmentDirectory;
|
private DirectoryChunk attachmentDirectory;
|
||||||
private StringChunk attachContentId;
|
private StringChunk attachContentId;
|
||||||
|
private StringChunk attachLanguage;
|
||||||
|
private StringChunk attachContentLocation;
|
||||||
|
private ByteChunk attachRecordKey;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is in WMF Format. You'll probably want to pass it to Apache Batik to
|
* This is in WMF Format. You'll probably want to pass it to Apache Batik to
|
||||||
|
@ -138,6 +148,35 @@ public class AttachmentChunks implements ChunkGroup {
|
||||||
return attachLongFileName;
|
return attachLongFileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return long path name for the attachment
|
||||||
|
*/
|
||||||
|
public StringChunk getAttachLongPathName() {
|
||||||
|
return attachLongPathName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return attachment content location -- relative or absolute URI matching reference in html body
|
||||||
|
*/
|
||||||
|
public StringChunk getAttachContentLocation() {
|
||||||
|
return attachContentLocation;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return the display name of the attachment
|
||||||
|
*/
|
||||||
|
public StringChunk getAttachDisplayName() {
|
||||||
|
return attachDisplayName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the language property for the attachment
|
||||||
|
*/
|
||||||
|
public StringChunk getAttachLanguage() {
|
||||||
|
return attachLanguage;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the attachment mimetag
|
* @return the attachment mimetag
|
||||||
*/
|
*/
|
||||||
|
@ -166,6 +205,13 @@ public class AttachmentChunks implements ChunkGroup {
|
||||||
return attachContentId;
|
return attachContentId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return record key
|
||||||
|
*/
|
||||||
|
public ByteChunk getAttachRecordKey() {
|
||||||
|
return attachRecordKey;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called by the parser whenever a chunk is found.
|
* Called by the parser whenever a chunk is found.
|
||||||
*/
|
*/
|
||||||
|
@ -178,7 +224,6 @@ public class AttachmentChunks implements ChunkGroup {
|
||||||
// - ATTACH_DISPOSITION
|
// - ATTACH_DISPOSITION
|
||||||
// - ATTACH_ENCODING
|
// - ATTACH_ENCODING
|
||||||
// - ATTACH_FLAGS
|
// - ATTACH_FLAGS
|
||||||
// - ATTACH_LONG_PATHNAME
|
|
||||||
// - ATTACH_SIZE
|
// - ATTACH_SIZE
|
||||||
final int chunkId = chunk.getChunkId();
|
final int chunkId = chunk.getChunkId();
|
||||||
|
|
||||||
|
@ -203,6 +248,16 @@ public class AttachmentChunks implements ChunkGroup {
|
||||||
attachRenderingWMF = (ByteChunk) chunk;
|
attachRenderingWMF = (ByteChunk) chunk;
|
||||||
} else if (chunkId == ATTACH_CONTENT_ID.id) {
|
} else if (chunkId == ATTACH_CONTENT_ID.id) {
|
||||||
attachContentId = (StringChunk) chunk;
|
attachContentId = (StringChunk) chunk;
|
||||||
|
} else if (chunkId == DISPLAY_NAME.id) {
|
||||||
|
attachDisplayName = (StringChunk) chunk;
|
||||||
|
} else if (chunkId == LANGUAGE.id) {
|
||||||
|
attachLanguage = (StringChunk) chunk;
|
||||||
|
} else if (chunkId == ATTACH_LONG_PATHNAME.id) {
|
||||||
|
attachLongPathName = (StringChunk) chunk;
|
||||||
|
} else if (chunkId == ATTACH_CONTENT_LOCATION.id) {
|
||||||
|
attachContentLocation = (StringChunk) chunk;
|
||||||
|
} else if (chunkId == RECORD_KEY.id) {
|
||||||
|
attachRecordKey = (ByteChunk) chunk;
|
||||||
} else {
|
} else {
|
||||||
LOG.atWarn().log("Currently unsupported attachment chunk property will be ignored. {}", chunk.getEntryName());
|
LOG.atWarn().log("Currently unsupported attachment chunk property will be ignored. {}", chunk.getEntryName());
|
||||||
}
|
}
|
||||||
|
|
|
@ -193,6 +193,15 @@ public final class TestBasics {
|
||||||
noRecipientAddress.setReturnNullOnMissingChunk(false);
|
noRecipientAddress.setReturnNullOnMissingChunk(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testAttachmentProperties() {
|
||||||
|
AttachmentChunks[] attachmentChunks = noRecipientAddress.getAttachmentFiles();
|
||||||
|
assertEquals(11, attachmentChunks.length);
|
||||||
|
assertEquals("1.jpg", attachmentChunks[0].getAttachContentLocation().toString());
|
||||||
|
assertEquals("1.jpg", attachmentChunks[0].getAttachDisplayName().toString());
|
||||||
|
assertEquals(4, attachmentChunks[0].getAttachRecordKey().getValue().length);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test the 7 bit detection
|
* Test the 7 bit detection
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue