package org.apache.poi.hsmf;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
* Reads an Outlook MSG File in and provides hooks into its data structure.
*
* If you want to develop with HSMF, you might find it worth getting
- * some of the microsoft public documentation, such as:
+ * some of the Microsoft public documentation, such as:
*
* [MS-OXCMSG]: Message and Attachment Object Protocol Specification
*/
/**
* Constructor for creating new files.
- *
*/
public MAPIMessage() {
// TODO - make writing possible
/**
* Constructor for reading MSG Files from the file system.
- * @param filename
+ *
+ * @param filename Name of the file to read
* @throws IOException
*/
public MAPIMessage(String filename) throws IOException {
- this(new NPOIFSFileSystem(new File(filename)));
+ this(new File(filename));
+ }
+ /**
+ * Constructor for reading MSG Files from the file system.
+ *
+ * @param file The file to read from
+ * @throws IOException
+ */
+ public MAPIMessage(File file) throws IOException {
+ this(new NPOIFSFileSystem(file));
}
/**
* Constructor for reading MSG Files from an input stream.
- * @param in
+ *
+ * <p>Note - this will buffer the whole message into memory
+ * in order to process. For lower memory use, use {@link #MAPIMessage(File)}
+ *
+ * @param in The InputStream to buffer then read from
* @throws IOException
*/
public MAPIMessage(InputStream in) throws IOException {
}
/**
* Constructor for reading MSG Files from a POIFS filesystem
- * @param fs
+ *
+ * @param fs Open POIFS FileSystem containing the message
* @throws IOException
*/
public MAPIMessage(NPOIFSFileSystem fs) throws IOException {
/**
* Constructor for reading MSG Files from a certain
* point within a POIFS filesystem
- * @param poifsDir
+ * @param poifsDir Directory containing the message
* @throws IOException
*/
public MAPIMessage(DirectoryNode poifsDir) throws IOException {
ArrayList<AttachmentChunks> attachments = new ArrayList<AttachmentChunks>();
ArrayList<RecipientChunks> recipients = new ArrayList<RecipientChunks>();
for(ChunkGroup group : chunkGroups) {
- // Should only ever be one of these
+ // Should only ever be one of each of these
if(group instanceof Chunks) {
mainChunks = (Chunks)group;
} else if(group instanceof NameIdChunks) {
recipients.add( (RecipientChunks)group );
}
- // Add to list(s)
+ // Can be multiple of these - add to list(s)
if(group instanceof AttachmentChunks) {
attachments.add( (AttachmentChunks)group );
}