package com.wilutions.joa.example.folderhp;
import com.wilutions.mslib.outlook.MAPIFolder;
import com.wilutions.mslib.outlook.OlDefaultFolders;
import com.wilutions.mslib.outlook._Folders;
import com.wilutions.mslib.outlook._NameSpace;
/**
* Helper class ported from the C# code of the MSDN example
* "Outlook Customization for Integrating with Enterprise Applications".
*/
public class FolderClass {
// / <summary>
// / Returns a reference to a child folder of a folder with a specific name,
// creating an inbox folder if it doesn't exist.
// / </summary>
// / <param name="root"></param>
// / <param name="folderName"></param>
// / <returns></returns>
public MAPIFolder CreateFolder(MAPIFolder root, String folderName) {
return CreateFolder(root, folderName, OlDefaultFolders.olFolderInbox);
}
// / <summary>
// / Returns a reference to a child folder of a folder with a specific name,
// creating it if it doesn't exist
// / </summary>
// / <param name="root"></param>
// / <param name="folderName"></param>
// / <param name="folderType"></param>
// / <returns></returns>
public MAPIFolder CreateFolder(MAPIFolder root, String folderName, OlDefaultFolders folderType) {
MAPIFolder folder = GetFolder(root, folderName);
if (folder == null)
folder = AddChildFolder(root, folderName, folderType);
return folder;
}
// / <summary>
// / Returns a reference to a child folder of a folder with a specific name,
// returning null if it doesn't exist
// / </summary>
// / <param name="root"></param>
// / <param name="folderName"></param>
// / <returns></returns>
public MAPIFolder GetFolder(MAPIFolder root, String folderName) {
_Folders folders = root.getFolders();
int c = folders.getCount();
for (int i = 0; i < c; i++) {
MAPIFolder f = folders.Item(i+1);
if (f.getName().equals(folderName)) {
return f;
}
}
return null;
}
public MAPIFolder GetRootFolder(_NameSpace session) {
return session.GetDefaultFolder(OlDefaultFolders.olFolderInbox).getParent().as(MAPIFolder.class);
}
// / <summary>
// / Creates a child inbox folder with the specified name
// / </summary>
// / <param name="root"></param>
// / <param name="folderName"></param>
// / <returns></returns>
public MAPIFolder AddChildFolder(MAPIFolder root, String folderName) {
return AddChildFolder(root, folderName, OlDefaultFolders.olFolderInbox);
}
// / <summary>
// / Creates a child folder with the specified name of the specified folder
// type
// / </summary>
// / <param name="root"></param>
// / <param name="folderName"></param>
// / <param name="folderType"></param>
// / <returns></returns>
public MAPIFolder AddChildFolder(MAPIFolder root, String folderName, OlDefaultFolders folderType) {
return root.getFolders().Add(folderName, folderType);
}
}