aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java/native
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/native')
-rw-r--r--src/java/native/com_libmailcore_AbstractMessage.cpp44
-rw-r--r--src/java/native/com_libmailcore_AbstractMessage.h69
-rw-r--r--src/java/native/com_libmailcore_AbstractMessagePart.cpp14
-rw-r--r--src/java/native/com_libmailcore_AbstractMessagePart.h45
-rw-r--r--src/java/native/com_libmailcore_AbstractMultipart.cpp12
-rw-r--r--src/java/native/com_libmailcore_AbstractMultipart.h29
-rw-r--r--src/java/native/com_libmailcore_AbstractPart.cpp49
-rw-r--r--src/java/native/com_libmailcore_AbstractPart.h181
-rw-r--r--src/java/native/com_libmailcore_Address.cpp77
-rw-r--r--src/java/native/com_libmailcore_Address.h133
-rw-r--r--src/java/native/com_libmailcore_Attachment.cpp57
-rw-r--r--src/java/native/com_libmailcore_Attachment.h85
-rw-r--r--src/java/native/com_libmailcore_ConnectionLogType.h25
-rw-r--r--src/java/native/com_libmailcore_ConnectionLogger.h13
-rw-r--r--src/java/native/com_libmailcore_ConnectionType.h19
-rw-r--r--src/java/native/com_libmailcore_Encoding.h27
-rw-r--r--src/java/native/com_libmailcore_Error.h97
-rw-r--r--src/java/native/com_libmailcore_HTMLRendererIMAPCallback.h13
-rw-r--r--src/java/native/com_libmailcore_HTMLRendererTemplateCallback.h13
-rw-r--r--src/java/native/com_libmailcore_HTMLRendererTemplateCallbackUtils.cpp99
-rw-r--r--src/java/native/com_libmailcore_HTMLRendererTemplateCallbackUtils.h125
-rw-r--r--src/java/native/com_libmailcore_IMAPAppendMessageOperation.cpp31
-rw-r--r--src/java/native/com_libmailcore_IMAPAppendMessageOperation.h37
-rw-r--r--src/java/native/com_libmailcore_IMAPCapability.h83
-rw-r--r--src/java/native/com_libmailcore_IMAPCapabilityOperation.cpp19
-rw-r--r--src/java/native/com_libmailcore_IMAPCapabilityOperation.h21
-rw-r--r--src/java/native/com_libmailcore_IMAPCopyMessagesOperation.cpp19
-rw-r--r--src/java/native/com_libmailcore_IMAPCopyMessagesOperation.h21
-rw-r--r--src/java/native/com_libmailcore_IMAPFetchContentOperation.cpp42
-rw-r--r--src/java/native/com_libmailcore_IMAPFetchContentOperation.h37
-rw-r--r--src/java/native/com_libmailcore_IMAPFetchFoldersOperation.cpp19
-rw-r--r--src/java/native/com_libmailcore_IMAPFetchFoldersOperation.h21
-rw-r--r--src/java/native/com_libmailcore_IMAPFetchMessagesOperation.cpp48
-rw-r--r--src/java/native/com_libmailcore_IMAPFetchMessagesOperation.h45
-rw-r--r--src/java/native/com_libmailcore_IMAPFetchNamespaceOperation.cpp19
-rw-r--r--src/java/native/com_libmailcore_IMAPFetchNamespaceOperation.h21
-rw-r--r--src/java/native/com_libmailcore_IMAPFetchParsedContentOperation.cpp42
-rw-r--r--src/java/native/com_libmailcore_IMAPFetchParsedContentOperation.h37
-rw-r--r--src/java/native/com_libmailcore_IMAPFolder.cpp17
-rw-r--r--src/java/native/com_libmailcore_IMAPFolder.h69
-rw-r--r--src/java/native/com_libmailcore_IMAPFolderFlags.h49
-rw-r--r--src/java/native/com_libmailcore_IMAPFolderInfo.cpp20
-rw-r--r--src/java/native/com_libmailcore_IMAPFolderInfo.h117
-rw-r--r--src/java/native/com_libmailcore_IMAPFolderInfoOperation.cpp19
-rw-r--r--src/java/native/com_libmailcore_IMAPFolderInfoOperation.h21
-rw-r--r--src/java/native/com_libmailcore_IMAPFolderStatus.cpp20
-rw-r--r--src/java/native/com_libmailcore_IMAPFolderStatus.h117
-rw-r--r--src/java/native/com_libmailcore_IMAPFolderStatusOperation.cpp19
-rw-r--r--src/java/native/com_libmailcore_IMAPFolderStatusOperation.h21
-rw-r--r--src/java/native/com_libmailcore_IMAPIdentity.cpp41
-rw-r--r--src/java/native/com_libmailcore_IMAPIdentity.h101
-rw-r--r--src/java/native/com_libmailcore_IMAPIdentityOperation.cpp19
-rw-r--r--src/java/native/com_libmailcore_IMAPIdentityOperation.h21
-rw-r--r--src/java/native/com_libmailcore_IMAPIdleOperation.cpp19
-rw-r--r--src/java/native/com_libmailcore_IMAPIdleOperation.h21
-rw-r--r--src/java/native/com_libmailcore_IMAPMessage.cpp66
-rw-r--r--src/java/native/com_libmailcore_IMAPMessage.h221
-rw-r--r--src/java/native/com_libmailcore_IMAPMessagePart.cpp15
-rw-r--r--src/java/native/com_libmailcore_IMAPMessagePart.h29
-rw-r--r--src/java/native/com_libmailcore_IMAPMessageRenderingOperation.cpp19
-rw-r--r--src/java/native/com_libmailcore_IMAPMessageRenderingOperation.h21
-rw-r--r--src/java/native/com_libmailcore_IMAPMultipart.cpp15
-rw-r--r--src/java/native/com_libmailcore_IMAPMultipart.h37
-rw-r--r--src/java/native/com_libmailcore_IMAPNamespace.cpp62
-rw-r--r--src/java/native/com_libmailcore_IMAPNamespace.h77
-rw-r--r--src/java/native/com_libmailcore_IMAPNamespaceItem.cpp34
-rw-r--r--src/java/native/com_libmailcore_IMAPNamespaceItem.h69
-rw-r--r--src/java/native/com_libmailcore_IMAPOperation.cpp25
-rw-r--r--src/java/native/com_libmailcore_IMAPOperation.h21
-rw-r--r--src/java/native/com_libmailcore_IMAPOperationItemProgressListener.h13
-rw-r--r--src/java/native/com_libmailcore_IMAPOperationProgressListener.h13
-rw-r--r--src/java/native/com_libmailcore_IMAPPart.cpp23
-rw-r--r--src/java/native/com_libmailcore_IMAPPart.h69
-rw-r--r--src/java/native/com_libmailcore_IMAPQuotaOperation.cpp25
-rw-r--r--src/java/native/com_libmailcore_IMAPQuotaOperation.h29
-rw-r--r--src/java/native/com_libmailcore_IMAPSearchExpression.cpp223
-rw-r--r--src/java/native/com_libmailcore_IMAPSearchExpression.h301
-rw-r--r--src/java/native/com_libmailcore_IMAPSearchKind.h85
-rw-r--r--src/java/native/com_libmailcore_IMAPSearchOperation.cpp19
-rw-r--r--src/java/native/com_libmailcore_IMAPSearchOperation.h21
-rw-r--r--src/java/native/com_libmailcore_IMAPSession.cpp356
-rw-r--r--src/java/native/com_libmailcore_IMAPSession.h597
-rw-r--r--src/java/native/com_libmailcore_IMAPStoreFlagsRequestKind.h19
-rw-r--r--src/java/native/com_libmailcore_IndexSet.cpp123
-rw-r--r--src/java/native/com_libmailcore_IndexSet.h149
-rw-r--r--src/java/native/com_libmailcore_MailException.h103
-rw-r--r--src/java/native/com_libmailcore_MainThreadUtils.h37
-rw-r--r--src/java/native/com_libmailcore_MessageBuilder.cpp90
-rw-r--r--src/java/native/com_libmailcore_MessageBuilder.h181
-rw-r--r--src/java/native/com_libmailcore_MessageFlag.h35
-rw-r--r--src/java/native/com_libmailcore_MessageHeader.cpp111
-rw-r--r--src/java/native/com_libmailcore_MessageHeader.h309
-rw-r--r--src/java/native/com_libmailcore_MessageParser.cpp70
-rw-r--r--src/java/native/com_libmailcore_MessageParser.h85
-rw-r--r--src/java/native/com_libmailcore_MessagePart.cpp13
-rw-r--r--src/java/native/com_libmailcore_MessagePart.h13
-rw-r--r--src/java/native/com_libmailcore_Multipart.cpp13
-rw-r--r--src/java/native/com_libmailcore_Multipart.h13
-rw-r--r--src/java/native/com_libmailcore_NativeObject.cpp53
-rw-r--r--src/java/native/com_libmailcore_NativeObject.h61
-rw-r--r--src/java/native/com_libmailcore_Operation.cpp64
-rw-r--r--src/java/native/com_libmailcore_Operation.h37
-rw-r--r--src/java/native/com_libmailcore_OperationCallback.h13
-rw-r--r--src/java/native/com_libmailcore_OperationQueueListener.h13
-rw-r--r--src/java/native/com_libmailcore_PartType.h23
-rw-r--r--src/java/native/com_libmailcore_Range.cpp67
-rw-r--r--src/java/native/com_libmailcore_Range.h77
107 files changed, 6756 insertions, 0 deletions
diff --git a/src/java/native/com_libmailcore_AbstractMessage.cpp b/src/java/native/com_libmailcore_AbstractMessage.cpp
new file mode 100644
index 00000000..ceec521a
--- /dev/null
+++ b/src/java/native/com_libmailcore_AbstractMessage.cpp
@@ -0,0 +1,44 @@
+#include "com_libmailcore_AbstractMessage.h"
+
+#include "TypesUtils.h"
+#include "JavaHandle.h"
+#include "MCAbstractMessage.h"
+#include "MCAbstractPart.h"
+#include "MCMessageHeader.h"
+
+using namespace mailcore;
+
+#define nativeType AbstractMessage
+#define javaType nativeType
+
+MC_JAVA_SYNTHESIZE(MessageHeader, setHeader, header)
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractMessage_partForContentID
+ (JNIEnv * env, jobject obj, jstring contentID)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForContentID(MC_FROM_JAVA(String, contentID)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractMessage_partForUniqueID
+ (JNIEnv * env, jobject obj, jstring uniqueID)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForUniqueID(MC_FROM_JAVA(String, uniqueID)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractMessage_attachments
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(attachments);
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractMessage_htmlInlineAttachments
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(htmlInlineAttachments);
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractMessage_requiredPartsForRendering
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(requiredPartsForRendering);
+}
diff --git a/src/java/native/com_libmailcore_AbstractMessage.h b/src/java/native/com_libmailcore_AbstractMessage.h
new file mode 100644
index 00000000..bdb17a69
--- /dev/null
+++ b/src/java/native/com_libmailcore_AbstractMessage.h
@@ -0,0 +1,69 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_AbstractMessage */
+
+#ifndef _Included_com_libmailcore_AbstractMessage
+#define _Included_com_libmailcore_AbstractMessage
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_AbstractMessage
+ * Method: header
+ * Signature: ()Lcom/libmailcore/MessageHeader;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractMessage_header
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_AbstractMessage
+ * Method: setHeader
+ * Signature: (Lcom/libmailcore/MessageHeader;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_AbstractMessage_setHeader
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_AbstractMessage
+ * Method: partForContentID
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/AbstractPart;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractMessage_partForContentID
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_AbstractMessage
+ * Method: partForUniqueID
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/AbstractPart;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractMessage_partForUniqueID
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_AbstractMessage
+ * Method: attachments
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractMessage_attachments
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_AbstractMessage
+ * Method: htmlInlineAttachments
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractMessage_htmlInlineAttachments
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_AbstractMessage
+ * Method: requiredPartsForRendering
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractMessage_requiredPartsForRendering
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_AbstractMessagePart.cpp b/src/java/native/com_libmailcore_AbstractMessagePart.cpp
new file mode 100644
index 00000000..346a76f8
--- /dev/null
+++ b/src/java/native/com_libmailcore_AbstractMessagePart.cpp
@@ -0,0 +1,14 @@
+#include "com_libmailcore_AbstractMessagePart.h"
+
+#include "TypesUtils.h"
+#include "JavaHandle.h"
+#include "MCMessageHeader.h"
+#include "MCAbstractMessagePart.h"
+
+using namespace mailcore;
+
+#define nativeType AbstractMessagePart
+#define javaType nativeType
+
+MC_JAVA_SYNTHESIZE(MessageHeader, setHeader, header)
+MC_JAVA_SYNTHESIZE(AbstractPart, setMainPart, mainPart)
diff --git a/src/java/native/com_libmailcore_AbstractMessagePart.h b/src/java/native/com_libmailcore_AbstractMessagePart.h
new file mode 100644
index 00000000..67530cc4
--- /dev/null
+++ b/src/java/native/com_libmailcore_AbstractMessagePart.h
@@ -0,0 +1,45 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_AbstractMessagePart */
+
+#ifndef _Included_com_libmailcore_AbstractMessagePart
+#define _Included_com_libmailcore_AbstractMessagePart
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_AbstractMessagePart
+ * Method: header
+ * Signature: ()Lcom/libmailcore/MessageHeader;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractMessagePart_header
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_AbstractMessagePart
+ * Method: setHeader
+ * Signature: (Lcom/libmailcore/MessageHeader;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_AbstractMessagePart_setHeader
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_AbstractMessagePart
+ * Method: mainPart
+ * Signature: ()Lcom/libmailcore/AbstractPart;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractMessagePart_mainPart
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_AbstractMessagePart
+ * Method: setMainPart
+ * Signature: (Lcom/libmailcore/AbstractPart;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_AbstractMessagePart_setMainPart
+ (JNIEnv *, jobject, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_AbstractMultipart.cpp b/src/java/native/com_libmailcore_AbstractMultipart.cpp
new file mode 100644
index 00000000..34529a7a
--- /dev/null
+++ b/src/java/native/com_libmailcore_AbstractMultipart.cpp
@@ -0,0 +1,12 @@
+#include "com_libmailcore_AbstractMultipart.h"
+
+#include "TypesUtils.h"
+#include "JavaHandle.h"
+#include "MCAbstractMultipart.h"
+
+using namespace mailcore;
+
+#define nativeType AbstractMultipart
+#define javaType nativeType
+
+MC_JAVA_SYNTHESIZE(Array, setParts, parts)
diff --git a/src/java/native/com_libmailcore_AbstractMultipart.h b/src/java/native/com_libmailcore_AbstractMultipart.h
new file mode 100644
index 00000000..59a73c33
--- /dev/null
+++ b/src/java/native/com_libmailcore_AbstractMultipart.h
@@ -0,0 +1,29 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_AbstractMultipart */
+
+#ifndef _Included_com_libmailcore_AbstractMultipart
+#define _Included_com_libmailcore_AbstractMultipart
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_AbstractMultipart
+ * Method: parts
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractMultipart_parts
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_AbstractMultipart
+ * Method: setParts
+ * Signature: (Ljava/util/List;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_AbstractMultipart_setParts
+ (JNIEnv *, jobject, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_AbstractPart.cpp b/src/java/native/com_libmailcore_AbstractPart.cpp
new file mode 100644
index 00000000..188ab4d3
--- /dev/null
+++ b/src/java/native/com_libmailcore_AbstractPart.cpp
@@ -0,0 +1,49 @@
+#include "com_libmailcore_AbstractPart.h"
+
+#include "TypesUtils.h"
+#include "JavaHandle.h"
+#include "MCAbstractPart.h"
+
+using namespace mailcore;
+
+#define nativeType AbstractPart
+#define javaType nativeType
+
+MC_JAVA_SYNTHESIZE_SCALAR(jint, PartType, setPartType, partType)
+MC_JAVA_SYNTHESIZE_STRING(setFilename, filename)
+MC_JAVA_SYNTHESIZE_STRING(setCharset, charset)
+MC_JAVA_SYNTHESIZE_STRING(setUniqueID, uniqueID)
+MC_JAVA_SYNTHESIZE_STRING(setContentID, contentID)
+MC_JAVA_SYNTHESIZE_STRING(setContentLocation, contentLocation)
+MC_JAVA_SYNTHESIZE_STRING(setContentDescription, contentDescription)
+MC_JAVA_SYNTHESIZE_SCALAR(jboolean, bool, setInlineAttachment, isInlineAttachment)
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractPart_partForContentID
+ (JNIEnv * env, jobject obj, jstring contentID)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForContentID(MC_FROM_JAVA(String, contentID)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractPart_partForUniqueID
+ (JNIEnv * env, jobject obj, jstring uniqueID)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForUniqueID(MC_FROM_JAVA(String, uniqueID)));
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_AbstractPart_setContentTypeParameter
+ (JNIEnv * env, jobject obj, jstring name, jstring value)
+{
+ MC_JAVA_NATIVE_INSTANCE->setContentTypeParameter(MC_FROM_JAVA(String, name), MC_FROM_JAVA(String, value));
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_AbstractPart_contentTypeParameterValueForName
+ (JNIEnv * env, jobject obj, jstring name)
+{
+ return (jstring) MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->contentTypeParameterValueForName(MC_FROM_JAVA(String, name)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractPart_allContentTypeParametersNames
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(allContentTypeParametersNames);
+}
diff --git a/src/java/native/com_libmailcore_AbstractPart.h b/src/java/native/com_libmailcore_AbstractPart.h
new file mode 100644
index 00000000..e6c41c6a
--- /dev/null
+++ b/src/java/native/com_libmailcore_AbstractPart.h
@@ -0,0 +1,181 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_AbstractPart */
+
+#ifndef _Included_com_libmailcore_AbstractPart
+#define _Included_com_libmailcore_AbstractPart
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: partType
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_libmailcore_AbstractPart_partType
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: setPartType
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_AbstractPart_setPartType
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: filename
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_AbstractPart_filename
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: setFilename
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_AbstractPart_setFilename
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: charset
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_AbstractPart_charset
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: setCharset
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_AbstractPart_setCharset
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: uniqueID
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_AbstractPart_uniqueID
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: setUniqueID
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_AbstractPart_setUniqueID
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: contentID
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_AbstractPart_contentID
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: setContentID
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_AbstractPart_setContentID
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: contentLocation
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_AbstractPart_contentLocation
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: setContentLocation
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_AbstractPart_setContentLocation
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: contentDescription
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_AbstractPart_contentDescription
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: setContentDescription
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_AbstractPart_setContentDescription
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: isInlineAttachment
+ * Signature: ()Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_AbstractPart_isInlineAttachment
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: setInlineAttachment
+ * Signature: (Z)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_AbstractPart_setInlineAttachment
+ (JNIEnv *, jobject, jboolean);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: partForContentID
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/AbstractPart;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractPart_partForContentID
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: partForUniqueID
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/AbstractPart;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractPart_partForUniqueID
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: setContentTypeParameter
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_AbstractPart_setContentTypeParameter
+ (JNIEnv *, jobject, jstring, jstring);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: contentTypeParameterValueForName
+ * Signature: (Ljava/lang/String;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_AbstractPart_contentTypeParameterValueForName
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_AbstractPart
+ * Method: allContentTypeParametersNames
+ * Signature: ()Ljava/util/AbstractList;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractPart_allContentTypeParametersNames
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_Address.cpp b/src/java/native/com_libmailcore_Address.cpp
new file mode 100644
index 00000000..f1d49d48
--- /dev/null
+++ b/src/java/native/com_libmailcore_Address.cpp
@@ -0,0 +1,77 @@
+#include "com_libmailcore_Address.h"
+
+#include "TypesUtils.h"
+#include "JavaHandle.h"
+#include "MCAddress.h"
+#include "MCDefines.h"
+
+using namespace mailcore;
+
+#define nativeType Address
+#define javaType nativeType
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Address_addressWithDisplayName
+ (JNIEnv * env, jclass cls, jstring displayName, jstring mailbox)
+{
+ return MC_TO_JAVA(Address::addressWithDisplayName(MC_FROM_JAVA(String, displayName),
+ MC_FROM_JAVA(String, mailbox)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Address_addressWithMailbox
+ (JNIEnv * env, jclass cls, jstring mailbox)
+{
+ return MC_TO_JAVA(Address::addressWithMailbox(MC_FROM_JAVA(String, mailbox)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Address_addressWithRFC822String
+ (JNIEnv * env, jclass cls, jstring rfc822String)
+{
+ return MC_TO_JAVA(Address::addressWithRFC822String(MC_FROM_JAVA(String, rfc822String)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Address_addressWithNonEncodedRFC822String
+ (JNIEnv * env, jclass cls, jstring rfc822String)
+{
+ return MC_TO_JAVA(Address::addressWithNonEncodedRFC822String(MC_FROM_JAVA(String, rfc822String)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Address_addressesWithRFC822String
+ (JNIEnv * env, jclass cls, jstring rfc822String)
+{
+ return MC_TO_JAVA(Address::addressesWithRFC822String(MC_FROM_JAVA(String, rfc822String)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Address_addressesWithNonEncodedRFC822String
+ (JNIEnv * env, jclass cls, jstring rfc822String)
+{
+ return MC_TO_JAVA(Address::addressesWithNonEncodedRFC822String(MC_FROM_JAVA(String, rfc822String)));
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_Address_RFC822StringForAddresses
+ (JNIEnv * env, jclass cls, jobject addresses)
+{
+ return (jstring) MC_TO_JAVA(Address::RFC822StringForAddresses(MC_FROM_JAVA(Array, addresses)));
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_Address_nonEncodedRFC822StringForAddresses
+ (JNIEnv * env, jclass cls, jobject addresses)
+{
+ return (jstring) MC_TO_JAVA(Address::nonEncodedRFC822StringForAddresses(MC_FROM_JAVA(Array, addresses)));
+}
+
+MC_JAVA_SYNTHESIZE_STRING(setDisplayName, displayName)
+MC_JAVA_SYNTHESIZE_STRING(setMailbox, mailbox)
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_Address_RFC822String
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET_STRING(RFC822String);
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_Address_nonEncodedRFC822String
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET_STRING(nonEncodedRFC822String);
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_Address.h b/src/java/native/com_libmailcore_Address.h
new file mode 100644
index 00000000..6bc5f042
--- /dev/null
+++ b/src/java/native/com_libmailcore_Address.h
@@ -0,0 +1,133 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_Address */
+
+#ifndef _Included_com_libmailcore_Address
+#define _Included_com_libmailcore_Address
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_Address
+ * Method: addressWithDisplayName
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)Lcom/libmailcore/Address;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Address_addressWithDisplayName
+ (JNIEnv *, jclass, jstring, jstring);
+
+/*
+ * Class: com_libmailcore_Address
+ * Method: addressWithMailbox
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/Address;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Address_addressWithMailbox
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_Address
+ * Method: addressWithRFC822String
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/Address;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Address_addressWithRFC822String
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_Address
+ * Method: addressWithNonEncodedRFC822String
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/Address;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Address_addressWithNonEncodedRFC822String
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_Address
+ * Method: addressesWithRFC822String
+ * Signature: (Ljava/lang/String;)Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Address_addressesWithRFC822String
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_Address
+ * Method: addressesWithNonEncodedRFC822String
+ * Signature: (Ljava/lang/String;)Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Address_addressesWithNonEncodedRFC822String
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_Address
+ * Method: RFC822StringForAddresses
+ * Signature: (Ljava/util/List;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_Address_RFC822StringForAddresses
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_Address
+ * Method: nonEncodedRFC822StringForAddresses
+ * Signature: (Ljava/util/List;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_Address_nonEncodedRFC822StringForAddresses
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_Address
+ * Method: displayName
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_Address_displayName
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_Address
+ * Method: setDisplayName
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_Address_setDisplayName
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_Address
+ * Method: mailbox
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_Address_mailbox
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_Address
+ * Method: setMailbox
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_Address_setMailbox
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_Address
+ * Method: RFC822String
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_Address_RFC822String
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_Address
+ * Method: nonEncodedRFC822String
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_Address_nonEncodedRFC822String
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_Address
+ * Method: setupNative
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_Address_setupNative
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_Attachment.cpp b/src/java/native/com_libmailcore_Attachment.cpp
new file mode 100644
index 00000000..652a3337
--- /dev/null
+++ b/src/java/native/com_libmailcore_Attachment.cpp
@@ -0,0 +1,57 @@
+#include "com_libmailcore_Attachment.h"
+
+#include "TypesUtils.h"
+#include "JavaHandle.h"
+#include "MCAttachment.h"
+#include "MCDefines.h"
+
+using namespace mailcore;
+
+#define nativeType Attachment
+#define javaType nativeType
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_Attachment_mimeTypeForFilename
+ (JNIEnv * env, jclass javaClass, jstring filename)
+{
+ return (jstring) MC_TO_JAVA(Attachment::mimeTypeForFilename(MC_FROM_JAVA(String, filename)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Attachment_attachmentWithContentsOfFile
+ (JNIEnv * env, jclass javaClass, jstring filename)
+{
+ return MC_TO_JAVA(Attachment::attachmentWithContentsOfFile(MC_FROM_JAVA(String, filename)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Attachment_attachmentWithData
+ (JNIEnv * env, jclass javaClass, jstring filename, jbyteArray data)
+{
+ return MC_TO_JAVA(Attachment::attachmentWithData(MC_FROM_JAVA(String, filename), MC_FROM_JAVA(Data, data)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Attachment_attachmentWithHTMLString
+ (JNIEnv * env, jclass javaClass, jstring htmlString)
+{
+ return MC_TO_JAVA(Attachment::attachmentWithHTMLString(MC_FROM_JAVA(String, htmlString)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Attachment_attachmentWithRFC822Message
+ (JNIEnv * env, jclass javaClass, jbyteArray data)
+{
+ return MC_TO_JAVA(Attachment::attachmentWithRFC822Message(MC_FROM_JAVA(Data, data)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Attachment_attachmentWithText
+ (JNIEnv * env, jclass javaClass, jstring text)
+{
+ return MC_TO_JAVA(Attachment::attachmentWithText(MC_FROM_JAVA(String, text)));
+}
+
+MC_JAVA_SYNTHESIZE_DATA(setData, data)
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_Attachment_decodedString
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET_STRING(decodedString);
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_Attachment.h b/src/java/native/com_libmailcore_Attachment.h
new file mode 100644
index 00000000..2fc98aa5
--- /dev/null
+++ b/src/java/native/com_libmailcore_Attachment.h
@@ -0,0 +1,85 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_Attachment */
+
+#ifndef _Included_com_libmailcore_Attachment
+#define _Included_com_libmailcore_Attachment
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_Attachment
+ * Method: mimeTypeForFilename
+ * Signature: (Ljava/lang/String;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_Attachment_mimeTypeForFilename
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_Attachment
+ * Method: attachmentWithContentsOfFile
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/Attachment;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Attachment_attachmentWithContentsOfFile
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_Attachment
+ * Method: attachmentWithData
+ * Signature: (Ljava/lang/String;[B)Lcom/libmailcore/Attachment;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Attachment_attachmentWithData
+ (JNIEnv *, jclass, jstring, jbyteArray);
+
+/*
+ * Class: com_libmailcore_Attachment
+ * Method: attachmentWithHTMLString
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/Attachment;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Attachment_attachmentWithHTMLString
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_Attachment
+ * Method: attachmentWithRFC822Message
+ * Signature: ([B)Lcom/libmailcore/Attachment;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Attachment_attachmentWithRFC822Message
+ (JNIEnv *, jclass, jbyteArray);
+
+/*
+ * Class: com_libmailcore_Attachment
+ * Method: attachmentWithText
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/Attachment;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Attachment_attachmentWithText
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_Attachment
+ * Method: data
+ * Signature: ()[B
+ */
+JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_Attachment_data
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_Attachment
+ * Method: setData
+ * Signature: ([B)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_Attachment_setData
+ (JNIEnv *, jobject, jbyteArray);
+
+/*
+ * Class: com_libmailcore_Attachment
+ * Method: decodedString
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_Attachment_decodedString
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_ConnectionLogType.h b/src/java/native/com_libmailcore_ConnectionLogType.h
new file mode 100644
index 00000000..be31d805
--- /dev/null
+++ b/src/java/native/com_libmailcore_ConnectionLogType.h
@@ -0,0 +1,25 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_ConnectionLogType */
+
+#ifndef _Included_com_libmailcore_ConnectionLogType
+#define _Included_com_libmailcore_ConnectionLogType
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef com_libmailcore_ConnectionLogType_ConnectionLogTypeReceived
+#define com_libmailcore_ConnectionLogType_ConnectionLogTypeReceived 0L
+#undef com_libmailcore_ConnectionLogType_ConnectionLogTypeSent
+#define com_libmailcore_ConnectionLogType_ConnectionLogTypeSent 1L
+#undef com_libmailcore_ConnectionLogType_ConnectionLogTypeSentPrivate
+#define com_libmailcore_ConnectionLogType_ConnectionLogTypeSentPrivate 2L
+#undef com_libmailcore_ConnectionLogType_ConnectionLogTypeErrorParse
+#define com_libmailcore_ConnectionLogType_ConnectionLogTypeErrorParse 3L
+#undef com_libmailcore_ConnectionLogType_ConnectionLogTypeErrorReceived
+#define com_libmailcore_ConnectionLogType_ConnectionLogTypeErrorReceived 4L
+#undef com_libmailcore_ConnectionLogType_ConnectionLogTypeErrorSent
+#define com_libmailcore_ConnectionLogType_ConnectionLogTypeErrorSent 5L
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_ConnectionLogger.h b/src/java/native/com_libmailcore_ConnectionLogger.h
new file mode 100644
index 00000000..6c46bb1d
--- /dev/null
+++ b/src/java/native/com_libmailcore_ConnectionLogger.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_ConnectionLogger */
+
+#ifndef _Included_com_libmailcore_ConnectionLogger
+#define _Included_com_libmailcore_ConnectionLogger
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_ConnectionType.h b/src/java/native/com_libmailcore_ConnectionType.h
new file mode 100644
index 00000000..6b5a8c1f
--- /dev/null
+++ b/src/java/native/com_libmailcore_ConnectionType.h
@@ -0,0 +1,19 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_ConnectionType */
+
+#ifndef _Included_com_libmailcore_ConnectionType
+#define _Included_com_libmailcore_ConnectionType
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef com_libmailcore_ConnectionType_ConnectionTypeClear
+#define com_libmailcore_ConnectionType_ConnectionTypeClear 1L
+#undef com_libmailcore_ConnectionType_ConnectionTypeStartTLS
+#define com_libmailcore_ConnectionType_ConnectionTypeStartTLS 2L
+#undef com_libmailcore_ConnectionType_ConnectionTypeTLS
+#define com_libmailcore_ConnectionType_ConnectionTypeTLS 4L
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_Encoding.h b/src/java/native/com_libmailcore_Encoding.h
new file mode 100644
index 00000000..2f63c16c
--- /dev/null
+++ b/src/java/native/com_libmailcore_Encoding.h
@@ -0,0 +1,27 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_Encoding */
+
+#ifndef _Included_com_libmailcore_Encoding
+#define _Included_com_libmailcore_Encoding
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef com_libmailcore_Encoding_Encoding7Bit
+#define com_libmailcore_Encoding_Encoding7Bit 0L
+#undef com_libmailcore_Encoding_Encoding8Bit
+#define com_libmailcore_Encoding_Encoding8Bit 1L
+#undef com_libmailcore_Encoding_EncodingBinary
+#define com_libmailcore_Encoding_EncodingBinary 2L
+#undef com_libmailcore_Encoding_EncodingBase64
+#define com_libmailcore_Encoding_EncodingBase64 3L
+#undef com_libmailcore_Encoding_EncodingQuotedPrintable
+#define com_libmailcore_Encoding_EncodingQuotedPrintable 4L
+#undef com_libmailcore_Encoding_EncodingOther
+#define com_libmailcore_Encoding_EncodingOther 5L
+#undef com_libmailcore_Encoding_EncodingUUEncode
+#define com_libmailcore_Encoding_EncodingUUEncode -1L
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_Error.h b/src/java/native/com_libmailcore_Error.h
new file mode 100644
index 00000000..345b3eef
--- /dev/null
+++ b/src/java/native/com_libmailcore_Error.h
@@ -0,0 +1,97 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_Error */
+
+#ifndef _Included_com_libmailcore_Error
+#define _Included_com_libmailcore_Error
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef com_libmailcore_Error_ErrorNone
+#define com_libmailcore_Error_ErrorNone 0L
+#undef com_libmailcore_Error_ErrorConnection
+#define com_libmailcore_Error_ErrorConnection 1L
+#undef com_libmailcore_Error_ErrorTLSNotAvailable
+#define com_libmailcore_Error_ErrorTLSNotAvailable 2L
+#undef com_libmailcore_Error_ErrorParse
+#define com_libmailcore_Error_ErrorParse 3L
+#undef com_libmailcore_Error_ErrorCertificate
+#define com_libmailcore_Error_ErrorCertificate 4L
+#undef com_libmailcore_Error_ErrorAuthentication
+#define com_libmailcore_Error_ErrorAuthentication 5L
+#undef com_libmailcore_Error_ErrorGmailIMAPNotEnabled
+#define com_libmailcore_Error_ErrorGmailIMAPNotEnabled 6L
+#undef com_libmailcore_Error_ErrorGmailExceededBandwidthLimit
+#define com_libmailcore_Error_ErrorGmailExceededBandwidthLimit 7L
+#undef com_libmailcore_Error_ErrorGmailTooManySimultaneousConnections
+#define com_libmailcore_Error_ErrorGmailTooManySimultaneousConnections 8L
+#undef com_libmailcore_Error_ErrorMobileMeMoved
+#define com_libmailcore_Error_ErrorMobileMeMoved 9L
+#undef com_libmailcore_Error_ErrorYahooUnavailable
+#define com_libmailcore_Error_ErrorYahooUnavailable 10L
+#undef com_libmailcore_Error_ErrorNonExistantFolder
+#define com_libmailcore_Error_ErrorNonExistantFolder 11L
+#undef com_libmailcore_Error_ErrorRename
+#define com_libmailcore_Error_ErrorRename 12L
+#undef com_libmailcore_Error_ErrorDelete
+#define com_libmailcore_Error_ErrorDelete 13L
+#undef com_libmailcore_Error_ErrorCreate
+#define com_libmailcore_Error_ErrorCreate 14L
+#undef com_libmailcore_Error_ErrorSubscribe
+#define com_libmailcore_Error_ErrorSubscribe 15L
+#undef com_libmailcore_Error_ErrorAppend
+#define com_libmailcore_Error_ErrorAppend 16L
+#undef com_libmailcore_Error_ErrorCopy
+#define com_libmailcore_Error_ErrorCopy 17L
+#undef com_libmailcore_Error_ErrorExpunge
+#define com_libmailcore_Error_ErrorExpunge 18L
+#undef com_libmailcore_Error_ErrorFetch
+#define com_libmailcore_Error_ErrorFetch 19L
+#undef com_libmailcore_Error_ErrorIdle
+#define com_libmailcore_Error_ErrorIdle 20L
+#undef com_libmailcore_Error_ErrorIdentity
+#define com_libmailcore_Error_ErrorIdentity 21L
+#undef com_libmailcore_Error_ErrorNamespace
+#define com_libmailcore_Error_ErrorNamespace 22L
+#undef com_libmailcore_Error_ErrorStore
+#define com_libmailcore_Error_ErrorStore 23L
+#undef com_libmailcore_Error_ErrorCapability
+#define com_libmailcore_Error_ErrorCapability 24L
+#undef com_libmailcore_Error_ErrorStartTLSNotAvailable
+#define com_libmailcore_Error_ErrorStartTLSNotAvailable 25L
+#undef com_libmailcore_Error_ErrorSendMessageIllegalAttachment
+#define com_libmailcore_Error_ErrorSendMessageIllegalAttachment 26L
+#undef com_libmailcore_Error_ErrorStorageLimit
+#define com_libmailcore_Error_ErrorStorageLimit 27L
+#undef com_libmailcore_Error_ErrorSendMessageNotAllowed
+#define com_libmailcore_Error_ErrorSendMessageNotAllowed 28L
+#undef com_libmailcore_Error_ErrorNeedsConnectToWebmail
+#define com_libmailcore_Error_ErrorNeedsConnectToWebmail 29L
+#undef com_libmailcore_Error_ErrorSendMessage
+#define com_libmailcore_Error_ErrorSendMessage 30L
+#undef com_libmailcore_Error_ErrorAuthenticationRequired
+#define com_libmailcore_Error_ErrorAuthenticationRequired 31L
+#undef com_libmailcore_Error_ErrorFetchMessageList
+#define com_libmailcore_Error_ErrorFetchMessageList 32L
+#undef com_libmailcore_Error_ErrorDeleteMessage
+#define com_libmailcore_Error_ErrorDeleteMessage 33L
+#undef com_libmailcore_Error_ErrorInvalidAccount
+#define com_libmailcore_Error_ErrorInvalidAccount 34L
+#undef com_libmailcore_Error_ErrorFile
+#define com_libmailcore_Error_ErrorFile 35L
+#undef com_libmailcore_Error_ErrorCompression
+#define com_libmailcore_Error_ErrorCompression 36L
+#undef com_libmailcore_Error_ErrorNoSender
+#define com_libmailcore_Error_ErrorNoSender 37L
+#undef com_libmailcore_Error_ErrorNoRecipient
+#define com_libmailcore_Error_ErrorNoRecipient 38L
+#undef com_libmailcore_Error_ErrorNoop
+#define com_libmailcore_Error_ErrorNoop 39L
+#undef com_libmailcore_Error_ErrorGmailApplicationSpecificPasswordRequired
+#define com_libmailcore_Error_ErrorGmailApplicationSpecificPasswordRequired 40L
+#undef com_libmailcore_Error_ErrorServerDate
+#define com_libmailcore_Error_ErrorServerDate 41L
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_HTMLRendererIMAPCallback.h b/src/java/native/com_libmailcore_HTMLRendererIMAPCallback.h
new file mode 100644
index 00000000..19071bc5
--- /dev/null
+++ b/src/java/native/com_libmailcore_HTMLRendererIMAPCallback.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_HTMLRendererIMAPCallback */
+
+#ifndef _Included_com_libmailcore_HTMLRendererIMAPCallback
+#define _Included_com_libmailcore_HTMLRendererIMAPCallback
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_HTMLRendererTemplateCallback.h b/src/java/native/com_libmailcore_HTMLRendererTemplateCallback.h
new file mode 100644
index 00000000..c27204e6
--- /dev/null
+++ b/src/java/native/com_libmailcore_HTMLRendererTemplateCallback.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_HTMLRendererTemplateCallback */
+
+#ifndef _Included_com_libmailcore_HTMLRendererTemplateCallback
+#define _Included_com_libmailcore_HTMLRendererTemplateCallback
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_HTMLRendererTemplateCallbackUtils.cpp b/src/java/native/com_libmailcore_HTMLRendererTemplateCallbackUtils.cpp
new file mode 100644
index 00000000..9a127523
--- /dev/null
+++ b/src/java/native/com_libmailcore_HTMLRendererTemplateCallbackUtils.cpp
@@ -0,0 +1,99 @@
+#include "com_libmailcore_HTMLRendererTemplateCallbackUtils.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCHTMLRendererCallback.h"
+
+using namespace mailcore;
+
+static HTMLRendererTemplateCallback * callback = NULL;
+
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_canPreviewPart
+ (JNIEnv * env, jclass cls, jobject part)
+{
+ return (jboolean) callback->canPreviewPart(MC_FROM_JAVA(AbstractPart, part));
+}
+
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_shouldShowPart
+ (JNIEnv * env, jclass cls, jobject part)
+{
+ return (jboolean) callback->canPreviewPart(MC_FROM_JAVA(AbstractPart, part));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateValuesForHeader
+ (JNIEnv * env, jclass cls, jobject header)
+{
+ return MC_TO_JAVA(callback->templateValuesForHeader(MC_FROM_JAVA(MessageHeader, header)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateValuesForPart
+ (JNIEnv * env, jclass cls, jobject part)
+{
+ return MC_TO_JAVA(callback->templateValuesForPart(MC_FROM_JAVA(AbstractPart, part)));
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForMainHeader
+ (JNIEnv * env, jclass cls, jobject header)
+{
+ return (jstring) MC_TO_JAVA(callback->templateForMainHeader(MC_FROM_JAVA(MessageHeader, header)));
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForImage
+ (JNIEnv * env, jclass cls, jobject part)
+{
+ return (jstring) MC_TO_JAVA(callback->templateForImage(MC_FROM_JAVA(AbstractPart, part)));
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForAttachment
+ (JNIEnv * env, jclass cls, jobject part)
+{
+ return (jstring) MC_TO_JAVA(callback->templateForAttachment(MC_FROM_JAVA(AbstractPart, part)));
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForMessage
+ (JNIEnv * env, jclass cls, jobject msg)
+{
+ return (jstring) MC_TO_JAVA(callback->templateForMessage(MC_FROM_JAVA(AbstractMessage, msg)));
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForEmbeddedMessage
+ (JNIEnv * env, jclass cls, jobject msgPart)
+{
+ return (jstring) MC_TO_JAVA(callback->templateForEmbeddedMessage(MC_FROM_JAVA(AbstractMessagePart, msgPart)));
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForEmbeddedMessageHeader
+ (JNIEnv * env, jclass cls, jobject header)
+{
+ return (jstring) MC_TO_JAVA(callback->templateForEmbeddedMessageHeader(MC_FROM_JAVA(MessageHeader, header)));
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForAttachmentSeparator
+ (JNIEnv * env, jclass cls)
+{
+ return (jstring) MC_TO_JAVA(callback->templateForAttachmentSeparator());
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_cleanHTML
+ (JNIEnv * env, jclass cls, jstring html)
+{
+ return (jstring) MC_TO_JAVA(callback->cleanHTMLForPart(MC_FROM_JAVA(String, html)));
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_filterHTMLForPart
+ (JNIEnv * env, jclass cls, jstring html)
+{
+ return (jstring) MC_TO_JAVA(callback->filterHTMLForPart(MC_FROM_JAVA(String, html)));
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_filterHTMLForMessage
+ (JNIEnv * env, jclass cls, jstring html)
+{
+ return (jstring) MC_TO_JAVA(callback->filterHTMLForMessage(MC_FROM_JAVA(String, html)));
+}
+
+INITIALIZE(Java_com_libmailcore_HTMLRendererTemplateCallbackUtils)
+{
+ callback = new HTMLRendererTemplateCallback();
+}
diff --git a/src/java/native/com_libmailcore_HTMLRendererTemplateCallbackUtils.h b/src/java/native/com_libmailcore_HTMLRendererTemplateCallbackUtils.h
new file mode 100644
index 00000000..4ff2321c
--- /dev/null
+++ b/src/java/native/com_libmailcore_HTMLRendererTemplateCallbackUtils.h
@@ -0,0 +1,125 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_HTMLRendererTemplateCallbackUtils */
+
+#ifndef _Included_com_libmailcore_HTMLRendererTemplateCallbackUtils
+#define _Included_com_libmailcore_HTMLRendererTemplateCallbackUtils
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_HTMLRendererTemplateCallbackUtils
+ * Method: canPreviewPart
+ * Signature: (Lcom/libmailcore/AbstractPart;)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_canPreviewPart
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_HTMLRendererTemplateCallbackUtils
+ * Method: shouldShowPart
+ * Signature: (Lcom/libmailcore/AbstractPart;)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_shouldShowPart
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_HTMLRendererTemplateCallbackUtils
+ * Method: templateValuesForHeader
+ * Signature: (Lcom/libmailcore/MessageHeader;)Ljava/util/Map;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateValuesForHeader
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_HTMLRendererTemplateCallbackUtils
+ * Method: templateValuesForPart
+ * Signature: (Lcom/libmailcore/AbstractPart;)Ljava/util/Map;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateValuesForPart
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_HTMLRendererTemplateCallbackUtils
+ * Method: templateForMainHeader
+ * Signature: (Lcom/libmailcore/MessageHeader;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForMainHeader
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_HTMLRendererTemplateCallbackUtils
+ * Method: templateForImage
+ * Signature: (Lcom/libmailcore/AbstractPart;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForImage
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_HTMLRendererTemplateCallbackUtils
+ * Method: templateForAttachment
+ * Signature: (Lcom/libmailcore/AbstractPart;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForAttachment
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_HTMLRendererTemplateCallbackUtils
+ * Method: templateForMessage
+ * Signature: (Lcom/libmailcore/AbstractMessage;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForMessage
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_HTMLRendererTemplateCallbackUtils
+ * Method: templateForEmbeddedMessage
+ * Signature: (Lcom/libmailcore/AbstractMessagePart;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForEmbeddedMessage
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_HTMLRendererTemplateCallbackUtils
+ * Method: templateForEmbeddedMessageHeader
+ * Signature: (Lcom/libmailcore/MessageHeader;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForEmbeddedMessageHeader
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_HTMLRendererTemplateCallbackUtils
+ * Method: templateForAttachmentSeparator
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForAttachmentSeparator
+ (JNIEnv *, jclass);
+
+/*
+ * Class: com_libmailcore_HTMLRendererTemplateCallbackUtils
+ * Method: cleanHTML
+ * Signature: (Ljava/lang/String;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_cleanHTML
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_HTMLRendererTemplateCallbackUtils
+ * Method: filterHTMLForPart
+ * Signature: (Ljava/lang/String;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_filterHTMLForPart
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_HTMLRendererTemplateCallbackUtils
+ * Method: filterHTMLForMessage
+ * Signature: (Ljava/lang/String;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_filterHTMLForMessage
+ (JNIEnv *, jclass, jstring);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPAppendMessageOperation.cpp b/src/java/native/com_libmailcore_IMAPAppendMessageOperation.cpp
new file mode 100644
index 00000000..c9b90874
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPAppendMessageOperation.cpp
@@ -0,0 +1,31 @@
+#include "com_libmailcore_IMAPAppendMessageOperation.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPAppendMessageOperation.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPAppendMessageOperation
+#define javaType nativeType
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPAppendMessageOperation_setDate
+ (JNIEnv * env, jobject obj, jobject date)
+{
+ MC_JAVA_NATIVE_INSTANCE->setDate(javaDateToTime(env, date));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPAppendMessageOperation_date
+ (JNIEnv * env, jobject obj)
+{
+ return timeToJavaDate(env, MC_JAVA_NATIVE_INSTANCE->date());
+}
+
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPAppendMessageOperation_createdUID
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET_SCALAR(jlong, createdUID);
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPAppendMessageOperation.h b/src/java/native/com_libmailcore_IMAPAppendMessageOperation.h
new file mode 100644
index 00000000..8a71fe39
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPAppendMessageOperation.h
@@ -0,0 +1,37 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPAppendMessageOperation */
+
+#ifndef _Included_com_libmailcore_IMAPAppendMessageOperation
+#define _Included_com_libmailcore_IMAPAppendMessageOperation
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPAppendMessageOperation
+ * Method: setDate
+ * Signature: (Ljava/util/Date;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPAppendMessageOperation_setDate
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPAppendMessageOperation
+ * Method: date
+ * Signature: ()Ljava/util/Date;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPAppendMessageOperation_date
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPAppendMessageOperation
+ * Method: createdUID
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPAppendMessageOperation_createdUID
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPCapability.h b/src/java/native/com_libmailcore_IMAPCapability.h
new file mode 100644
index 00000000..543f2d63
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPCapability.h
@@ -0,0 +1,83 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPCapability */
+
+#ifndef _Included_com_libmailcore_IMAPCapability
+#define _Included_com_libmailcore_IMAPCapability
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityACL
+#define com_libmailcore_IMAPCapability_IMAPCapabilityACL 0L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityBinary
+#define com_libmailcore_IMAPCapability_IMAPCapabilityBinary 1L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityCatenate
+#define com_libmailcore_IMAPCapability_IMAPCapabilityCatenate 2L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityChildren
+#define com_libmailcore_IMAPCapability_IMAPCapabilityChildren 3L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityCompressDeflate
+#define com_libmailcore_IMAPCapability_IMAPCapabilityCompressDeflate 4L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityCondstore
+#define com_libmailcore_IMAPCapability_IMAPCapabilityCondstore 5L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityEnable
+#define com_libmailcore_IMAPCapability_IMAPCapabilityEnable 6L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityIdle
+#define com_libmailcore_IMAPCapability_IMAPCapabilityIdle 7L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityId
+#define com_libmailcore_IMAPCapability_IMAPCapabilityId 8L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityLiteralPlus
+#define com_libmailcore_IMAPCapability_IMAPCapabilityLiteralPlus 9L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityMultiAppend
+#define com_libmailcore_IMAPCapability_IMAPCapabilityMultiAppend 10L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityNamespace
+#define com_libmailcore_IMAPCapability_IMAPCapabilityNamespace 11L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityQResync
+#define com_libmailcore_IMAPCapability_IMAPCapabilityQResync 12L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityQuota
+#define com_libmailcore_IMAPCapability_IMAPCapabilityQuota 13L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilitySort
+#define com_libmailcore_IMAPCapability_IMAPCapabilitySort 14L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityStartTLS
+#define com_libmailcore_IMAPCapability_IMAPCapabilityStartTLS 15L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityThreadOrderedSubject
+#define com_libmailcore_IMAPCapability_IMAPCapabilityThreadOrderedSubject 16L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityThreadReferences
+#define com_libmailcore_IMAPCapability_IMAPCapabilityThreadReferences 17L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityUIDPlus
+#define com_libmailcore_IMAPCapability_IMAPCapabilityUIDPlus 18L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityUnselect
+#define com_libmailcore_IMAPCapability_IMAPCapabilityUnselect 19L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityXList
+#define com_libmailcore_IMAPCapability_IMAPCapabilityXList 20L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityAuthAnonymous
+#define com_libmailcore_IMAPCapability_IMAPCapabilityAuthAnonymous 21L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityAuthCRAMMD5
+#define com_libmailcore_IMAPCapability_IMAPCapabilityAuthCRAMMD5 22L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityAuthDigestMD5
+#define com_libmailcore_IMAPCapability_IMAPCapabilityAuthDigestMD5 23L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityAuthExternal
+#define com_libmailcore_IMAPCapability_IMAPCapabilityAuthExternal 24L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityAuthGSSAPI
+#define com_libmailcore_IMAPCapability_IMAPCapabilityAuthGSSAPI 25L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityAuthKerberosV4
+#define com_libmailcore_IMAPCapability_IMAPCapabilityAuthKerberosV4 26L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityAuthLogin
+#define com_libmailcore_IMAPCapability_IMAPCapabilityAuthLogin 27L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityAuthNTLM
+#define com_libmailcore_IMAPCapability_IMAPCapabilityAuthNTLM 28L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityAuthOTP
+#define com_libmailcore_IMAPCapability_IMAPCapabilityAuthOTP 29L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityAuthPlain
+#define com_libmailcore_IMAPCapability_IMAPCapabilityAuthPlain 30L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityAuthSKey
+#define com_libmailcore_IMAPCapability_IMAPCapabilityAuthSKey 31L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityAuthSRP
+#define com_libmailcore_IMAPCapability_IMAPCapabilityAuthSRP 32L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityXOAuth2
+#define com_libmailcore_IMAPCapability_IMAPCapabilityXOAuth2 33L
+#undef com_libmailcore_IMAPCapability_IMAPCapabilityGmail
+#define com_libmailcore_IMAPCapability_IMAPCapabilityGmail 34L
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPCapabilityOperation.cpp b/src/java/native/com_libmailcore_IMAPCapabilityOperation.cpp
new file mode 100644
index 00000000..929ad9c2
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPCapabilityOperation.cpp
@@ -0,0 +1,19 @@
+#include "com_libmailcore_IMAPCapabilityOperation.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPCapabilityOperation.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPCapabilityOperation
+#define javaType nativeType
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPCapabilityOperation_capabilities
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(capabilities);
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPCapabilityOperation.h b/src/java/native/com_libmailcore_IMAPCapabilityOperation.h
new file mode 100644
index 00000000..3e510561
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPCapabilityOperation.h
@@ -0,0 +1,21 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPCapabilityOperation */
+
+#ifndef _Included_com_libmailcore_IMAPCapabilityOperation
+#define _Included_com_libmailcore_IMAPCapabilityOperation
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPCapabilityOperation
+ * Method: capabilities
+ * Signature: ()Lcom/libmailcore/IndexSet;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPCapabilityOperation_capabilities
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPCopyMessagesOperation.cpp b/src/java/native/com_libmailcore_IMAPCopyMessagesOperation.cpp
new file mode 100644
index 00000000..558c7836
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPCopyMessagesOperation.cpp
@@ -0,0 +1,19 @@
+#include "com_libmailcore_IMAPCopyMessagesOperation.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPCopyMessagesOperation.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPCopyMessagesOperation
+#define javaType nativeType
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPCopyMessagesOperation_uidMapping
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(uidMapping);
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPCopyMessagesOperation.h b/src/java/native/com_libmailcore_IMAPCopyMessagesOperation.h
new file mode 100644
index 00000000..46ff67de
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPCopyMessagesOperation.h
@@ -0,0 +1,21 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPCopyMessagesOperation */
+
+#ifndef _Included_com_libmailcore_IMAPCopyMessagesOperation
+#define _Included_com_libmailcore_IMAPCopyMessagesOperation
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPCopyMessagesOperation
+ * Method: uidMapping
+ * Signature: ()Ljava/util/Map;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPCopyMessagesOperation_uidMapping
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPFetchContentOperation.cpp b/src/java/native/com_libmailcore_IMAPFetchContentOperation.cpp
new file mode 100644
index 00000000..1e0cf54e
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFetchContentOperation.cpp
@@ -0,0 +1,42 @@
+#include "com_libmailcore_IMAPFetchContentOperation.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPFetchContentOperation.h"
+#include "JavaIMAPOperationCallback.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPFetchContentOperation
+#define javaType nativeType
+
+JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_IMAPFetchContentOperation_data
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET_DATA(data);
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchContentOperation_finalizeNative
+ (JNIEnv * env, jobject obj)
+{
+ JavaIMAPOperationCallback * callback = (JavaIMAPOperationCallback *) MC_JAVA_NATIVE_INSTANCE->imapCallback();
+ MC_SAFE_RELEASE(callback);
+ MC_JAVA_NATIVE_INSTANCE->setImapCallback(NULL);
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchContentOperation_setupNativeOperationProgressListener
+ (JNIEnv * env, jobject obj)
+{
+ JavaIMAPOperationCallback * callback = (JavaIMAPOperationCallback *) MC_JAVA_NATIVE_INSTANCE->imapCallback();
+ MC_SAFE_RELEASE(callback);
+ MC_JAVA_NATIVE_INSTANCE->setImapCallback(NULL);
+
+ jobject javaListener = getObjectField(env, obj, "listener");
+ if (javaListener != NULL) {
+ callback = new JavaIMAPOperationCallback(env, javaListener);
+ MC_JAVA_NATIVE_INSTANCE->setImapCallback(callback);
+ }
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPFetchContentOperation.h b/src/java/native/com_libmailcore_IMAPFetchContentOperation.h
new file mode 100644
index 00000000..5262050a
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFetchContentOperation.h
@@ -0,0 +1,37 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPFetchContentOperation */
+
+#ifndef _Included_com_libmailcore_IMAPFetchContentOperation
+#define _Included_com_libmailcore_IMAPFetchContentOperation
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPFetchContentOperation
+ * Method: data
+ * Signature: ()[B
+ */
+JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_IMAPFetchContentOperation_data
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFetchContentOperation
+ * Method: finalizeNative
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchContentOperation_finalizeNative
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFetchContentOperation
+ * Method: setupNativeOperationProgressListener
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchContentOperation_setupNativeOperationProgressListener
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPFetchFoldersOperation.cpp b/src/java/native/com_libmailcore_IMAPFetchFoldersOperation.cpp
new file mode 100644
index 00000000..50f08e2d
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFetchFoldersOperation.cpp
@@ -0,0 +1,19 @@
+#include "com_libmailcore_IMAPFetchFoldersOperation.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPFetchFoldersOperation.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPFetchFoldersOperation
+#define javaType nativeType
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFetchFoldersOperation_folders
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(folders);
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPFetchFoldersOperation.h b/src/java/native/com_libmailcore_IMAPFetchFoldersOperation.h
new file mode 100644
index 00000000..22b72f98
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFetchFoldersOperation.h
@@ -0,0 +1,21 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPFetchFoldersOperation */
+
+#ifndef _Included_com_libmailcore_IMAPFetchFoldersOperation
+#define _Included_com_libmailcore_IMAPFetchFoldersOperation
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPFetchFoldersOperation
+ * Method: folders
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFetchFoldersOperation_folders
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPFetchMessagesOperation.cpp b/src/java/native/com_libmailcore_IMAPFetchMessagesOperation.cpp
new file mode 100644
index 00000000..735459a4
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFetchMessagesOperation.cpp
@@ -0,0 +1,48 @@
+#include "com_libmailcore_IMAPFetchMessagesOperation.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPFetchMessagesOperation.h"
+#include "JavaIMAPOperationCallback.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPFetchMessagesOperation
+#define javaType nativeType
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFetchMessagesOperation_messages
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(messages);
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFetchMessagesOperation_vanishedMessages
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(vanishedMessages);
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchMessagesOperation_finalizeNative
+ (JNIEnv * env, jobject obj)
+{
+ JavaIMAPOperationCallback * callback = (JavaIMAPOperationCallback *) MC_JAVA_NATIVE_INSTANCE->imapCallback();
+ MC_SAFE_RELEASE(callback);
+ MC_JAVA_NATIVE_INSTANCE->setImapCallback(NULL);
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchMessagesOperation_setupNativeOperationProgressListener
+ (JNIEnv * env, jobject obj)
+{
+ JavaIMAPOperationCallback * callback = (JavaIMAPOperationCallback *) MC_JAVA_NATIVE_INSTANCE->imapCallback();
+ MC_SAFE_RELEASE(callback);
+ MC_JAVA_NATIVE_INSTANCE->setImapCallback(NULL);
+
+ jobject javaListener = getObjectField(env, obj, "listener");
+ if (javaListener != NULL) {
+ callback = new JavaIMAPOperationCallback(env, javaListener);
+ MC_JAVA_NATIVE_INSTANCE->setImapCallback(callback);
+ }
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPFetchMessagesOperation.h b/src/java/native/com_libmailcore_IMAPFetchMessagesOperation.h
new file mode 100644
index 00000000..d13cf269
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFetchMessagesOperation.h
@@ -0,0 +1,45 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPFetchMessagesOperation */
+
+#ifndef _Included_com_libmailcore_IMAPFetchMessagesOperation
+#define _Included_com_libmailcore_IMAPFetchMessagesOperation
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPFetchMessagesOperation
+ * Method: messages
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFetchMessagesOperation_messages
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFetchMessagesOperation
+ * Method: vanishedMessages
+ * Signature: ()Lcom/libmailcore/IndexSet;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFetchMessagesOperation_vanishedMessages
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFetchMessagesOperation
+ * Method: finalizeNative
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchMessagesOperation_finalizeNative
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFetchMessagesOperation
+ * Method: setupNativeOperationProgressListener
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchMessagesOperation_setupNativeOperationProgressListener
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPFetchNamespaceOperation.cpp b/src/java/native/com_libmailcore_IMAPFetchNamespaceOperation.cpp
new file mode 100644
index 00000000..c2ad0091
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFetchNamespaceOperation.cpp
@@ -0,0 +1,19 @@
+#include "com_libmailcore_IMAPFetchNamespaceOperation.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPFetchNamespaceOperation.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPFetchNamespaceOperation
+#define javaType nativeType
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFetchNamespaceOperation_namespaces
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(namespaces);
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPFetchNamespaceOperation.h b/src/java/native/com_libmailcore_IMAPFetchNamespaceOperation.h
new file mode 100644
index 00000000..bd6350e5
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFetchNamespaceOperation.h
@@ -0,0 +1,21 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPFetchNamespaceOperation */
+
+#ifndef _Included_com_libmailcore_IMAPFetchNamespaceOperation
+#define _Included_com_libmailcore_IMAPFetchNamespaceOperation
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPFetchNamespaceOperation
+ * Method: namespaces
+ * Signature: ()Ljava/util/Map;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFetchNamespaceOperation_namespaces
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPFetchParsedContentOperation.cpp b/src/java/native/com_libmailcore_IMAPFetchParsedContentOperation.cpp
new file mode 100644
index 00000000..662c2ca5
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFetchParsedContentOperation.cpp
@@ -0,0 +1,42 @@
+#include "com_libmailcore_IMAPFetchParsedContentOperation.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPFetchParsedContentOperation.h"
+#include "JavaIMAPOperationCallback.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPFetchParsedContentOperation
+#define javaType nativeType
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFetchParsedContentOperation_parser
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(parser);
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchParsedContentOperation_finalizeNative
+ (JNIEnv * env, jobject obj)
+{
+ JavaIMAPOperationCallback * callback = (JavaIMAPOperationCallback *) MC_JAVA_NATIVE_INSTANCE->imapCallback();
+ MC_SAFE_RELEASE(callback);
+ MC_JAVA_NATIVE_INSTANCE->setImapCallback(NULL);
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchParsedContentOperation_setupNativeOperationProgressListener
+ (JNIEnv * env, jobject obj)
+{
+ JavaIMAPOperationCallback * callback = (JavaIMAPOperationCallback *) MC_JAVA_NATIVE_INSTANCE->imapCallback();
+ MC_SAFE_RELEASE(callback);
+ MC_JAVA_NATIVE_INSTANCE->setImapCallback(NULL);
+
+ jobject javaListener = getObjectField(env, obj, "listener");
+ if (javaListener != NULL) {
+ callback = new JavaIMAPOperationCallback(env, javaListener);
+ MC_JAVA_NATIVE_INSTANCE->setImapCallback(callback);
+ }
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPFetchParsedContentOperation.h b/src/java/native/com_libmailcore_IMAPFetchParsedContentOperation.h
new file mode 100644
index 00000000..d371da78
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFetchParsedContentOperation.h
@@ -0,0 +1,37 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPFetchParsedContentOperation */
+
+#ifndef _Included_com_libmailcore_IMAPFetchParsedContentOperation
+#define _Included_com_libmailcore_IMAPFetchParsedContentOperation
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPFetchParsedContentOperation
+ * Method: parser
+ * Signature: ()Lcom/libmailcore/MessageParser;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFetchParsedContentOperation_parser
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFetchParsedContentOperation
+ * Method: finalizeNative
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchParsedContentOperation_finalizeNative
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFetchParsedContentOperation
+ * Method: setupNativeOperationProgressListener
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchParsedContentOperation_setupNativeOperationProgressListener
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPFolder.cpp b/src/java/native/com_libmailcore_IMAPFolder.cpp
new file mode 100644
index 00000000..c14d2d7d
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFolder.cpp
@@ -0,0 +1,17 @@
+#include "com_libmailcore_IMAPFolder.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPFolder.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPFolder
+#define javaType nativeType
+
+MC_JAVA_SYNTHESIZE_STRING(setPath, path)
+MC_JAVA_SYNTHESIZE_SCALAR(jchar, char, setDelimiter, delimiter)
+MC_JAVA_SYNTHESIZE_SCALAR(jint, IMAPFolderFlag, setFlags, flags)
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPFolder.h b/src/java/native/com_libmailcore_IMAPFolder.h
new file mode 100644
index 00000000..e4475662
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFolder.h
@@ -0,0 +1,69 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPFolder */
+
+#ifndef _Included_com_libmailcore_IMAPFolder
+#define _Included_com_libmailcore_IMAPFolder
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPFolder
+ * Method: setPath
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFolder_setPath
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPFolder
+ * Method: path
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPFolder_path
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFolder
+ * Method: setDelimiter
+ * Signature: (C)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFolder_setDelimiter
+ (JNIEnv *, jobject, jchar);
+
+/*
+ * Class: com_libmailcore_IMAPFolder
+ * Method: delimiter
+ * Signature: ()C
+ */
+JNIEXPORT jchar JNICALL Java_com_libmailcore_IMAPFolder_delimiter
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFolder
+ * Method: setFlags
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFolder_setFlags
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_libmailcore_IMAPFolder
+ * Method: flags
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_libmailcore_IMAPFolder_flags
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFolder
+ * Method: setupNative
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFolder_setupNative
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPFolderFlags.h b/src/java/native/com_libmailcore_IMAPFolderFlags.h
new file mode 100644
index 00000000..2e7c0baf
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFolderFlags.h
@@ -0,0 +1,49 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPFolderFlags */
+
+#ifndef _Included_com_libmailcore_IMAPFolderFlags
+#define _Included_com_libmailcore_IMAPFolderFlags
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef com_libmailcore_IMAPFolderFlags_IMAPFolderFlagNone
+#define com_libmailcore_IMAPFolderFlags_IMAPFolderFlagNone 0L
+#undef com_libmailcore_IMAPFolderFlags_IMAPFolderFlagMarked
+#define com_libmailcore_IMAPFolderFlags_IMAPFolderFlagMarked 1L
+#undef com_libmailcore_IMAPFolderFlags_IMAPFolderFlagUnmarked
+#define com_libmailcore_IMAPFolderFlags_IMAPFolderFlagUnmarked 2L
+#undef com_libmailcore_IMAPFolderFlags_IMAPFolderFlagNoSelect
+#define com_libmailcore_IMAPFolderFlags_IMAPFolderFlagNoSelect 4L
+#undef com_libmailcore_IMAPFolderFlags_IMAPFolderFlagNoInferiors
+#define com_libmailcore_IMAPFolderFlags_IMAPFolderFlagNoInferiors 8L
+#undef com_libmailcore_IMAPFolderFlags_IMAPFolderFlagInbox
+#define com_libmailcore_IMAPFolderFlags_IMAPFolderFlagInbox 16L
+#undef com_libmailcore_IMAPFolderFlags_IMAPFolderFlagSentMail
+#define com_libmailcore_IMAPFolderFlags_IMAPFolderFlagSentMail 32L
+#undef com_libmailcore_IMAPFolderFlags_IMAPFolderFlagStarred
+#define com_libmailcore_IMAPFolderFlags_IMAPFolderFlagStarred 64L
+#undef com_libmailcore_IMAPFolderFlags_IMAPFolderFlagAllMail
+#define com_libmailcore_IMAPFolderFlags_IMAPFolderFlagAllMail 128L
+#undef com_libmailcore_IMAPFolderFlags_IMAPFolderFlagTrash
+#define com_libmailcore_IMAPFolderFlags_IMAPFolderFlagTrash 256L
+#undef com_libmailcore_IMAPFolderFlags_IMAPFolderFlagDrafts
+#define com_libmailcore_IMAPFolderFlags_IMAPFolderFlagDrafts 512L
+#undef com_libmailcore_IMAPFolderFlags_IMAPFolderFlagSpam
+#define com_libmailcore_IMAPFolderFlags_IMAPFolderFlagSpam 1024L
+#undef com_libmailcore_IMAPFolderFlags_IMAPFolderFlagImportant
+#define com_libmailcore_IMAPFolderFlags_IMAPFolderFlagImportant 2048L
+#undef com_libmailcore_IMAPFolderFlags_IMAPFolderFlagArchive
+#define com_libmailcore_IMAPFolderFlags_IMAPFolderFlagArchive 4096L
+#undef com_libmailcore_IMAPFolderFlags_IMAPFolderFlagAll
+#define com_libmailcore_IMAPFolderFlags_IMAPFolderFlagAll 128L
+#undef com_libmailcore_IMAPFolderFlags_IMAPFolderFlagJunk
+#define com_libmailcore_IMAPFolderFlags_IMAPFolderFlagJunk 1024L
+#undef com_libmailcore_IMAPFolderFlags_IMAPFolderFlagFlagged
+#define com_libmailcore_IMAPFolderFlags_IMAPFolderFlagFlagged 64L
+#undef com_libmailcore_IMAPFolderFlags_IMAPFolderFlagFolderTypeMask
+#define com_libmailcore_IMAPFolderFlags_IMAPFolderFlagFolderTypeMask 8176L
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPFolderInfo.cpp b/src/java/native/com_libmailcore_IMAPFolderInfo.cpp
new file mode 100644
index 00000000..ad2fc26b
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFolderInfo.cpp
@@ -0,0 +1,20 @@
+#include "com_libmailcore_IMAPFolderInfo.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPFolderInfo.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPFolderInfo
+#define javaType nativeType
+
+MC_JAVA_SYNTHESIZE_SCALAR(jlong, uint32_t, setUidNext, uidNext)
+MC_JAVA_SYNTHESIZE_SCALAR(jlong, uint32_t, setUidValidity, uidValidity)
+MC_JAVA_SYNTHESIZE_SCALAR(jlong, uint64_t, setModSequenceValue, modSequenceValue)
+MC_JAVA_SYNTHESIZE_SCALAR(jint, int, setMessageCount, messageCount)
+MC_JAVA_SYNTHESIZE_SCALAR(jlong, uint32_t, setFirstUnseenUid, firstUnseenUid)
+MC_JAVA_SYNTHESIZE_SCALAR(jboolean, bool, setAllowsNewPermanentFlags, allowsNewPermanentFlags)
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPFolderInfo.h b/src/java/native/com_libmailcore_IMAPFolderInfo.h
new file mode 100644
index 00000000..ae9d52a7
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFolderInfo.h
@@ -0,0 +1,117 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPFolderInfo */
+
+#ifndef _Included_com_libmailcore_IMAPFolderInfo
+#define _Included_com_libmailcore_IMAPFolderInfo
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPFolderInfo
+ * Method: uidNext
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPFolderInfo_uidNext
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFolderInfo
+ * Method: setUidNext
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFolderInfo_setUidNext
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPFolderInfo
+ * Method: uidValidity
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPFolderInfo_uidValidity
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFolderInfo
+ * Method: setUidValidity
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFolderInfo_setUidValidity
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPFolderInfo
+ * Method: modSequenceValue
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPFolderInfo_modSequenceValue
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFolderInfo
+ * Method: setModSequenceValue
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFolderInfo_setModSequenceValue
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPFolderInfo
+ * Method: messageCount
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_libmailcore_IMAPFolderInfo_messageCount
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFolderInfo
+ * Method: setMessageCount
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFolderInfo_setMessageCount
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_libmailcore_IMAPFolderInfo
+ * Method: firstUnseenUid
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPFolderInfo_firstUnseenUid
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFolderInfo
+ * Method: setFirstUnseenUid
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFolderInfo_setFirstUnseenUid
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPFolderInfo
+ * Method: allowsNewPermanentFlags
+ * Signature: ()Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_IMAPFolderInfo_allowsNewPermanentFlags
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFolderInfo
+ * Method: setAllowsNewPermanentFlags
+ * Signature: (Z)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFolderInfo_setAllowsNewPermanentFlags
+ (JNIEnv *, jobject, jboolean);
+
+/*
+ * Class: com_libmailcore_IMAPFolderInfo
+ * Method: setupNative
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFolderInfo_setupNative
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPFolderInfoOperation.cpp b/src/java/native/com_libmailcore_IMAPFolderInfoOperation.cpp
new file mode 100644
index 00000000..721bdb43
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFolderInfoOperation.cpp
@@ -0,0 +1,19 @@
+#include "com_libmailcore_IMAPFolderInfoOperation.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPFolderInfoOperation.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPFolderInfoOperation
+#define javaType nativeType
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFolderInfoOperation_info
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(info);
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPFolderInfoOperation.h b/src/java/native/com_libmailcore_IMAPFolderInfoOperation.h
new file mode 100644
index 00000000..19e432c0
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFolderInfoOperation.h
@@ -0,0 +1,21 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPFolderInfoOperation */
+
+#ifndef _Included_com_libmailcore_IMAPFolderInfoOperation
+#define _Included_com_libmailcore_IMAPFolderInfoOperation
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPFolderInfoOperation
+ * Method: info
+ * Signature: ()Lcom/libmailcore/IMAPFolderInfo;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFolderInfoOperation_info
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPFolderStatus.cpp b/src/java/native/com_libmailcore_IMAPFolderStatus.cpp
new file mode 100644
index 00000000..d7267063
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFolderStatus.cpp
@@ -0,0 +1,20 @@
+#include "com_libmailcore_IMAPFolderStatus.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPFolderStatus.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPFolderStatus
+#define javaType nativeType
+
+MC_JAVA_SYNTHESIZE_SCALAR(jlong, uint32_t, setUnseenCount, unseenCount)
+MC_JAVA_SYNTHESIZE_SCALAR(jlong, uint32_t, setMessageCount, messageCount)
+MC_JAVA_SYNTHESIZE_SCALAR(jlong, uint32_t, setRecentCount, recentCount)
+MC_JAVA_SYNTHESIZE_SCALAR(jlong, uint32_t, setUidNext, uidNext)
+MC_JAVA_SYNTHESIZE_SCALAR(jlong, uint32_t, setUidValidity, uidValidity)
+MC_JAVA_SYNTHESIZE_SCALAR(jlong, uint64_t, setHighestModSeqValue, highestModSeqValue)
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPFolderStatus.h b/src/java/native/com_libmailcore_IMAPFolderStatus.h
new file mode 100644
index 00000000..72c70c01
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFolderStatus.h
@@ -0,0 +1,117 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPFolderStatus */
+
+#ifndef _Included_com_libmailcore_IMAPFolderStatus
+#define _Included_com_libmailcore_IMAPFolderStatus
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPFolderStatus
+ * Method: setUnseenCount
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFolderStatus_setUnseenCount
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPFolderStatus
+ * Method: unseenCount
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPFolderStatus_unseenCount
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFolderStatus
+ * Method: setMessageCount
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFolderStatus_setMessageCount
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPFolderStatus
+ * Method: messageCount
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPFolderStatus_messageCount
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFolderStatus
+ * Method: setRecentCount
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFolderStatus_setRecentCount
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPFolderStatus
+ * Method: recentCount
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPFolderStatus_recentCount
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFolderStatus
+ * Method: setUidNext
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFolderStatus_setUidNext
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPFolderStatus
+ * Method: uidNext
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPFolderStatus_uidNext
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFolderStatus
+ * Method: setUidValidity
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFolderStatus_setUidValidity
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPFolderStatus
+ * Method: uidValidity
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPFolderStatus_uidValidity
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFolderStatus
+ * Method: setHighestModSeqValue
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFolderStatus_setHighestModSeqValue
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPFolderStatus
+ * Method: highestModSeqValue
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPFolderStatus_highestModSeqValue
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPFolderStatus
+ * Method: setupNative
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFolderStatus_setupNative
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPFolderStatusOperation.cpp b/src/java/native/com_libmailcore_IMAPFolderStatusOperation.cpp
new file mode 100644
index 00000000..6e9128e8
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFolderStatusOperation.cpp
@@ -0,0 +1,19 @@
+#include "com_libmailcore_IMAPFolderStatusOperation.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPFolderStatusOperation.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPFolderStatusOperation
+#define javaType nativeType
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFolderStatusOperation_status
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(status);
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPFolderStatusOperation.h b/src/java/native/com_libmailcore_IMAPFolderStatusOperation.h
new file mode 100644
index 00000000..84641e69
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPFolderStatusOperation.h
@@ -0,0 +1,21 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPFolderStatusOperation */
+
+#ifndef _Included_com_libmailcore_IMAPFolderStatusOperation
+#define _Included_com_libmailcore_IMAPFolderStatusOperation
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPFolderStatusOperation
+ * Method: status
+ * Signature: ()Lcom/libmailcore/IMAPFolderStatus;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFolderStatusOperation_status
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPIdentity.cpp b/src/java/native/com_libmailcore_IMAPIdentity.cpp
new file mode 100644
index 00000000..7f544b6f
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPIdentity.cpp
@@ -0,0 +1,41 @@
+#include "com_libmailcore_IMAPIdentity.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPIdentity.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPIdentity
+#define javaType nativeType
+
+MC_JAVA_SYNTHESIZE_STRING(setVendor, vendor)
+MC_JAVA_SYNTHESIZE_STRING(setName, name)
+MC_JAVA_SYNTHESIZE_STRING(setVersion, version)
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPIdentity_removeAllInfos
+ (JNIEnv * env, jobject obj)
+{
+ MC_JAVA_NATIVE_INSTANCE->removeAllInfos();
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPIdentity_allInfoKeys
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(allInfoKeys);
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPIdentity_infoForKey
+ (JNIEnv * env, jobject obj, jstring key)
+{
+ return (jstring) MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->infoForKey(MC_FROM_JAVA(String, key)));
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPIdentity_setInfoForKey
+ (JNIEnv * env, jobject obj, jstring key, jstring value)
+{
+ MC_JAVA_NATIVE_INSTANCE->setInfoForKey(MC_FROM_JAVA(String, key), MC_FROM_JAVA(String, value));
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPIdentity.h b/src/java/native/com_libmailcore_IMAPIdentity.h
new file mode 100644
index 00000000..e4ad1108
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPIdentity.h
@@ -0,0 +1,101 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPIdentity */
+
+#ifndef _Included_com_libmailcore_IMAPIdentity
+#define _Included_com_libmailcore_IMAPIdentity
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPIdentity
+ * Method: setVendor
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPIdentity_setVendor
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPIdentity
+ * Method: vendor
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPIdentity_vendor
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPIdentity
+ * Method: setName
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPIdentity_setName
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPIdentity
+ * Method: name
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPIdentity_name
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPIdentity
+ * Method: setVersion
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPIdentity_setVersion
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPIdentity
+ * Method: version
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPIdentity_version
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPIdentity
+ * Method: removeAllInfos
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPIdentity_removeAllInfos
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPIdentity
+ * Method: allInfoKeys
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPIdentity_allInfoKeys
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPIdentity
+ * Method: infoForKey
+ * Signature: (Ljava/lang/String;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPIdentity_infoForKey
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPIdentity
+ * Method: setInfoForKey
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPIdentity_setInfoForKey
+ (JNIEnv *, jobject, jstring, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPIdentity
+ * Method: setupNative
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPIdentity_setupNative
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPIdentityOperation.cpp b/src/java/native/com_libmailcore_IMAPIdentityOperation.cpp
new file mode 100644
index 00000000..6b033808
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPIdentityOperation.cpp
@@ -0,0 +1,19 @@
+#include "com_libmailcore_IMAPIdentityOperation.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPIdentityOperation.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPIdentityOperation
+#define javaType nativeType
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPIdentityOperation_serverIdentity
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(serverIdentity);
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPIdentityOperation.h b/src/java/native/com_libmailcore_IMAPIdentityOperation.h
new file mode 100644
index 00000000..19dafc2f
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPIdentityOperation.h
@@ -0,0 +1,21 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPIdentityOperation */
+
+#ifndef _Included_com_libmailcore_IMAPIdentityOperation
+#define _Included_com_libmailcore_IMAPIdentityOperation
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPIdentityOperation
+ * Method: serverIdentity
+ * Signature: ()Lcom/libmailcore/IMAPIdentity;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPIdentityOperation_serverIdentity
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPIdleOperation.cpp b/src/java/native/com_libmailcore_IMAPIdleOperation.cpp
new file mode 100644
index 00000000..0440ae52
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPIdleOperation.cpp
@@ -0,0 +1,19 @@
+#include "com_libmailcore_IMAPIdleOperation.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPIdleOperation.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPIdleOperation
+#define javaType nativeType
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPIdleOperation_interruptIdle
+ (JNIEnv * env, jobject obj)
+{
+ MC_JAVA_NATIVE_INSTANCE->interruptIdle();
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPIdleOperation.h b/src/java/native/com_libmailcore_IMAPIdleOperation.h
new file mode 100644
index 00000000..4db3db6e
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPIdleOperation.h
@@ -0,0 +1,21 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPIdleOperation */
+
+#ifndef _Included_com_libmailcore_IMAPIdleOperation
+#define _Included_com_libmailcore_IMAPIdleOperation
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPIdleOperation
+ * Method: interruptIdle
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPIdleOperation_interruptIdle
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPMessage.cpp b/src/java/native/com_libmailcore_IMAPMessage.cpp
new file mode 100644
index 00000000..0a47efd6
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPMessage.cpp
@@ -0,0 +1,66 @@
+#include "com_libmailcore_IMAPMessage.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPMessage.h"
+#include "JavaHTMLRendererTemplateCallback.h"
+#include "JavaHTMLRendererIMAPCallback.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPMessage
+#define javaType nativeType
+
+MC_JAVA_SYNTHESIZE_SCALAR(jlong, uint32_t, setSequenceNumber, sequenceNumber);
+MC_JAVA_SYNTHESIZE_SCALAR(jlong, uint32_t, setUid, uid);
+MC_JAVA_SYNTHESIZE_SCALAR(jlong, uint32_t, setSize, size);
+MC_JAVA_SYNTHESIZE_SCALAR(jint, MessageFlag, setFlags, flags);
+MC_JAVA_SYNTHESIZE_SCALAR(jint, MessageFlag, setOriginalFlags, originalFlags);
+MC_JAVA_SYNTHESIZE(Array, setCustomFlags, customFlags);
+MC_JAVA_SYNTHESIZE_SCALAR(jlong, uint64_t, setModSeqValue, modSeqValue);
+MC_JAVA_SYNTHESIZE(AbstractPart, setMainPart, mainPart);
+MC_JAVA_SYNTHESIZE(Array, setGmailLabels, gmailLabels);
+MC_JAVA_SYNTHESIZE_SCALAR(jlong, uint64_t, setGmailMessageID, gmailMessageID);
+MC_JAVA_SYNTHESIZE_SCALAR(jlong, uint64_t, setGmailThreadID, gmailThreadID);
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPMessage_partForPartID
+ (JNIEnv * env, jobject obj, jstring partID)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForPartID(MC_FROM_JAVA(String, partID)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPMessage_partForContentID
+ (JNIEnv * env, jobject obj, jstring contentID)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForContentID(MC_FROM_JAVA(String, contentID)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPMessage_partForUniqueID
+ (JNIEnv * env, jobject obj, jstring uniqueID)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForUniqueID(MC_FROM_JAVA(String, uniqueID)));
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPMessage_htmlRendering
+ (JNIEnv * env, jobject obj, jstring folder, jobject dataCallback, jobject htmlTemplateCallback)
+{
+ JavaHTMLRendererTemplateCallback * templateCallback = NULL;
+ if (htmlTemplateCallback != NULL) {
+ templateCallback = new JavaHTMLRendererTemplateCallback(env, htmlTemplateCallback);
+ }
+ JavaHTMLRendererIMAPCallback * imapCallback = NULL;
+ if (dataCallback != NULL) {
+ imapCallback = new JavaHTMLRendererIMAPCallback(env, dataCallback);
+ }
+ jstring result = (jstring) MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->htmlRendering(MC_FROM_JAVA(String, folder), imapCallback, templateCallback));
+ if (imapCallback != NULL) {
+ delete imapCallback;
+ }
+ if (templateCallback != NULL) {
+ delete templateCallback;
+ }
+ return result;
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPMessage.h b/src/java/native/com_libmailcore_IMAPMessage.h
new file mode 100644
index 00000000..aaf287c8
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPMessage.h
@@ -0,0 +1,221 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPMessage */
+
+#ifndef _Included_com_libmailcore_IMAPMessage
+#define _Included_com_libmailcore_IMAPMessage
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: sequenceNumber
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPMessage_sequenceNumber
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: setSequenceNumber
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPMessage_setSequenceNumber
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: uid
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPMessage_uid
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: setUid
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPMessage_setUid
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: size
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPMessage_size
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: setSize
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPMessage_setSize
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: setFlags
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPMessage_setFlags
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: flags
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_libmailcore_IMAPMessage_flags
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: setOriginalFlags
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPMessage_setOriginalFlags
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: originalFlags
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_libmailcore_IMAPMessage_originalFlags
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: setCustomFlags
+ * Signature: (Ljava/util/List;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPMessage_setCustomFlags
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: customFlags
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPMessage_customFlags
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: modSeqValue
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPMessage_modSeqValue
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: setModSeqValue
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPMessage_setModSeqValue
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: setMainPart
+ * Signature: (Lcom/libmailcore/AbstractPart;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPMessage_setMainPart
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: mainPart
+ * Signature: ()Lcom/libmailcore/AbstractPart;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPMessage_mainPart
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: setGmailLabels
+ * Signature: (Ljava/util/List;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPMessage_setGmailLabels
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: gmailLabels
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPMessage_gmailLabels
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: setGmailMessageID
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPMessage_setGmailMessageID
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: gmailMessageID
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPMessage_gmailMessageID
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: setGmailThreadID
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPMessage_setGmailThreadID
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: gmailThreadID
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPMessage_gmailThreadID
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: partForPartID
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/AbstractPart;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPMessage_partForPartID
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: partForContentID
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/AbstractPart;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPMessage_partForContentID
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: partForUniqueID
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/AbstractPart;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPMessage_partForUniqueID
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPMessage
+ * Method: htmlRendering
+ * Signature: (Ljava/lang/String;Lcom/libmailcore/HTMLRendererIMAPCallback;Lcom/libmailcore/HTMLRendererTemplateCallback;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPMessage_htmlRendering
+ (JNIEnv *, jobject, jstring, jobject, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPMessagePart.cpp b/src/java/native/com_libmailcore_IMAPMessagePart.cpp
new file mode 100644
index 00000000..5ca19ab8
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPMessagePart.cpp
@@ -0,0 +1,15 @@
+#include "com_libmailcore_IMAPMessagePart.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPMessagePart.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPMessagePart
+#define javaType nativeType
+
+MC_JAVA_SYNTHESIZE_STRING(setPartID, partID)
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPMessagePart.h b/src/java/native/com_libmailcore_IMAPMessagePart.h
new file mode 100644
index 00000000..31675977
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPMessagePart.h
@@ -0,0 +1,29 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPMessagePart */
+
+#ifndef _Included_com_libmailcore_IMAPMessagePart
+#define _Included_com_libmailcore_IMAPMessagePart
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPMessagePart
+ * Method: setPartID
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPMessagePart_setPartID
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPMessagePart
+ * Method: partID
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPMessagePart_partID
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPMessageRenderingOperation.cpp b/src/java/native/com_libmailcore_IMAPMessageRenderingOperation.cpp
new file mode 100644
index 00000000..106996a1
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPMessageRenderingOperation.cpp
@@ -0,0 +1,19 @@
+#include "com_libmailcore_IMAPMessageRenderingOperation.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPMessageRenderingOperation.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPMessageRenderingOperation
+#define javaType nativeType
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPMessageRenderingOperation_result
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET_STRING(result);
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPMessageRenderingOperation.h b/src/java/native/com_libmailcore_IMAPMessageRenderingOperation.h
new file mode 100644
index 00000000..e2afd390
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPMessageRenderingOperation.h
@@ -0,0 +1,21 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPMessageRenderingOperation */
+
+#ifndef _Included_com_libmailcore_IMAPMessageRenderingOperation
+#define _Included_com_libmailcore_IMAPMessageRenderingOperation
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPMessageRenderingOperation
+ * Method: result
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPMessageRenderingOperation_result
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPMultipart.cpp b/src/java/native/com_libmailcore_IMAPMultipart.cpp
new file mode 100644
index 00000000..dbf5eceb
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPMultipart.cpp
@@ -0,0 +1,15 @@
+#include "com_libmailcore_IMAPMultipart.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPMultipart.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPMultipart
+#define javaType nativeType
+
+MC_JAVA_SYNTHESIZE_STRING(setPartID, partID)
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPMultipart.h b/src/java/native/com_libmailcore_IMAPMultipart.h
new file mode 100644
index 00000000..3aec59b6
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPMultipart.h
@@ -0,0 +1,37 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPMultipart */
+
+#ifndef _Included_com_libmailcore_IMAPMultipart
+#define _Included_com_libmailcore_IMAPMultipart
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPMultipart
+ * Method: setPartID
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPMultipart_setPartID
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPMultipart
+ * Method: partID
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPMultipart_partID
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPMultipart
+ * Method: setupNative
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPMultipart_setupNative
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPNamespace.cpp b/src/java/native/com_libmailcore_IMAPNamespace.cpp
new file mode 100644
index 00000000..3569ea55
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPNamespace.cpp
@@ -0,0 +1,62 @@
+#include "com_libmailcore_IMAPNamespace.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPNamespace.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPNamespace
+#define javaType nativeType
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPNamespace_mainPrefix
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET_STRING(mainPrefix);
+}
+
+JNIEXPORT jchar JNICALL Java_com_libmailcore_IMAPNamespace_mainDelimiter
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET_SCALAR(jchar, mainDelimiter);
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPNamespace_prefixes
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(prefixes);
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPNamespace_pathForComponents
+ (JNIEnv * env, jobject obj, jobject components)
+{
+ return (jstring) MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->pathForComponents(MC_FROM_JAVA(Array, components)));
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPNamespace_pathForComponentsAndPrefix
+ (JNIEnv * env, jobject obj, jobject components, jstring prefix)
+{
+ return (jstring) MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->pathForComponentsAndPrefix(MC_FROM_JAVA(Array, components),
+ MC_FROM_JAVA(String, prefix)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPNamespace_componentsFromPath
+ (JNIEnv * env, jobject obj, jstring path)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->componentsFromPath(MC_FROM_JAVA(String, path)));
+}
+
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_IMAPNamespace_containsFolderPath
+ (JNIEnv * env, jobject obj, jstring path)
+{
+ return (jboolean) MC_JAVA_NATIVE_INSTANCE->containsFolderPath(MC_FROM_JAVA(String, path));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPNamespace_namespaceWithPrefix
+ (JNIEnv * env, jclass cls, jstring prefix, jchar delimiter)
+{
+ return MC_TO_JAVA(IMAPNamespace::namespaceWithPrefix(MC_FROM_JAVA(String, prefix), (char) delimiter));
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPNamespace.h b/src/java/native/com_libmailcore_IMAPNamespace.h
new file mode 100644
index 00000000..5ffa4a79
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPNamespace.h
@@ -0,0 +1,77 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPNamespace */
+
+#ifndef _Included_com_libmailcore_IMAPNamespace
+#define _Included_com_libmailcore_IMAPNamespace
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPNamespace
+ * Method: mainPrefix
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPNamespace_mainPrefix
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPNamespace
+ * Method: mainDelimiter
+ * Signature: ()C
+ */
+JNIEXPORT jchar JNICALL Java_com_libmailcore_IMAPNamespace_mainDelimiter
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPNamespace
+ * Method: prefixes
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPNamespace_prefixes
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPNamespace
+ * Method: pathForComponents
+ * Signature: (Ljava/util/List;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPNamespace_pathForComponents
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPNamespace
+ * Method: pathForComponentsAndPrefix
+ * Signature: (Ljava/util/List;Ljava/lang/String;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPNamespace_pathForComponentsAndPrefix
+ (JNIEnv *, jobject, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPNamespace
+ * Method: componentsFromPath
+ * Signature: (Ljava/lang/String;)Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPNamespace_componentsFromPath
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPNamespace
+ * Method: containsFolderPath
+ * Signature: (Ljava/lang/String;)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_IMAPNamespace_containsFolderPath
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPNamespace
+ * Method: namespaceWithPrefix
+ * Signature: (Ljava/lang/String;C)Lcom/libmailcore/IMAPNamespace;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPNamespace_namespaceWithPrefix
+ (JNIEnv *, jclass, jstring, jchar);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPNamespaceItem.cpp b/src/java/native/com_libmailcore_IMAPNamespaceItem.cpp
new file mode 100644
index 00000000..ace55219
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPNamespaceItem.cpp
@@ -0,0 +1,34 @@
+#include "com_libmailcore_IMAPNamespaceItem.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPNamespaceItem.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPNamespaceItem
+#define javaType nativeType
+
+MC_JAVA_SYNTHESIZE_STRING(setPrefix, prefix)
+MC_JAVA_SYNTHESIZE_SCALAR(jchar, char, setDelimiter, delimiter)
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPNamespaceItem_pathForComponents
+ (JNIEnv * env, jobject obj, jobject components)
+{
+ return (jstring) MC_JAVA_NATIVE_INSTANCE->pathForComponents(MC_FROM_JAVA(Array, components));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPNamespaceItem_componentsForPath
+ (JNIEnv * env, jobject obj, jstring path)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->componentsForPath(MC_FROM_JAVA(String, path)));
+}
+
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_IMAPNamespaceItem_containsFolder
+ (JNIEnv * env, jobject obj, jstring path)
+{
+ return (jboolean) MC_JAVA_NATIVE_INSTANCE->containsFolder(MC_FROM_JAVA(String, path));
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPNamespaceItem.h b/src/java/native/com_libmailcore_IMAPNamespaceItem.h
new file mode 100644
index 00000000..13f6ac0d
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPNamespaceItem.h
@@ -0,0 +1,69 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPNamespaceItem */
+
+#ifndef _Included_com_libmailcore_IMAPNamespaceItem
+#define _Included_com_libmailcore_IMAPNamespaceItem
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPNamespaceItem
+ * Method: setPrefix
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPNamespaceItem_setPrefix
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPNamespaceItem
+ * Method: prefix
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPNamespaceItem_prefix
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPNamespaceItem
+ * Method: setDelimiter
+ * Signature: (C)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPNamespaceItem_setDelimiter
+ (JNIEnv *, jobject, jchar);
+
+/*
+ * Class: com_libmailcore_IMAPNamespaceItem
+ * Method: delimiter
+ * Signature: ()C
+ */
+JNIEXPORT jchar JNICALL Java_com_libmailcore_IMAPNamespaceItem_delimiter
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPNamespaceItem
+ * Method: pathForComponents
+ * Signature: (Ljava/util/List;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPNamespaceItem_pathForComponents
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPNamespaceItem
+ * Method: componentsForPath
+ * Signature: (Ljava/lang/String;)Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPNamespaceItem_componentsForPath
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPNamespaceItem
+ * Method: containsFolder
+ * Signature: (Ljava/lang/String;)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_IMAPNamespaceItem_containsFolder
+ (JNIEnv *, jobject, jstring);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPOperation.cpp b/src/java/native/com_libmailcore_IMAPOperation.cpp
new file mode 100644
index 00000000..74e4f15c
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPOperation.cpp
@@ -0,0 +1,25 @@
+#include "com_libmailcore_IMAPOperation.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPOperation.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPOperation
+#define javaType nativeType
+
+JNIEXPORT jint JNICALL Java_com_libmailcore_IMAPOperation_errorCode
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET_SCALAR(jint, error);
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPOperation_errorMessage
+ (JNIEnv * env, jobject obj)
+{
+ return (jstring) MC_TO_JAVA(MCSTR("Operation failed"));
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPOperation.h b/src/java/native/com_libmailcore_IMAPOperation.h
new file mode 100644
index 00000000..b93ecceb
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPOperation.h
@@ -0,0 +1,21 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPOperation */
+
+#ifndef _Included_com_libmailcore_IMAPOperation
+#define _Included_com_libmailcore_IMAPOperation
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPOperation
+ * Method: errorCode
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_libmailcore_IMAPOperation_errorCode
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPOperationItemProgressListener.h b/src/java/native/com_libmailcore_IMAPOperationItemProgressListener.h
new file mode 100644
index 00000000..e1b80e9d
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPOperationItemProgressListener.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPOperationItemProgressListener */
+
+#ifndef _Included_com_libmailcore_IMAPOperationItemProgressListener
+#define _Included_com_libmailcore_IMAPOperationItemProgressListener
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPOperationProgressListener.h b/src/java/native/com_libmailcore_IMAPOperationProgressListener.h
new file mode 100644
index 00000000..e94fceb7
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPOperationProgressListener.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPOperationProgressListener */
+
+#ifndef _Included_com_libmailcore_IMAPOperationProgressListener
+#define _Included_com_libmailcore_IMAPOperationProgressListener
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPPart.cpp b/src/java/native/com_libmailcore_IMAPPart.cpp
new file mode 100644
index 00000000..6c5ae806
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPPart.cpp
@@ -0,0 +1,23 @@
+#include "com_libmailcore_IMAPPart.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPPart.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPPart
+#define javaType nativeType
+
+MC_JAVA_SYNTHESIZE_STRING(setPartID, partID)
+MC_JAVA_SYNTHESIZE_SCALAR(jlong, unsigned int, setSize, size)
+MC_JAVA_SYNTHESIZE_SCALAR(jint, Encoding, setEncoding, encoding)
+
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPPart_decodedSize
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET_SCALAR(jlong, decodedSize);
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPPart.h b/src/java/native/com_libmailcore_IMAPPart.h
new file mode 100644
index 00000000..283fcec9
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPPart.h
@@ -0,0 +1,69 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPPart */
+
+#ifndef _Included_com_libmailcore_IMAPPart
+#define _Included_com_libmailcore_IMAPPart
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPPart
+ * Method: setPartID
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPPart_setPartID
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPPart
+ * Method: partID
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPPart_partID
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPPart
+ * Method: setSize
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPPart_setSize
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPPart
+ * Method: size
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPPart_size
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPPart
+ * Method: decodedSize
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPPart_decodedSize
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPPart
+ * Method: setEncoding
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPPart_setEncoding
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_libmailcore_IMAPPart
+ * Method: encoding
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_libmailcore_IMAPPart_encoding
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPQuotaOperation.cpp b/src/java/native/com_libmailcore_IMAPQuotaOperation.cpp
new file mode 100644
index 00000000..5ac954f0
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPQuotaOperation.cpp
@@ -0,0 +1,25 @@
+#include "com_libmailcore_IMAPQuotaOperation.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPQuotaOperation.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPQuotaOperation
+#define javaType nativeType
+
+JNIEXPORT jint JNICALL Java_com_libmailcore_IMAPQuotaOperation_usage
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET_SCALAR(jint, usage);
+}
+
+JNIEXPORT jint JNICALL Java_com_libmailcore_IMAPQuotaOperation_limit
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET_SCALAR(jint, limit);
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPQuotaOperation.h b/src/java/native/com_libmailcore_IMAPQuotaOperation.h
new file mode 100644
index 00000000..3ff29f22
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPQuotaOperation.h
@@ -0,0 +1,29 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPQuotaOperation */
+
+#ifndef _Included_com_libmailcore_IMAPQuotaOperation
+#define _Included_com_libmailcore_IMAPQuotaOperation
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPQuotaOperation
+ * Method: usage
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_libmailcore_IMAPQuotaOperation_usage
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPQuotaOperation
+ * Method: limit
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_libmailcore_IMAPQuotaOperation_limit
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPSearchExpression.cpp b/src/java/native/com_libmailcore_IMAPSearchExpression.cpp
new file mode 100644
index 00000000..75f2c3ec
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPSearchExpression.cpp
@@ -0,0 +1,223 @@
+#include "com_libmailcore_IMAPSearchExpression.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPSearchExpression.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPSearchExpression
+#define javaType nativeType
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchAll
+ (JNIEnv * env, jclass cls)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchAll());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchFrom
+ (JNIEnv * env, jclass cls, jstring)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchAll());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchTo
+ (JNIEnv * env, jclass cls, jstring value)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchTo(MC_FROM_JAVA(String, value)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchCc
+ (JNIEnv * env, jclass cls, jstring value)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchCc(MC_FROM_JAVA(String, value)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchBcc
+ (JNIEnv * env, jclass cls, jstring value)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchBcc(MC_FROM_JAVA(String, value)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchRecipient
+ (JNIEnv * env, jclass cls, jstring value)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchRecipient(MC_FROM_JAVA(String, value)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchSubject
+ (JNIEnv * env, jclass cls, jstring value)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchSubject(MC_FROM_JAVA(String, value)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchContent
+ (JNIEnv * env, jclass cls, jstring value)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchContent(MC_FROM_JAVA(String, value)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchBody
+ (JNIEnv * env, jclass cls, jstring value)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchBody(MC_FROM_JAVA(String, value)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchHeader
+ (JNIEnv * env, jclass cls, jstring header, jstring value)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchHeader(MC_FROM_JAVA(String, header), MC_FROM_JAVA(String, value)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchUIDs
+ (JNIEnv * env, jclass cls, jobject uids)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchUIDs(MC_FROM_JAVA(IndexSet, uids)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchRead
+ (JNIEnv * env, jclass cls)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchRead());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchUnread
+ (JNIEnv * env, jclass cls)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchUnread());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchFlagged
+ (JNIEnv * env, jclass cls)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchFlagged());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchUnflagged
+ (JNIEnv * env, jclass cls)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchUnflagged());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchAnswered
+ (JNIEnv * env, jclass cls)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchAnswered());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchUnanswered
+ (JNIEnv * env, jclass cls)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchUnanswered());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchDraft
+ (JNIEnv * env, jclass cls)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchDraft());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchUndraft
+ (JNIEnv * env, jclass cls)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchUndraft());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchDeleted
+ (JNIEnv * env, jclass cls)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchDeleted());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchSpam
+ (JNIEnv * env, jclass cls)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchSpam());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchBeforeDate
+ (JNIEnv * env, jclass cls, jobject date)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchBeforeDate(javaDateToTime(env, date)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchOnDate
+ (JNIEnv * env, jclass cls, jobject date)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchOnDate(javaDateToTime(env, date)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchSinceDate
+ (JNIEnv * env, jclass cls, jobject date)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchSinceDate(javaDateToTime(env, date)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchBeforeReceivedDate
+ (JNIEnv * env, jclass cls, jobject date)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchBeforeDate(javaDateToTime(env, date)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchOnReceivedDate
+ (JNIEnv * env, jclass cls, jobject date)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchOnReceivedDate(javaDateToTime(env, date)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchSinceReceivedDate
+ (JNIEnv * env, jclass cls, jobject date)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchSinceReceivedDate(javaDateToTime(env, date)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchSizeLarger
+ (JNIEnv * env, jclass cls, jlong size)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchSizeLarger((uint32_t) size));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchSizeSmaller
+ (JNIEnv * env, jclass cls, jlong size)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchSizeSmaller((uint32_t) size));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchGmailThreadID
+ (JNIEnv * env, jclass cls, jlong threadID)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchGmailThreadID((uint64_t) threadID));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchGmailMessageID
+ (JNIEnv * env, jclass cls, jlong messageID)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchGmailThreadID((uint64_t) messageID));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchGmailRaw
+ (JNIEnv * env, jclass cls, jstring searchString)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchGmailRaw(MC_FROM_JAVA(String, searchString)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchAnd
+ (JNIEnv * env, jclass cls, jobject expr1, jobject expr2)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchAnd(MC_FROM_JAVA(IMAPSearchExpression, expr1), MC_FROM_JAVA(IMAPSearchExpression, expr2)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchOr
+ (JNIEnv * env, jclass cls, jobject expr1, jobject expr2)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchOr(MC_FROM_JAVA(IMAPSearchExpression, expr1), MC_FROM_JAVA(IMAPSearchExpression, expr2)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchNot
+ (JNIEnv * env, jclass cls, jobject expr)
+{
+ return MC_TO_JAVA(IMAPSearchExpression::searchNot(MC_FROM_JAVA(IMAPSearchExpression, expr)));
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPSearchExpression.h b/src/java/native/com_libmailcore_IMAPSearchExpression.h
new file mode 100644
index 00000000..29853074
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPSearchExpression.h
@@ -0,0 +1,301 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPSearchExpression */
+
+#ifndef _Included_com_libmailcore_IMAPSearchExpression
+#define _Included_com_libmailcore_IMAPSearchExpression
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchAll
+ * Signature: ()Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchAll
+ (JNIEnv *, jclass);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchFrom
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchFrom
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchTo
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchTo
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchCc
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchCc
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchBcc
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchBcc
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchRecipient
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchRecipient
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchSubject
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchSubject
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchContent
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchContent
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchBody
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchBody
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchHeader
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchHeader
+ (JNIEnv *, jclass, jstring, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchUIDs
+ * Signature: (Lcom/libmailcore/IndexSet;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchUIDs
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchRead
+ * Signature: ()Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchRead
+ (JNIEnv *, jclass);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchUnread
+ * Signature: ()Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchUnread
+ (JNIEnv *, jclass);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchFlagged
+ * Signature: ()Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchFlagged
+ (JNIEnv *, jclass);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchUnflagged
+ * Signature: ()Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchUnflagged
+ (JNIEnv *, jclass);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchAnswered
+ * Signature: ()Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchAnswered
+ (JNIEnv *, jclass);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchUnanswered
+ * Signature: ()Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchUnanswered
+ (JNIEnv *, jclass);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchDraft
+ * Signature: ()Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchDraft
+ (JNIEnv *, jclass);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchUndraft
+ * Signature: ()Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchUndraft
+ (JNIEnv *, jclass);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchDeleted
+ * Signature: ()Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchDeleted
+ (JNIEnv *, jclass);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchSpam
+ * Signature: ()Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchSpam
+ (JNIEnv *, jclass);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchBeforeDate
+ * Signature: (Ljava/util/Date;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchBeforeDate
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchOnDate
+ * Signature: (Ljava/util/Date;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchOnDate
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchSinceDate
+ * Signature: (Ljava/util/Date;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchSinceDate
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchBeforeReceivedDate
+ * Signature: (Ljava/util/Date;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchBeforeReceivedDate
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchOnReceivedDate
+ * Signature: (Ljava/util/Date;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchOnReceivedDate
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchSinceReceivedDate
+ * Signature: (Ljava/util/Date;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchSinceReceivedDate
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchSizeLarger
+ * Signature: (J)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchSizeLarger
+ (JNIEnv *, jclass, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchSizeSmaller
+ * Signature: (J)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchSizeSmaller
+ (JNIEnv *, jclass, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchGmailThreadID
+ * Signature: (J)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchGmailThreadID
+ (JNIEnv *, jclass, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchGmailMessageID
+ * Signature: (J)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchGmailMessageID
+ (JNIEnv *, jclass, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchGmailRaw
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchGmailRaw
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchAnd
+ * Signature: (Lcom/libmailcore/IMAPSearchExpression;Lcom/libmailcore/IMAPSearchExpression;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchAnd
+ (JNIEnv *, jclass, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchOr
+ * Signature: (Lcom/libmailcore/IMAPSearchExpression;Lcom/libmailcore/IMAPSearchExpression;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchOr
+ (JNIEnv *, jclass, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: searchNot
+ * Signature: (Lcom/libmailcore/IMAPSearchExpression;)Lcom/libmailcore/IMAPSearchExpression;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchNot
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSearchExpression
+ * Method: setupNative
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSearchExpression_setupNative
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPSearchKind.h b/src/java/native/com_libmailcore_IMAPSearchKind.h
new file mode 100644
index 00000000..c6a257ba
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPSearchKind.h
@@ -0,0 +1,85 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPSearchKind */
+
+#ifndef _Included_com_libmailcore_IMAPSearchKind
+#define _Included_com_libmailcore_IMAPSearchKind
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindAll
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindAll 0L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindNone
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindNone 1L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindFrom
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindFrom 2L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindTo
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindTo 3L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindCc
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindCc 4L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindBcc
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindBcc 5L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindRecipient
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindRecipient 6L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindSubject
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindSubject 7L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindContent
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindContent 8L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindBody
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindBody 9L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindUids
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindUids 10L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindHeader
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindHeader 11L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindRead
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindRead 12L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindUnread
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindUnread 13L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindFlagged
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindFlagged 14L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindUnflagged
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindUnflagged 15L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindAnswered
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindAnswered 16L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindUnanswered
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindUnanswered 17L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindDraft
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindDraft 18L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindUndraft
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindUndraft 19L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindDeleted
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindDeleted 20L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindSpam
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindSpam 21L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindBeforeDate
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindBeforeDate 22L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindOnDate
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindOnDate 23L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindSinceDate
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindSinceDate 24L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindBeforeReceivedDate
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindBeforeReceivedDate 25L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindOnReceivedDate
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindOnReceivedDate 26L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindSinceReceivedDate
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindSinceReceivedDate 27L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindSizeLarger
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindSizeLarger 28L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindSizeSmaller
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindSizeSmaller 29L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindGmailThreadID
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindGmailThreadID 30L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindGmailMessageID
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindGmailMessageID 31L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindGmailRaw
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindGmailRaw 32L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindOr
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindOr 33L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindAnd
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindAnd 34L
+#undef com_libmailcore_IMAPSearchKind_IMAPSearchKindNot
+#define com_libmailcore_IMAPSearchKind_IMAPSearchKindNot 35L
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPSearchOperation.cpp b/src/java/native/com_libmailcore_IMAPSearchOperation.cpp
new file mode 100644
index 00000000..f9b3f524
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPSearchOperation.cpp
@@ -0,0 +1,19 @@
+#include "com_libmailcore_IMAPSearchOperation.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPSearchOperation.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPSearchOperation
+#define javaType nativeType
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchOperation_uids
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(uids);
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPSearchOperation.h b/src/java/native/com_libmailcore_IMAPSearchOperation.h
new file mode 100644
index 00000000..2204afe8
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPSearchOperation.h
@@ -0,0 +1,21 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPSearchOperation */
+
+#ifndef _Included_com_libmailcore_IMAPSearchOperation
+#define _Included_com_libmailcore_IMAPSearchOperation
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPSearchOperation
+ * Method: uids
+ * Signature: ()Lcom/libmailcore/IndexSet;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchOperation_uids
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPSession.cpp b/src/java/native/com_libmailcore_IMAPSession.cpp
new file mode 100644
index 00000000..ee76a76a
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPSession.cpp
@@ -0,0 +1,356 @@
+#include "com_libmailcore_IMAPSession.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+#include "MCIMAPAsyncSession.h"
+#include "JavaOperationQueueCallback.h"
+#include "JavaConnectionLogger.h"
+
+using namespace mailcore;
+
+#define nativeType IMAPAsyncSession
+#define javaType IMAPSession
+
+MC_JAVA_SYNTHESIZE_STRING(setHostname, hostname)
+MC_JAVA_SYNTHESIZE_SCALAR(jint, unsigned int, setPort, port)
+MC_JAVA_SYNTHESIZE_STRING(setUsername, username)
+MC_JAVA_SYNTHESIZE_STRING(setPassword, password)
+MC_JAVA_SYNTHESIZE_STRING(setOAuth2Token, OAuth2Token)
+MC_JAVA_SYNTHESIZE_SCALAR(jint, AuthType, setAuthType, authType)
+MC_JAVA_SYNTHESIZE_SCALAR(jint, ConnectionType, setConnectionType, connectionType)
+MC_JAVA_SYNTHESIZE_SCALAR(jlong, time_t, setTimeout, timeout)
+MC_JAVA_SYNTHESIZE_SCALAR(jboolean, bool, setCheckCertificateEnabled, isCheckCertificateEnabled)
+MC_JAVA_SYNTHESIZE(IMAPNamespace, setDefaultNamespace, defaultNamespace)
+MC_JAVA_SYNTHESIZE_SCALAR(jboolean, bool, setAllowsFolderConcurrentAccessEnabled, allowsFolderConcurrentAccessEnabled)
+MC_JAVA_SYNTHESIZE_SCALAR(jint, unsigned int, setMaximumConnections, maximumConnections)
+
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_IMAPSession_isOperationQueueRunning
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET_SCALAR(jboolean, isOperationQueueRunning);
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_cancelAllOperations
+ (JNIEnv * env, jobject obj)
+{
+ MC_JAVA_NATIVE_INSTANCE->cancelAllOperations();
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_serverIdentity
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(serverIdentity);
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_clientIdentity
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(clientIdentity);
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPSession_gmailUserDisplayName
+ (JNIEnv * env, jobject obj)
+{
+ return (jstring) MC_JAVA_BRIDGE_GET(gmailUserDisplayName);
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_folderInfoOperation
+ (JNIEnv * env, jobject obj, jstring path)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->folderInfoOperation(MC_FROM_JAVA(String, path)));
+}
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: folderStatusOperation
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/IMAPFolderStatusOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_folderStatusOperation
+ (JNIEnv * env, jobject obj, jstring path)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->folderInfoOperation(MC_FROM_JAVA(String, path)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchSubscribedFoldersOperation
+ (JNIEnv * env, jobject obj)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchSubscribedFoldersOperation());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchAllFoldersOperation
+ (JNIEnv * env, jobject obj)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchAllFoldersOperation());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_renameFolderOperation
+ (JNIEnv * env, jobject obj, jstring currentName, jstring otherName)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->renameFolderOperation(MC_FROM_JAVA(String, currentName), MC_FROM_JAVA(String, otherName)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_deleteFolderOperation
+ (JNIEnv * env, jobject obj, jstring path)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->deleteFolderOperation(MC_FROM_JAVA(String, path)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_createFolderOperation
+ (JNIEnv * env, jobject obj, jstring path)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->createFolderOperation(MC_FROM_JAVA(String, path)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_subscribeFolderOperation
+ (JNIEnv * env, jobject obj, jstring path)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->subscribeFolderOperation(MC_FROM_JAVA(String, path)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_unsubscribeFolderOperation
+ (JNIEnv * env, jobject obj, jstring path)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->unsubscribeFolderOperation(MC_FROM_JAVA(String, path)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_appendMessageOperation
+ (JNIEnv * env, jobject obj, jstring path, jbyteArray data, jint flags, jobject customFlags)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->appendMessageOperation(MC_FROM_JAVA(String, path),
+ MC_FROM_JAVA(Data, data), (MessageFlag) flags, MC_FROM_JAVA(Array, customFlags)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_copyMessagesOperation
+ (JNIEnv * env, jobject obj, jstring sourcePath, jobject uids, jstring destPath)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->copyMessagesOperation(MC_FROM_JAVA(String, sourcePath),
+ MC_FROM_JAVA(IndexSet, uids), MC_FROM_JAVA(String, destPath)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_expungeOperation
+ (JNIEnv * env, jobject obj, jstring path)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->expungeOperation(MC_FROM_JAVA(String, path)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchMessagesByUIDOperation
+ (JNIEnv * env, jobject obj, jstring path, jint kind, jobject uids)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessagesByUIDOperation(MC_FROM_JAVA(String, path), (IMAPMessagesRequestKind) kind, MC_FROM_JAVA(IndexSet, uids)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchMessagesByNumberOperation
+ (JNIEnv * env, jobject obj, jstring path, jint kind, jobject numbers)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessagesByNumberOperation(MC_FROM_JAVA(String, path), (IMAPMessagesRequestKind) kind, MC_FROM_JAVA(IndexSet, numbers)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_syncMessagesByUIDOperation
+ (JNIEnv * env, jobject obj, jstring path, jint kind, jobject uids, jlong modSeq)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->syncMessagesByUIDOperation(MC_FROM_JAVA(String, path), (IMAPMessagesRequestKind) kind, MC_FROM_JAVA(IndexSet, uids), (uint64_t) modSeq));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchMessageByUIDOperation
+ (JNIEnv * env, jobject obj, jstring path, jlong uid, jboolean urgent)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessageByUIDOperation(MC_FROM_JAVA(String, path), (uint32_t) uid, (bool) urgent));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchMessageAttachmentByUIDOperation
+ (JNIEnv * env, jobject obj, jstring path, jlong uid, jstring partID, jint encoding, jboolean urgent)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessageAttachmentByUIDOperation(MC_FROM_JAVA(String, path),
+ (uint32_t) uid, MC_FROM_JAVA(String, partID), (Encoding) encoding, (bool) urgent));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchMessageByNumberOperation
+ (JNIEnv * env, jobject obj, jstring path, jlong number, jboolean urgent)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessageByNumberOperation(MC_FROM_JAVA(String, path),
+ (uint32_t) number, (bool) urgent));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchMessageAttachmentByNumberOperation
+ (JNIEnv * env, jobject obj, jstring path, jlong number, jstring partID, jint encoding, jboolean urgent)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessageAttachmentByNumberOperation(MC_FROM_JAVA(String, path),
+ (uint32_t) number, MC_FROM_JAVA(String, partID), (Encoding) encoding, (bool) urgent));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchParsedMessageByUIDOperation
+ (JNIEnv * env, jobject obj, jstring path, jlong uid, jboolean urgent)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchParsedMessageByUIDOperation(MC_FROM_JAVA(String, path),
+ (uint32_t) uid, (bool) urgent));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchParsedMessageByNumberOperation
+ (JNIEnv * env, jobject obj, jstring path, jlong number, jboolean urgent)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchParsedMessageByNumberOperation(MC_FROM_JAVA(String, path),
+ (uint32_t) number, (bool) urgent));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_storeFlagsByUIDOperation
+ (JNIEnv * env, jobject obj, jstring path, jobject uids, jint kind, jint flags, jobject customFlags)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->storeFlagsByUIDOperation(MC_FROM_JAVA(String, path),
+ MC_FROM_JAVA(IndexSet, uids), (IMAPStoreFlagsRequestKind) kind, (MessageFlag) flags, MC_FROM_JAVA(Array, customFlags)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_storeFlagsByNumberOperation
+ (JNIEnv * env, jobject obj, jstring path, jobject uids, jint kind, jint flags, jobject customFlags)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->storeFlagsByUIDOperation(MC_FROM_JAVA(String, path),
+ MC_FROM_JAVA(IndexSet, uids), (IMAPStoreFlagsRequestKind) kind, (MessageFlag) flags, MC_FROM_JAVA(Array, customFlags)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_storeLabelsByUIDOperation
+ (JNIEnv * env, jobject obj, jstring path, jobject uids, jint kind, jobject labels)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->storeLabelsByUIDOperation(MC_FROM_JAVA(String, path),
+ MC_FROM_JAVA(IndexSet, uids), (IMAPStoreFlagsRequestKind) kind, MC_FROM_JAVA(Array, labels)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_storeLabelsByNumberOperation
+ (JNIEnv * env, jobject obj, jstring path, jobject numbers, jint kind, jobject labels)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->storeLabelsByNumberOperation(MC_FROM_JAVA(String, path),
+ MC_FROM_JAVA(IndexSet, numbers), (IMAPStoreFlagsRequestKind) kind, MC_FROM_JAVA(Array, labels)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_searchOperation__Ljava_lang_String_2ILjava_lang_String_2
+ (JNIEnv * env, jobject obj, jstring path, jint kind, jstring searchString)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->searchOperation(MC_FROM_JAVA(String, path),
+ (IMAPSearchKind) kind, MC_FROM_JAVA(String, searchString)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_searchOperation__Ljava_lang_String_2Lcom_libmailcore_IMAPSearchExpression_2
+ (JNIEnv * env, jobject obj, jstring path, jobject expression)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->searchOperation(MC_FROM_JAVA(String, path),
+ MC_FROM_JAVA(IMAPSearchExpression, expression)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_idleOperation
+ (JNIEnv * env, jobject obj, jstring path, jlong lastKnownUID)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->idleOperation(MC_FROM_JAVA(String, path), (uint32_t) lastKnownUID));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchNamespaceOperation
+ (JNIEnv * env, jobject obj)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchNamespaceOperation());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_identityOperation
+ (JNIEnv * env, jobject obj, jobject identity)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->identityOperation(MC_FROM_JAVA(IMAPIdentity, identity)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_connectOperation
+ (JNIEnv * env, jobject obj)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->connectOperation());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_checkAccountOperation
+ (JNIEnv * env, jobject obj)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->checkAccountOperation());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_disconnectOperation
+ (JNIEnv * env, jobject obj)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->disconnectOperation());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_capabilityOperation
+ (JNIEnv * env, jobject obj)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->capabilityOperation());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_quotaOperation
+ (JNIEnv * env, jobject obj)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->quotaOperation());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_noopOperation
+ (JNIEnv * env, jobject obj)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->noopOperation());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_htmlRenderingOperation
+ (JNIEnv * env, jobject obj, jobject msg, jstring path)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->htmlRenderingOperation(MC_FROM_JAVA(IMAPMessage, msg), MC_FROM_JAVA(String, path)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_htmlBodyRenderingOperation
+ (JNIEnv * env, jobject obj, jobject msg, jstring path)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->htmlBodyRenderingOperation(MC_FROM_JAVA(IMAPMessage, msg), MC_FROM_JAVA(String, path)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_plainTextRenderingOperation
+ (JNIEnv * env, jobject obj, jobject msg, jstring path)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->plainTextRenderingOperation(MC_FROM_JAVA(IMAPMessage, msg), MC_FROM_JAVA(String, path)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_plainTextBodyRenderingOperation
+ (JNIEnv * env, jobject obj, jobject msg, jstring path, jboolean stripWhitespace)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->plainTextBodyRenderingOperation(MC_FROM_JAVA(IMAPMessage, msg), MC_FROM_JAVA(String, path), (bool) stripWhitespace));
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_finalizeNative
+ (JNIEnv * env, jobject obj)
+{
+ JavaOperationQueueCallback * callback = (JavaOperationQueueCallback *) MC_JAVA_NATIVE_INSTANCE->operationQueueCallback();
+ MC_SAFE_RELEASE(callback);
+ MC_JAVA_NATIVE_INSTANCE->setOperationQueueCallback(NULL);
+
+ JavaConnectionLogger * logger = (JavaConnectionLogger *) MC_JAVA_NATIVE_INSTANCE->connectionLogger();
+ MC_SAFE_RELEASE(logger);
+ MC_JAVA_NATIVE_INSTANCE->setConnectionLogger(NULL);
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setupNativeOperationQueueListener
+ (JNIEnv * env, jobject obj)
+{
+ JavaOperationQueueCallback * callback = (JavaOperationQueueCallback *) MC_JAVA_NATIVE_INSTANCE->operationQueueCallback();
+ MC_SAFE_RELEASE(callback);
+ MC_JAVA_NATIVE_INSTANCE->setOperationQueueCallback(NULL);
+
+ jobject javaListener = getObjectField(env, obj, "operationQueueListener");
+ if (javaListener != NULL) {
+ callback = new JavaOperationQueueCallback(env, javaListener);
+ MC_JAVA_NATIVE_INSTANCE->setOperationQueueCallback(callback);
+ }
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setupNativeConnectionLogger
+ (JNIEnv * env, jobject obj)
+{
+ JavaConnectionLogger * logger = (JavaConnectionLogger *) MC_JAVA_NATIVE_INSTANCE->connectionLogger();
+ MC_SAFE_RELEASE(logger);
+ MC_JAVA_NATIVE_INSTANCE->setConnectionLogger(NULL);
+
+ jobject javaLogger = getObjectField(env, obj, "connectionLogger");
+ if (javaLogger != NULL) {
+ logger = new JavaConnectionLogger(env, javaLogger);
+ MC_JAVA_NATIVE_INSTANCE->setConnectionLogger(logger);
+ }
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IMAPSession.h b/src/java/native/com_libmailcore_IMAPSession.h
new file mode 100644
index 00000000..1096feae
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPSession.h
@@ -0,0 +1,597 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPSession */
+
+#ifndef _Included_com_libmailcore_IMAPSession
+#define _Included_com_libmailcore_IMAPSession
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: setHostname
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setHostname
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: hostname
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPSession_hostname
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: setPort
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setPort
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: port
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_libmailcore_IMAPSession_port
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: setUsername
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setUsername
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: username
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPSession_username
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: setPassword
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setPassword
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: password
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPSession_password
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: setOAuth2Token
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setOAuth2Token
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: OAuth2Token
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPSession_OAuth2Token
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: setAuthType
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setAuthType
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: authType
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_libmailcore_IMAPSession_authType
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: setConnectionType
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setConnectionType
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: connectionType
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_libmailcore_IMAPSession_connectionType
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: setTimeout
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setTimeout
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: timeout
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPSession_timeout
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: setCheckCertificateEnabled
+ * Signature: (Z)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setCheckCertificateEnabled
+ (JNIEnv *, jobject, jboolean);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: isCheckCertificateEnabled
+ * Signature: ()Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_IMAPSession_isCheckCertificateEnabled
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: setDefaultNamespace
+ * Signature: (Lcom/libmailcore/IMAPNamespace;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setDefaultNamespace
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: defaultNamespace
+ * Signature: ()Lcom/libmailcore/IMAPNamespace;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_defaultNamespace
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: setAllowsFolderConcurrentAccessEnabled
+ * Signature: (Z)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setAllowsFolderConcurrentAccessEnabled
+ (JNIEnv *, jobject, jboolean);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: allowsFolderConcurrentAccessEnabled
+ * Signature: ()Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_IMAPSession_allowsFolderConcurrentAccessEnabled
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: setMaximumConnections
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setMaximumConnections
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: maximumConnections
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_libmailcore_IMAPSession_maximumConnections
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: isOperationQueueRunning
+ * Signature: ()Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_IMAPSession_isOperationQueueRunning
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: cancelAllOperations
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_cancelAllOperations
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: serverIdentity
+ * Signature: ()Lcom/libmailcore/IMAPIdentity;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_serverIdentity
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: clientIdentity
+ * Signature: ()Lcom/libmailcore/IMAPIdentity;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_clientIdentity
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: gmailUserDisplayName
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPSession_gmailUserDisplayName
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: folderInfoOperation
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/IMAPFolderInfoOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_folderInfoOperation
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: folderStatusOperation
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/IMAPFolderStatusOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_folderStatusOperation
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: fetchSubscribedFoldersOperation
+ * Signature: ()Lcom/libmailcore/IMAPFetchFoldersOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchSubscribedFoldersOperation
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: fetchAllFoldersOperation
+ * Signature: ()Lcom/libmailcore/IMAPFetchFoldersOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchAllFoldersOperation
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: renameFolderOperation
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)Lcom/libmailcore/IMAPOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_renameFolderOperation
+ (JNIEnv *, jobject, jstring, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: deleteFolderOperation
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/IMAPOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_deleteFolderOperation
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: createFolderOperation
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/IMAPOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_createFolderOperation
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: subscribeFolderOperation
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/IMAPOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_subscribeFolderOperation
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: unsubscribeFolderOperation
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/IMAPOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_unsubscribeFolderOperation
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: appendMessageOperation
+ * Signature: (Ljava/lang/String;[BILjava/util/List;)Lcom/libmailcore/IMAPAppendMessageOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_appendMessageOperation
+ (JNIEnv *, jobject, jstring, jbyteArray, jint, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: copyMessagesOperation
+ * Signature: (Ljava/lang/String;Lcom/libmailcore/IndexSet;Ljava/lang/String;)Lcom/libmailcore/IMAPCopyMessagesOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_copyMessagesOperation
+ (JNIEnv *, jobject, jstring, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: expungeOperation
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/IMAPOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_expungeOperation
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: fetchMessagesByUIDOperation
+ * Signature: (Ljava/lang/String;ILcom/libmailcore/IndexSet;)Lcom/libmailcore/IMAPFetchMessagesOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchMessagesByUIDOperation
+ (JNIEnv *, jobject, jstring, jint, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: fetchMessagesByNumberOperation
+ * Signature: (Ljava/lang/String;ILcom/libmailcore/IndexSet;)Lcom/libmailcore/IMAPFetchMessagesOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchMessagesByNumberOperation
+ (JNIEnv *, jobject, jstring, jint, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: syncMessagesByUIDOperation
+ * Signature: (Ljava/lang/String;ILcom/libmailcore/IndexSet;J)Lcom/libmailcore/IMAPFetchMessagesOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_syncMessagesByUIDOperation
+ (JNIEnv *, jobject, jstring, jint, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: fetchMessageByUIDOperation
+ * Signature: (Ljava/lang/String;JZ)Lcom/libmailcore/IMAPFetchContentOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchMessageByUIDOperation
+ (JNIEnv *, jobject, jstring, jlong, jboolean);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: fetchMessageAttachmentByUIDOperation
+ * Signature: (Ljava/lang/String;JLjava/lang/String;IZ)Lcom/libmailcore/IMAPFetchContentOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchMessageAttachmentByUIDOperation
+ (JNIEnv *, jobject, jstring, jlong, jstring, jint, jboolean);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: fetchMessageByNumberOperation
+ * Signature: (Ljava/lang/String;JZ)Lcom/libmailcore/IMAPFetchContentOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchMessageByNumberOperation
+ (JNIEnv *, jobject, jstring, jlong, jboolean);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: fetchMessageAttachmentByNumberOperation
+ * Signature: (Ljava/lang/String;JLjava/lang/String;IZ)Lcom/libmailcore/IMAPFetchContentOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchMessageAttachmentByNumberOperation
+ (JNIEnv *, jobject, jstring, jlong, jstring, jint, jboolean);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: fetchParsedMessageByUIDOperation
+ * Signature: (Ljava/lang/String;JZ)Lcom/libmailcore/IMAPFetchParsedContentOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchParsedMessageByUIDOperation
+ (JNIEnv *, jobject, jstring, jlong, jboolean);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: fetchParsedMessageByNumberOperation
+ * Signature: (Ljava/lang/String;JZ)Lcom/libmailcore/IMAPFetchParsedContentOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchParsedMessageByNumberOperation
+ (JNIEnv *, jobject, jstring, jlong, jboolean);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: storeFlagsByUIDOperation
+ * Signature: (Ljava/lang/String;Lcom/libmailcore/IndexSet;IILjava/util/List;)Lcom/libmailcore/IMAPOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_storeFlagsByUIDOperation
+ (JNIEnv *, jobject, jstring, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: storeFlagsByNumberOperation
+ * Signature: (Ljava/lang/String;Lcom/libmailcore/IndexSet;IILjava/util/List;)Lcom/libmailcore/IMAPOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_storeFlagsByNumberOperation
+ (JNIEnv *, jobject, jstring, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: storeLabelsByUIDOperation
+ * Signature: (Ljava/lang/String;Lcom/libmailcore/IndexSet;ILjava/util/List;)Lcom/libmailcore/IMAPOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_storeLabelsByUIDOperation
+ (JNIEnv *, jobject, jstring, jobject, jint, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: storeLabelsByNumberOperation
+ * Signature: (Ljava/lang/String;Lcom/libmailcore/IndexSet;ILjava/util/List;)Lcom/libmailcore/IMAPOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_storeLabelsByNumberOperation
+ (JNIEnv *, jobject, jstring, jobject, jint, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: searchOperation
+ * Signature: (Ljava/lang/String;ILjava/lang/String;)Lcom/libmailcore/IMAPSearchOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_searchOperation__Ljava_lang_String_2ILjava_lang_String_2
+ (JNIEnv *, jobject, jstring, jint, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: searchOperation
+ * Signature: (Ljava/lang/String;Lcom/libmailcore/IMAPSearchExpression;)Lcom/libmailcore/IMAPSearchOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_searchOperation__Ljava_lang_String_2Lcom_libmailcore_IMAPSearchExpression_2
+ (JNIEnv *, jobject, jstring, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: idleOperation
+ * Signature: (Ljava/lang/String;J)Lcom/libmailcore/IMAPIdleOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_idleOperation
+ (JNIEnv *, jobject, jstring, jlong);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: fetchNamespaceOperation
+ * Signature: ()Lcom/libmailcore/IMAPFetchNamespaceOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchNamespaceOperation
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: identityOperation
+ * Signature: (Lcom/libmailcore/IMAPIdentity;)Lcom/libmailcore/IMAPIdentityOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_identityOperation
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: connectOperation
+ * Signature: ()Lcom/libmailcore/IMAPOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_connectOperation
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: checkAccountOperation
+ * Signature: ()Lcom/libmailcore/IMAPOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_checkAccountOperation
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: disconnectOperation
+ * Signature: ()Lcom/libmailcore/IMAPOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_disconnectOperation
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: capabilityOperation
+ * Signature: ()Lcom/libmailcore/IMAPCapabilityOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_capabilityOperation
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: quotaOperation
+ * Signature: ()Lcom/libmailcore/IMAPQuotaOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_quotaOperation
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: noopOperation
+ * Signature: ()Lcom/libmailcore/IMAPOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_noopOperation
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: htmlRenderingOperation
+ * Signature: (Lcom/libmailcore/IMAPMessage;Ljava/lang/String;)Lcom/libmailcore/IMAPMessageRenderingOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_htmlRenderingOperation
+ (JNIEnv *, jobject, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: htmlBodyRenderingOperation
+ * Signature: (Lcom/libmailcore/IMAPMessage;Ljava/lang/String;)Lcom/libmailcore/IMAPMessageRenderingOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_htmlBodyRenderingOperation
+ (JNIEnv *, jobject, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: plainTextRenderingOperation
+ * Signature: (Lcom/libmailcore/IMAPMessage;Ljava/lang/String;)Lcom/libmailcore/IMAPMessageRenderingOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_plainTextRenderingOperation
+ (JNIEnv *, jobject, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: plainTextBodyRenderingOperation
+ * Signature: (Lcom/libmailcore/IMAPMessage;Ljava/lang/String;Z)Lcom/libmailcore/IMAPMessageRenderingOperation;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_plainTextBodyRenderingOperation
+ (JNIEnv *, jobject, jobject, jstring, jboolean);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: setupNative
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setupNative
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: finalizeNative
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_finalizeNative
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: setupNativeOperationQueueListener
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setupNativeOperationQueueListener
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IMAPSession
+ * Method: setupNativeConnectionLogger
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setupNativeConnectionLogger
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IMAPStoreFlagsRequestKind.h b/src/java/native/com_libmailcore_IMAPStoreFlagsRequestKind.h
new file mode 100644
index 00000000..602218a2
--- /dev/null
+++ b/src/java/native/com_libmailcore_IMAPStoreFlagsRequestKind.h
@@ -0,0 +1,19 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IMAPStoreFlagsRequestKind */
+
+#ifndef _Included_com_libmailcore_IMAPStoreFlagsRequestKind
+#define _Included_com_libmailcore_IMAPStoreFlagsRequestKind
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef com_libmailcore_IMAPStoreFlagsRequestKind_IMAPStoreFlagsRequestKindAdd
+#define com_libmailcore_IMAPStoreFlagsRequestKind_IMAPStoreFlagsRequestKindAdd 0L
+#undef com_libmailcore_IMAPStoreFlagsRequestKind_IMAPStoreFlagsRequestKindRemove
+#define com_libmailcore_IMAPStoreFlagsRequestKind_IMAPStoreFlagsRequestKindRemove 1L
+#undef com_libmailcore_IMAPStoreFlagsRequestKind_IMAPStoreFlagsRequestKindSet
+#define com_libmailcore_IMAPStoreFlagsRequestKind_IMAPStoreFlagsRequestKindSet 2L
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_IndexSet.cpp b/src/java/native/com_libmailcore_IndexSet.cpp
new file mode 100644
index 00000000..d38d9859
--- /dev/null
+++ b/src/java/native/com_libmailcore_IndexSet.cpp
@@ -0,0 +1,123 @@
+#include "com_libmailcore_IndexSet.h"
+
+#include "TypesUtils.h"
+#include "JavaHandle.h"
+#include "MCDefines.h"
+#include "MCIndexSet.h"
+
+using namespace mailcore;
+
+#define nativeType IndexSet
+#define javaType nativeType
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IndexSet_indexSet
+ (JNIEnv * env, jclass cls)
+{
+ return MC_TO_JAVA(IndexSet::indexSet());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IndexSet_indexSetWithRange
+ (JNIEnv * env, jclass cls, jobject range)
+{
+ Range mcRange = rangeFromJava(env, range);
+ return MC_TO_JAVA(IndexSet::indexSetWithRange(mcRange));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IndexSet_indexSetWithIndex
+ (JNIEnv * env, jclass cls, jlong idx)
+{
+ return MC_TO_JAVA(IndexSet::indexSetWithIndex((uint64_t) idx));
+}
+
+JNIEXPORT jint JNICALL Java_com_libmailcore_IndexSet_count
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET_SCALAR(jint, count);
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_addIndex
+ (JNIEnv * env, jobject obj, jlong idx)
+{
+ MC_JAVA_NATIVE_INSTANCE->addIndex((uint64_t) idx);
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_removeIndex
+ (JNIEnv * env, jobject obj, jlong idx)
+{
+ MC_JAVA_NATIVE_INSTANCE->removeIndex((uint64_t) idx);
+}
+
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_IndexSet_containsIndex
+ (JNIEnv * env, jobject obj, jlong idx)
+{
+ return (jboolean) MC_JAVA_NATIVE_INSTANCE->containsIndex((uint64_t) idx);
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_addRange
+ (JNIEnv * env, jobject obj, jobject range)
+{
+ Range mcRange = rangeFromJava(env, range);
+ MC_JAVA_NATIVE_INSTANCE->addRange(mcRange);
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_removeRange
+ (JNIEnv * env, jobject obj, jobject range)
+{
+ Range mcRange = rangeFromJava(env, range);
+ MC_JAVA_NATIVE_INSTANCE->removeRange(mcRange);
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_intersectsRange
+ (JNIEnv * env, jobject obj, jobject range)
+{
+ Range mcRange = rangeFromJava(env, range);
+ MC_JAVA_NATIVE_INSTANCE->intersectsRange(mcRange);
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_addIndexSet
+ (JNIEnv * env, jobject obj, jobject otherIndexSet)
+{
+ MC_JAVA_NATIVE_INSTANCE->addIndexSet(MC_FROM_JAVA(IndexSet, otherIndexSet));
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_removeIndexSet
+ (JNIEnv * env, jobject obj, jobject otherIndexSet)
+{
+ MC_JAVA_NATIVE_INSTANCE->removeIndexSet(MC_FROM_JAVA(IndexSet, otherIndexSet));
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_intersectsIndexSet
+ (JNIEnv * env, jobject obj, jobject otherIndexSet)
+{
+ MC_JAVA_NATIVE_INSTANCE->intersectsIndexSet(MC_FROM_JAVA(IndexSet, otherIndexSet));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IndexSet_allRanges
+ (JNIEnv * env, jobject obj)
+{
+ jclass cls = env->FindClass("java/util/Vector");
+ jmethodID constructor = env->GetMethodID(cls, "<init>", "(I)V");
+ unsigned int count = MC_JAVA_NATIVE_INSTANCE->rangesCount();
+ jobject javaVector = env->NewObject(cls, constructor, count);
+ jmethodID method = env->GetMethodID(cls, "add", "(Ljava.lang.Object;)Z");
+ Range * ranges = MC_JAVA_NATIVE_INSTANCE->allRanges();
+ for(unsigned int i = 0 ; i < count ; i ++) {
+ jobject javaObject = rangeToJava(env, ranges[i]);
+ env->CallBooleanMethod(javaVector, method, javaObject);
+ }
+ return javaVector;
+}
+
+JNIEXPORT jint JNICALL Java_com_libmailcore_IndexSet_rangesCount
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET_SCALAR(jint, rangesCount);
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_removeAllIndexes
+ (JNIEnv * env, jobject obj)
+{
+ MC_JAVA_NATIVE_INSTANCE->removeAllIndexes();
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_IndexSet.h b/src/java/native/com_libmailcore_IndexSet.h
new file mode 100644
index 00000000..536caf53
--- /dev/null
+++ b/src/java/native/com_libmailcore_IndexSet.h
@@ -0,0 +1,149 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_IndexSet */
+
+#ifndef _Included_com_libmailcore_IndexSet
+#define _Included_com_libmailcore_IndexSet
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_IndexSet
+ * Method: indexSet
+ * Signature: ()Lcom/libmailcore/IndexSet;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IndexSet_indexSet
+ (JNIEnv *, jclass);
+
+/*
+ * Class: com_libmailcore_IndexSet
+ * Method: indexSetWithRange
+ * Signature: (Lcom/libmailcore/Range;)Lcom/libmailcore/IndexSet;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IndexSet_indexSetWithRange
+ (JNIEnv *, jclass, jobject);
+
+/*
+ * Class: com_libmailcore_IndexSet
+ * Method: indexSetWithIndex
+ * Signature: (J)Lcom/libmailcore/IndexSet;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IndexSet_indexSetWithIndex
+ (JNIEnv *, jclass, jlong);
+
+/*
+ * Class: com_libmailcore_IndexSet
+ * Method: count
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_libmailcore_IndexSet_count
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IndexSet
+ * Method: addIndex
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_addIndex
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IndexSet
+ * Method: removeIndex
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_removeIndex
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IndexSet
+ * Method: containsIndex
+ * Signature: (J)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_IndexSet_containsIndex
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_IndexSet
+ * Method: addRange
+ * Signature: (Lcom/libmailcore/Range;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_addRange
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_IndexSet
+ * Method: removeRange
+ * Signature: (Lcom/libmailcore/Range;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_removeRange
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_IndexSet
+ * Method: intersectsRange
+ * Signature: (Lcom/libmailcore/Range;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_intersectsRange
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_IndexSet
+ * Method: addIndexSet
+ * Signature: (Lcom/libmailcore/IndexSet;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_addIndexSet
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_IndexSet
+ * Method: removeIndexSet
+ * Signature: (Lcom/libmailcore/IndexSet;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_removeIndexSet
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_IndexSet
+ * Method: intersectsIndexSet
+ * Signature: (Lcom/libmailcore/IndexSet;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_intersectsIndexSet
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_IndexSet
+ * Method: allRanges
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_IndexSet_allRanges
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IndexSet
+ * Method: rangesCount
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_libmailcore_IndexSet_rangesCount
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IndexSet
+ * Method: removeAllIndexes
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_removeAllIndexes
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_IndexSet
+ * Method: setupNative
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_setupNative
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_MailException.h b/src/java/native/com_libmailcore_MailException.h
new file mode 100644
index 00000000..6215d31e
--- /dev/null
+++ b/src/java/native/com_libmailcore_MailException.h
@@ -0,0 +1,103 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_MailException */
+
+#ifndef _Included_com_libmailcore_MailException
+#define _Included_com_libmailcore_MailException
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef com_libmailcore_MailException_serialVersionUID
+#define com_libmailcore_MailException_serialVersionUID -3042686055658047285LL
+#undef com_libmailcore_MailException_serialVersionUID
+#define com_libmailcore_MailException_serialVersionUID -3387516993124229948LL
+#undef com_libmailcore_MailException_ERROR_NONE
+#define com_libmailcore_MailException_ERROR_NONE 0L
+#undef com_libmailcore_MailException_ERROR_CONNECTION
+#define com_libmailcore_MailException_ERROR_CONNECTION 1L
+#undef com_libmailcore_MailException_ERROR_TLS_NOT_AVAILABLE
+#define com_libmailcore_MailException_ERROR_TLS_NOT_AVAILABLE 2L
+#undef com_libmailcore_MailException_ERROR_PARSE
+#define com_libmailcore_MailException_ERROR_PARSE 3L
+#undef com_libmailcore_MailException_ERROR_CERTIFICATE
+#define com_libmailcore_MailException_ERROR_CERTIFICATE 4L
+#undef com_libmailcore_MailException_ERROR_AUTHENTICATION
+#define com_libmailcore_MailException_ERROR_AUTHENTICATION 5L
+#undef com_libmailcore_MailException_ERROR_GMAIL_IMAP_NOT_ENABLED
+#define com_libmailcore_MailException_ERROR_GMAIL_IMAP_NOT_ENABLED 6L
+#undef com_libmailcore_MailException_ERROR_GMAIL_EXCEED_BANDWIDTH_LIMIT
+#define com_libmailcore_MailException_ERROR_GMAIL_EXCEED_BANDWIDTH_LIMIT 7L
+#undef com_libmailcore_MailException_ERROR_GMAIL_TOO_MANY_SIMULTANEOUS_CONNECTIONS
+#define com_libmailcore_MailException_ERROR_GMAIL_TOO_MANY_SIMULTANEOUS_CONNECTIONS 8L
+#undef com_libmailcore_MailException_ERROR_MOBILEME_MOVED
+#define com_libmailcore_MailException_ERROR_MOBILEME_MOVED 9L
+#undef com_libmailcore_MailException_ERROR_YAHOO_UNAVAILABLE
+#define com_libmailcore_MailException_ERROR_YAHOO_UNAVAILABLE 10L
+#undef com_libmailcore_MailException_ERROR_NON_EXISTANT_FOLDER
+#define com_libmailcore_MailException_ERROR_NON_EXISTANT_FOLDER 11L
+#undef com_libmailcore_MailException_ERROR_RENAME
+#define com_libmailcore_MailException_ERROR_RENAME 12L
+#undef com_libmailcore_MailException_ERROR_DELETE
+#define com_libmailcore_MailException_ERROR_DELETE 13L
+#undef com_libmailcore_MailException_ERROR_CREATE
+#define com_libmailcore_MailException_ERROR_CREATE 14L
+#undef com_libmailcore_MailException_ERROR_SUBSCRIBED
+#define com_libmailcore_MailException_ERROR_SUBSCRIBED 15L
+#undef com_libmailcore_MailException_ERROR_APPEND
+#define com_libmailcore_MailException_ERROR_APPEND 16L
+#undef com_libmailcore_MailException_ERROR_COPY
+#define com_libmailcore_MailException_ERROR_COPY 17L
+#undef com_libmailcore_MailException_ERROR_EXPUNGE
+#define com_libmailcore_MailException_ERROR_EXPUNGE 18L
+#undef com_libmailcore_MailException_ERROR_FETCH
+#define com_libmailcore_MailException_ERROR_FETCH 19L
+#undef com_libmailcore_MailException_ERROR_IDLE
+#define com_libmailcore_MailException_ERROR_IDLE 20L
+#undef com_libmailcore_MailException_ERROR_IDENTITY
+#define com_libmailcore_MailException_ERROR_IDENTITY 21L
+#undef com_libmailcore_MailException_ERROR_NAMESPACE
+#define com_libmailcore_MailException_ERROR_NAMESPACE 22L
+#undef com_libmailcore_MailException_ERROR_STORE
+#define com_libmailcore_MailException_ERROR_STORE 23L
+#undef com_libmailcore_MailException_ERROR_CAPABILITY
+#define com_libmailcore_MailException_ERROR_CAPABILITY 24L
+#undef com_libmailcore_MailException_ERROR_STARTTLS_NOT_AVAILABLE
+#define com_libmailcore_MailException_ERROR_STARTTLS_NOT_AVAILABLE 25L
+#undef com_libmailcore_MailException_ERROR_SEND_MESSAGE_ILLEGAL_ATTACHMENT
+#define com_libmailcore_MailException_ERROR_SEND_MESSAGE_ILLEGAL_ATTACHMENT 26L
+#undef com_libmailcore_MailException_ERROR_STORAGE_LIMIT
+#define com_libmailcore_MailException_ERROR_STORAGE_LIMIT 27L
+#undef com_libmailcore_MailException_ERROR_SEND_MESSAGE_NOT_ALLOWED
+#define com_libmailcore_MailException_ERROR_SEND_MESSAGE_NOT_ALLOWED 28L
+#undef com_libmailcore_MailException_ERROR_NEEDS_CONNECT_TO_WEBMAIL
+#define com_libmailcore_MailException_ERROR_NEEDS_CONNECT_TO_WEBMAIL 29L
+#undef com_libmailcore_MailException_ERROR_SEND_MESSAGE
+#define com_libmailcore_MailException_ERROR_SEND_MESSAGE 30L
+#undef com_libmailcore_MailException_ERROR_AUTHENTICATION_REQUIRED
+#define com_libmailcore_MailException_ERROR_AUTHENTICATION_REQUIRED 31L
+#undef com_libmailcore_MailException_ERROR_FETCH_MESSAGE_LIST
+#define com_libmailcore_MailException_ERROR_FETCH_MESSAGE_LIST 32L
+#undef com_libmailcore_MailException_ERROR_DELETE_MESSAGE
+#define com_libmailcore_MailException_ERROR_DELETE_MESSAGE 33L
+#undef com_libmailcore_MailException_ERROR_INVALID_ACCOUNT
+#define com_libmailcore_MailException_ERROR_INVALID_ACCOUNT 34L
+#undef com_libmailcore_MailException_ERROR_FILE
+#define com_libmailcore_MailException_ERROR_FILE 35L
+#undef com_libmailcore_MailException_ERROR_COMPRESSION
+#define com_libmailcore_MailException_ERROR_COMPRESSION 36L
+#undef com_libmailcore_MailException_ERROR_NO_SENDER
+#define com_libmailcore_MailException_ERROR_NO_SENDER 37L
+#undef com_libmailcore_MailException_ERROR_NO_RECIPIENT
+#define com_libmailcore_MailException_ERROR_NO_RECIPIENT 38L
+#undef com_libmailcore_MailException_ERROR_NOOP
+#define com_libmailcore_MailException_ERROR_NOOP 39L
+#undef com_libmailcore_MailException_ERROR_GMAIL_APPLICATION_SPECIFIC_PASSWORD_REQUIRED
+#define com_libmailcore_MailException_ERROR_GMAIL_APPLICATION_SPECIFIC_PASSWORD_REQUIRED 40L
+#undef com_libmailcore_MailException_ERROR_SERVER_DATE
+#define com_libmailcore_MailException_ERROR_SERVER_DATE 41L
+#undef com_libmailcore_MailException_ERROR_COUNT
+#define com_libmailcore_MailException_ERROR_COUNT 42L
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_MainThreadUtils.h b/src/java/native/com_libmailcore_MainThreadUtils.h
new file mode 100644
index 00000000..327d9910
--- /dev/null
+++ b/src/java/native/com_libmailcore_MainThreadUtils.h
@@ -0,0 +1,37 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_MainThreadUtils */
+
+#ifndef _Included_com_libmailcore_MainThreadUtils
+#define _Included_com_libmailcore_MainThreadUtils
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_MainThreadUtils
+ * Method: setupNative
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MainThreadUtils_setupNative
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MainThreadUtils
+ * Method: runIdentifier
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MainThreadUtils_runIdentifier
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_MainThreadUtils
+ * Method: runIdentifierAndNotify
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MainThreadUtils_runIdentifierAndNotify
+ (JNIEnv *, jobject, jlong);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_MessageBuilder.cpp b/src/java/native/com_libmailcore_MessageBuilder.cpp
new file mode 100644
index 00000000..4369f436
--- /dev/null
+++ b/src/java/native/com_libmailcore_MessageBuilder.cpp
@@ -0,0 +1,90 @@
+#include "com_libmailcore_MessageBuilder.h"
+
+#include "TypesUtils.h"
+#include "JavaHandle.h"
+#include "MCMessageBuilder.h"
+#include "MCDefines.h"
+#include "JavaHTMLRendererTemplateCallback.h"
+
+using namespace mailcore;
+
+#define nativeType MessageBuilder
+#define javaType nativeType
+
+MC_JAVA_SYNTHESIZE_STRING(setHTMLBody, htmlBody)
+MC_JAVA_SYNTHESIZE_STRING(setTextBody, textBody)
+MC_JAVA_SYNTHESIZE(Array, setAttachments, attachments)
+
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageBuilder_addAttachment
+ (JNIEnv * env, jobject obj, jobject attachment)
+{
+ MC_JAVA_NATIVE_INSTANCE->addAttachment(MC_FROM_JAVA(Attachment, attachment));
+}
+
+MC_JAVA_SYNTHESIZE(Array, setRelatedAttachments, relatedAttachments)
+
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageBuilder_addRelatedAttachment
+ (JNIEnv * env, jobject obj, jobject attachment)
+{
+ MC_JAVA_NATIVE_INSTANCE->addRelatedAttachment(MC_FROM_JAVA(Attachment, attachment));
+}
+
+MC_JAVA_SYNTHESIZE_STRING(setBoundaryPrefix, boundaryPrefix)
+
+JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_MessageBuilder_data
+ (JNIEnv * env, jobject obj)
+{
+ return (jbyteArray) MC_JAVA_BRIDGE_GET(data);
+}
+
+JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_MessageBuilder_dataForEncryption
+ (JNIEnv * env, jobject obj)
+{
+ return (jbyteArray) MC_JAVA_BRIDGE_GET(dataForEncryption);
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageBuilder_htmlRendering
+ (JNIEnv * env, jobject obj, jobject javaCallback)
+{
+ JavaHTMLRendererTemplateCallback * callback = NULL;
+ if (javaCallback != NULL) {
+ callback = new JavaHTMLRendererTemplateCallback(env, javaCallback);
+ }
+ jstring result = (jstring) MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->htmlRendering(callback));
+ if (callback != NULL) {
+ delete callback;
+ }
+ return result;
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageBuilder_htmlBodyRendering
+ (JNIEnv * env, jobject obj)
+{
+ return (jstring) MC_JAVA_BRIDGE_GET(htmlBodyRendering);
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageBuilder_plainTextRendering
+ (JNIEnv * env, jobject obj)
+{
+ return (jstring) MC_JAVA_NATIVE_INSTANCE->plainTextRendering();
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageBuilder_plainTextBodyRendering
+ (JNIEnv * env, jobject obj, jboolean stripWhitespace)
+{
+ return (jstring) MC_JAVA_NATIVE_INSTANCE->plainTextBodyRendering((bool) stripWhitespace);
+}
+
+JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_MessageBuilder_openPGPSignedMessageDataWithSignatureData
+ (JNIEnv * env, jobject obj, jbyteArray signature)
+{
+ return (jbyteArray) MC_JAVA_NATIVE_INSTANCE->openPGPSignedMessageDataWithSignatureData(MC_FROM_JAVA(Data, signature));
+}
+
+JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_MessageBuilder_openPGPEncryptedMessageDataWithEncryptedData
+ (JNIEnv * env, jobject obj, jbyteArray encryptedData)
+{
+ return (jbyteArray) MC_JAVA_NATIVE_INSTANCE->openPGPEncryptedMessageDataWithEncryptedData(MC_FROM_JAVA(Data, encryptedData));
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_MessageBuilder.h b/src/java/native/com_libmailcore_MessageBuilder.h
new file mode 100644
index 00000000..e57f235c
--- /dev/null
+++ b/src/java/native/com_libmailcore_MessageBuilder.h
@@ -0,0 +1,181 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_MessageBuilder */
+
+#ifndef _Included_com_libmailcore_MessageBuilder
+#define _Included_com_libmailcore_MessageBuilder
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: setHTMLBody
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageBuilder_setHTMLBody
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: htmlBody
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageBuilder_htmlBody
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: setTextBody
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageBuilder_setTextBody
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: textBody
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageBuilder_textBody
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: setAttachments
+ * Signature: (Ljava/util/List;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageBuilder_setAttachments
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: attachments
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageBuilder_attachments
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: addAttachment
+ * Signature: (Lcom/libmailcore/Attachment;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageBuilder_addAttachment
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: setRelatedAttachments
+ * Signature: (Ljava/util/List;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageBuilder_setRelatedAttachments
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: relatedAttachments
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageBuilder_relatedAttachments
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: addRelatedAttachment
+ * Signature: (Lcom/libmailcore/Attachment;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageBuilder_addRelatedAttachment
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: setBoundaryPrefix
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageBuilder_setBoundaryPrefix
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: boundaryPrefix
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageBuilder_boundaryPrefix
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: data
+ * Signature: ()[B
+ */
+JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_MessageBuilder_data
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: dataForEncryption
+ * Signature: ()[B
+ */
+JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_MessageBuilder_dataForEncryption
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: htmlRendering
+ * Signature: (Lcom/libmailcore/HTMLRendererTemplateCallback;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageBuilder_htmlRendering
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: htmlBodyRendering
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageBuilder_htmlBodyRendering
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: plainTextRendering
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageBuilder_plainTextRendering
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: plainTextBodyRendering
+ * Signature: (Z)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageBuilder_plainTextBodyRendering
+ (JNIEnv *, jobject, jboolean);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: openPGPSignedMessageDataWithSignatureData
+ * Signature: ([B)[B
+ */
+JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_MessageBuilder_openPGPSignedMessageDataWithSignatureData
+ (JNIEnv *, jobject, jbyteArray);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: openPGPEncryptedMessageDataWithEncryptedData
+ * Signature: ([B)[B
+ */
+JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_MessageBuilder_openPGPEncryptedMessageDataWithEncryptedData
+ (JNIEnv *, jobject, jbyteArray);
+
+/*
+ * Class: com_libmailcore_MessageBuilder
+ * Method: setupNative
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageBuilder_setupNative
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_MessageFlag.h b/src/java/native/com_libmailcore_MessageFlag.h
new file mode 100644
index 00000000..8e6354d8
--- /dev/null
+++ b/src/java/native/com_libmailcore_MessageFlag.h
@@ -0,0 +1,35 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_MessageFlag */
+
+#ifndef _Included_com_libmailcore_MessageFlag
+#define _Included_com_libmailcore_MessageFlag
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef com_libmailcore_MessageFlag_MessageFlagNone
+#define com_libmailcore_MessageFlag_MessageFlagNone 0L
+#undef com_libmailcore_MessageFlag_MessageFlagSeen
+#define com_libmailcore_MessageFlag_MessageFlagSeen 1L
+#undef com_libmailcore_MessageFlag_MessageFlagAnswered
+#define com_libmailcore_MessageFlag_MessageFlagAnswered 2L
+#undef com_libmailcore_MessageFlag_MessageFlagFlagged
+#define com_libmailcore_MessageFlag_MessageFlagFlagged 4L
+#undef com_libmailcore_MessageFlag_MessageFlagDeleted
+#define com_libmailcore_MessageFlag_MessageFlagDeleted 8L
+#undef com_libmailcore_MessageFlag_MessageFlagDraft
+#define com_libmailcore_MessageFlag_MessageFlagDraft 16L
+#undef com_libmailcore_MessageFlag_MessageFlagMDNSent
+#define com_libmailcore_MessageFlag_MessageFlagMDNSent 32L
+#undef com_libmailcore_MessageFlag_MessageFlagForwarded
+#define com_libmailcore_MessageFlag_MessageFlagForwarded 64L
+#undef com_libmailcore_MessageFlag_MessageFlagSubmitPending
+#define com_libmailcore_MessageFlag_MessageFlagSubmitPending 128L
+#undef com_libmailcore_MessageFlag_MessageFlagSubmitted
+#define com_libmailcore_MessageFlag_MessageFlagSubmitted 256L
+#undef com_libmailcore_MessageFlag_MessageFlagMaskAll
+#define com_libmailcore_MessageFlag_MessageFlagMaskAll 511L
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_MessageHeader.cpp b/src/java/native/com_libmailcore_MessageHeader.cpp
new file mode 100644
index 00000000..9fc61d93
--- /dev/null
+++ b/src/java/native/com_libmailcore_MessageHeader.cpp
@@ -0,0 +1,111 @@
+#include "com_libmailcore_Address.h"
+
+#include "TypesUtils.h"
+#include "JavaHandle.h"
+#include "MCMessageHeader.h"
+#include "MCDefines.h"
+
+using namespace mailcore;
+
+#define nativeType MessageHeader
+#define javaType nativeType
+
+MC_JAVA_SYNTHESIZE_STRING(setMessageID, messageID)
+
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_MessageHeader_isMessageIDAutoGenerated
+ (JNIEnv * env, jobject obj)
+{
+ return (jboolean) MC_JAVA_NATIVE_INSTANCE->isMessageIDAutoGenerated();
+}
+
+MC_JAVA_SYNTHESIZE(Array, setReferences, references)
+MC_JAVA_SYNTHESIZE(Array, setInReplyTo, inReplyTo)
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_date
+ (JNIEnv * env, jobject obj)
+{
+ return timeToJavaDate(env, MC_JAVA_NATIVE_INSTANCE->date());
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setDate
+ (JNIEnv * env, jobject obj, jobject date)
+{
+ MC_JAVA_NATIVE_INSTANCE->setDate(javaDateToTime(env, date));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_receivedDate
+ (JNIEnv * env, jobject obj)
+{
+ return timeToJavaDate(env, MC_JAVA_NATIVE_INSTANCE->receivedDate());
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setReceivedDate
+ (JNIEnv * env, jobject obj, jobject date)
+{
+ MC_JAVA_NATIVE_INSTANCE->setReceivedDate(javaDateToTime(env, date));
+}
+
+MC_JAVA_SYNTHESIZE(Address, setSender, sender)
+MC_JAVA_SYNTHESIZE(Address, setFrom, from)
+MC_JAVA_SYNTHESIZE(Array, setTo, to)
+MC_JAVA_SYNTHESIZE(Array, setCc, cc)
+MC_JAVA_SYNTHESIZE(Array, setBcc, bcc)
+MC_JAVA_SYNTHESIZE(Array, setReplyTo, replyTo)
+MC_JAVA_SYNTHESIZE_STRING(setSubject, subject)
+MC_JAVA_SYNTHESIZE_STRING(setUserAgent, userAgent)
+
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setExtraHeader
+ (JNIEnv * env, jobject obj, jstring name, jstring value)
+{
+ MC_JAVA_NATIVE_INSTANCE->setExtraHeader(MC_FROM_JAVA(String, name), MC_FROM_JAVA(String, value));
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_removeExtraHeader
+ (JNIEnv * env, jobject obj, jstring name)
+{
+ MC_JAVA_NATIVE_INSTANCE->removeExtraHeader(MC_FROM_JAVA(String, name));
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageHeader_extraHeaderValueForName
+ (JNIEnv * env, jobject obj, jstring name)
+{
+ return (jstring) MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->extraHeaderValueForName(MC_FROM_JAVA(String, name)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_allExtraHeadersNames
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(allExtraHeadersNames);
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageHeader_extractedSubject
+ (JNIEnv * env, jobject obj)
+{
+ return (jstring) MC_JAVA_BRIDGE_GET(extractedSubject);
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageHeader_partialExtractedSubject
+ (JNIEnv * env, jobject obj)
+{
+ return (jstring) MC_JAVA_BRIDGE_GET(partialExtractedSubject);
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_importHeadersData
+ (JNIEnv * env, jobject obj, jbyteArray data)
+{
+ MC_JAVA_NATIVE_INSTANCE->importHeadersData(MC_FROM_JAVA(Data, data));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_replyHeader
+ (JNIEnv * env, jobject obj, jboolean replyAll, jobject excludedRecipients)
+{
+ return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->replyHeader(replyAll, MC_FROM_JAVA(Array, excludedRecipients)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_forwardHeader
+ (JNIEnv * env, jobject obj)
+{
+ return (jstring) MC_JAVA_BRIDGE_GET(forwardHeader);
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_MessageHeader.h b/src/java/native/com_libmailcore_MessageHeader.h
new file mode 100644
index 00000000..0a40c0c8
--- /dev/null
+++ b/src/java/native/com_libmailcore_MessageHeader.h
@@ -0,0 +1,309 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_MessageHeader */
+
+#ifndef _Included_com_libmailcore_MessageHeader
+#define _Included_com_libmailcore_MessageHeader
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: messageID
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageHeader_messageID
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: setMessageID
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setMessageID
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: isMessageIDAutoGenerated
+ * Signature: ()Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_MessageHeader_isMessageIDAutoGenerated
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: references
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_references
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: setReferences
+ * Signature: (Ljava/util/List;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setReferences
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: inReplyTo
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_inReplyTo
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: setInReplyTo
+ * Signature: (Ljava/util/List;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setInReplyTo
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: date
+ * Signature: ()Ljava/util/Date;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_date
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: setDate
+ * Signature: (Ljava/util/Date;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setDate
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: receivedDate
+ * Signature: ()Ljava/util/Date;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_receivedDate
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: setReceivedDate
+ * Signature: (Ljava/util/Date;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setReceivedDate
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: sender
+ * Signature: ()Lcom/libmailcore/Address;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_sender
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: setSender
+ * Signature: (Lcom/libmailcore/Address;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setSender
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: from
+ * Signature: ()Lcom/libmailcore/Address;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_from
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: setFrom
+ * Signature: (Lcom/libmailcore/Address;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setFrom
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: to
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_to
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: setTo
+ * Signature: (Ljava/util/List;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setTo
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: cc
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_cc
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: setCc
+ * Signature: (Ljava/util/List;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setCc
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: bcc
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_bcc
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: setBcc
+ * Signature: (Ljava/util/List;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setBcc
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: replyTo
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_replyTo
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: setReplyTo
+ * Signature: (Ljava/util/List;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setReplyTo
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: subject
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageHeader_subject
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: setSubject
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setSubject
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: userAgent
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageHeader_userAgent
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: setUserAgent
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setUserAgent
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: setExtraHeader
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setExtraHeader
+ (JNIEnv *, jobject, jstring, jstring);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: removeExtraHeader
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_removeExtraHeader
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: extraHeaderValueForName
+ * Signature: (Ljava/lang/String;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageHeader_extraHeaderValueForName
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: allExtraHeadersNames
+ * Signature: ()Ljava/util/List;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_allExtraHeadersNames
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: extractedSubject
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageHeader_extractedSubject
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: partialExtractedSubject
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageHeader_partialExtractedSubject
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: importHeadersData
+ * Signature: ([B)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_importHeadersData
+ (JNIEnv *, jobject, jbyteArray);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: replyHeader
+ * Signature: (ZLjava/util/List;)Lcom/libmailcore/MessageHeader;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_replyHeader
+ (JNIEnv *, jobject, jboolean, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: forwardHeader
+ * Signature: ()Lcom/libmailcore/MessageHeader;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_forwardHeader
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageHeader
+ * Method: setupNative
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setupNative
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_MessageParser.cpp b/src/java/native/com_libmailcore_MessageParser.cpp
new file mode 100644
index 00000000..8bdec7fd
--- /dev/null
+++ b/src/java/native/com_libmailcore_MessageParser.cpp
@@ -0,0 +1,70 @@
+#include "com_libmailcore_MessageParser.h"
+
+#include "TypesUtils.h"
+#include "JavaHandle.h"
+#include "MCMessageParser.h"
+#include "MCDefines.h"
+#include "JavaHTMLRendererTemplateCallback.h"
+
+using namespace mailcore;
+
+#define nativeType MessageParser
+#define javaType nativeType
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageParser_messageParserWithData
+ (JNIEnv * env, jclass cls, jbyteArray data)
+{
+ return MC_TO_JAVA(MessageParser::messageParserWithData(MC_FROM_JAVA(Data, data)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageParser_messageParserWithContentsOfFile
+ (JNIEnv * env, jclass cls, jstring filename)
+{
+ return MC_TO_JAVA(MessageParser::messageParserWithContentsOfFile(MC_FROM_JAVA(String, filename)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageParser_mainPart
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET(mainPart);
+}
+
+JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_MessageParser_data
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET_DATA(data);
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageParser_htmlRendering
+ (JNIEnv * env, jobject obj, jobject javaCallback)
+{
+ JavaHTMLRendererTemplateCallback * callback = NULL;
+ if (javaCallback != NULL) {
+ callback = new JavaHTMLRendererTemplateCallback(env, javaCallback);
+ }
+ jstring result = (jstring) MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->htmlRendering(callback));
+ if (callback != NULL) {
+ delete callback;
+ }
+ return result;
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageParser_htmlBodyRendering
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET_STRING(htmlBodyRendering);
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageParser_plainTextRendering
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET_STRING(plainTextRendering);
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageParser_plainTextBodyRendering
+ (JNIEnv * env, jobject obj, jboolean stripWhitespace)
+{
+ return (jstring) MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->plainTextBodyRendering((bool) stripWhitespace));
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_MessageParser.h b/src/java/native/com_libmailcore_MessageParser.h
new file mode 100644
index 00000000..ba6098eb
--- /dev/null
+++ b/src/java/native/com_libmailcore_MessageParser.h
@@ -0,0 +1,85 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_MessageParser */
+
+#ifndef _Included_com_libmailcore_MessageParser
+#define _Included_com_libmailcore_MessageParser
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_MessageParser
+ * Method: messageParserWithData
+ * Signature: ([B)Lcom/libmailcore/MessageParser;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageParser_messageParserWithData
+ (JNIEnv *, jclass, jbyteArray);
+
+/*
+ * Class: com_libmailcore_MessageParser
+ * Method: messageParserWithContentsOfFile
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/MessageParser;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageParser_messageParserWithContentsOfFile
+ (JNIEnv *, jclass, jstring);
+
+/*
+ * Class: com_libmailcore_MessageParser
+ * Method: mainPart
+ * Signature: ()Lcom/libmailcore/AbstractPart;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageParser_mainPart
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageParser
+ * Method: data
+ * Signature: ()[B
+ */
+JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_MessageParser_data
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageParser
+ * Method: htmlRendering
+ * Signature: (Lcom/libmailcore/HTMLRendererTemplateCallback;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageParser_htmlRendering
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_MessageParser
+ * Method: htmlBodyRendering
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageParser_htmlBodyRendering
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageParser
+ * Method: plainTextRendering
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageParser_plainTextRendering
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_MessageParser
+ * Method: plainTextBodyRendering
+ * Signature: (Z)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageParser_plainTextBodyRendering
+ (JNIEnv *, jobject, jboolean);
+
+/*
+ * Class: com_libmailcore_MessageParser
+ * Method: setupNative
+ * Signature: ([B)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_MessageParser_setupNative
+ (JNIEnv *, jobject, jbyteArray);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_MessagePart.cpp b/src/java/native/com_libmailcore_MessagePart.cpp
new file mode 100644
index 00000000..90a5e5b8
--- /dev/null
+++ b/src/java/native/com_libmailcore_MessagePart.cpp
@@ -0,0 +1,13 @@
+#include "com_libmailcore_MessageParser.h"
+
+#include "TypesUtils.h"
+#include "JavaHandle.h"
+#include "MCMessagePart.h"
+#include "MCDefines.h"
+
+using namespace mailcore;
+
+#define nativeType MessagePart
+#define javaType nativeType
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_MessagePart.h b/src/java/native/com_libmailcore_MessagePart.h
new file mode 100644
index 00000000..3067f720
--- /dev/null
+++ b/src/java/native/com_libmailcore_MessagePart.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_MessagePart */
+
+#ifndef _Included_com_libmailcore_MessagePart
+#define _Included_com_libmailcore_MessagePart
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_Multipart.cpp b/src/java/native/com_libmailcore_Multipart.cpp
new file mode 100644
index 00000000..5169e1fd
--- /dev/null
+++ b/src/java/native/com_libmailcore_Multipart.cpp
@@ -0,0 +1,13 @@
+#include "com_libmailcore_Multipart.h"
+
+#include "TypesUtils.h"
+#include "JavaHandle.h"
+#include "MCMultipart.h"
+#include "MCDefines.h"
+
+using namespace mailcore;
+
+#define nativeType Multipart
+#define javaType nativeType
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_Multipart.h b/src/java/native/com_libmailcore_Multipart.h
new file mode 100644
index 00000000..0ab64d29
--- /dev/null
+++ b/src/java/native/com_libmailcore_Multipart.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_Multipart */
+
+#ifndef _Included_com_libmailcore_Multipart
+#define _Included_com_libmailcore_Multipart
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_NativeObject.cpp b/src/java/native/com_libmailcore_NativeObject.cpp
new file mode 100644
index 00000000..643964ea
--- /dev/null
+++ b/src/java/native/com_libmailcore_NativeObject.cpp
@@ -0,0 +1,53 @@
+#include "com_libmailcore_NativeObject.h"
+
+#include "MCBaseTypes.h"
+#include "JavaHandle.h"
+#include "TypesUtils.h"
+
+using namespace mailcore;
+
+JNIEXPORT void JNICALL Java_com_libmailcore_NativeObject_initWithNative
+ (JNIEnv * env, jobject obj, jlong nativeHandle)
+{
+ setHandle(env, obj, (void *) nativeHandle);
+ Object * mcObject = (Object *) nativeHandle;
+ MC_SAFE_RETAIN(mcObject);
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_NativeObject_unsetupNative
+ (JNIEnv * env, jobject obj)
+{
+ Object * mcObj = (Object *) getHandle(env, obj);
+ MC_SAFE_RELEASE(mcObj);
+ setHandle(env, obj, NULL);
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_NativeObject_toString
+ (JNIEnv * env, jobject obj)
+{
+ Object * mcObj = (Object *) getHandle(env, obj);
+ if (mcObj == NULL) {
+ return (jstring) MC_TO_JAVA(MCSTR("<Uninitialized NativeObject>"));
+ }
+ else {
+ return (jstring) MC_TO_JAVA(mcObj->description());
+ }
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_NativeObject_clone
+ (JNIEnv * env, jobject obj)
+{
+ return MC_TO_JAVA(MC_FROM_JAVA(Object, obj)->copy()->autorelease());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_NativeObject_serializable
+ (JNIEnv * env, jobject obj)
+{
+ return MC_TO_JAVA(MC_FROM_JAVA(Object, obj)->serializable());
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_NativeObject_objectWithSerializable
+ (JNIEnv * env, jclass cls, jobject serializable)
+{
+ return MC_TO_JAVA(Object::objectWithSerializable(MC_FROM_JAVA(HashMap, serializable)));
+}
diff --git a/src/java/native/com_libmailcore_NativeObject.h b/src/java/native/com_libmailcore_NativeObject.h
new file mode 100644
index 00000000..ae3c7e38
--- /dev/null
+++ b/src/java/native/com_libmailcore_NativeObject.h
@@ -0,0 +1,61 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_NativeObject */
+
+#ifndef _Included_com_libmailcore_NativeObject
+#define _Included_com_libmailcore_NativeObject
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_NativeObject
+ * Method: initWithNative
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_NativeObject_initWithNative
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_libmailcore_NativeObject
+ * Method: unsetupNative
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_NativeObject_unsetupNative
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_NativeObject
+ * Method: toString
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_NativeObject_toString
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_NativeObject
+ * Method: clone
+ * Signature: ()Ljava/lang/Object;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_NativeObject_clone
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_NativeObject
+ * Method: serializable
+ * Signature: ()Ljava/util/Map;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_NativeObject_serializable
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_NativeObject
+ * Method: objectWithSerializable
+ * Signature: (Ljava/util/Map;)Lcom/libmailcore/NativeObject;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_NativeObject_objectWithSerializable
+ (JNIEnv *, jclass, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_Operation.cpp b/src/java/native/com_libmailcore_Operation.cpp
new file mode 100644
index 00000000..dfd8c64c
--- /dev/null
+++ b/src/java/native/com_libmailcore_Operation.cpp
@@ -0,0 +1,64 @@
+#include "com_libmailcore_Operation.h"
+
+#include "TypesUtils.h"
+#include "JavaHandle.h"
+#include "MCOperation.h"
+#include "MCDefines.h"
+
+using namespace mailcore;
+
+#define nativeType Operation
+#define javaType nativeType
+
+class JavaOperationCallback : public Object, public OperationCallback {
+public:
+ JavaOperationCallback(JNIEnv * env, jobject obj) {
+ mEnv = env;
+ mGlobalRef = env->NewGlobalRef(obj);
+ }
+
+ virtual ~JavaOperationCallback() {
+ if (mGlobalRef != NULL) {
+ mEnv->DeleteGlobalRef(mGlobalRef);
+ mGlobalRef = NULL;
+ }
+ }
+
+ virtual void operationFinished(Operation * op)
+ {
+ jclass cls = mEnv->GetObjectClass(mGlobalRef);
+ jmethodID mid = mEnv->GetMethodID(cls, "callCallback", "()V");
+ mEnv->CallVoidMethod(mGlobalRef, mid);
+
+ mEnv->DeleteGlobalRef(mGlobalRef);
+ mGlobalRef = NULL;
+
+ this->release();
+ }
+
+private:
+ JNIEnv * mEnv;
+ jobject mGlobalRef;
+};
+
+JNIEXPORT void JNICALL Java_com_libmailcore_Operation_cancel
+ (JNIEnv * env, jobject obj)
+{
+ MC_JAVA_NATIVE_INSTANCE->cancel();
+}
+
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_Operation_isCancelled
+ (JNIEnv * env, jobject obj)
+{
+ return MC_JAVA_BRIDGE_GET_SCALAR(jboolean, isCancelled);
+}
+
+JNIEXPORT void JNICALL Java_com_libmailcore_Operation_nativeStart
+ (JNIEnv * env, jobject obj)
+{
+ JavaOperationCallback * callback = new JavaOperationCallback(env, obj);
+ MC_JAVA_NATIVE_INSTANCE->setCallback(callback);
+ MC_JAVA_NATIVE_INSTANCE->start();
+}
+
+MC_JAVA_BRIDGE
diff --git a/src/java/native/com_libmailcore_Operation.h b/src/java/native/com_libmailcore_Operation.h
new file mode 100644
index 00000000..6bd26753
--- /dev/null
+++ b/src/java/native/com_libmailcore_Operation.h
@@ -0,0 +1,37 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_Operation */
+
+#ifndef _Included_com_libmailcore_Operation
+#define _Included_com_libmailcore_Operation
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_Operation
+ * Method: cancel
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_Operation_cancel
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_Operation
+ * Method: isCancelled
+ * Signature: ()Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_Operation_isCancelled
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_Operation
+ * Method: nativeStart
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_libmailcore_Operation_nativeStart
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_OperationCallback.h b/src/java/native/com_libmailcore_OperationCallback.h
new file mode 100644
index 00000000..50fc1d44
--- /dev/null
+++ b/src/java/native/com_libmailcore_OperationCallback.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_OperationCallback */
+
+#ifndef _Included_com_libmailcore_OperationCallback
+#define _Included_com_libmailcore_OperationCallback
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_OperationQueueListener.h b/src/java/native/com_libmailcore_OperationQueueListener.h
new file mode 100644
index 00000000..6e911d71
--- /dev/null
+++ b/src/java/native/com_libmailcore_OperationQueueListener.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_OperationQueueListener */
+
+#ifndef _Included_com_libmailcore_OperationQueueListener
+#define _Included_com_libmailcore_OperationQueueListener
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_PartType.h b/src/java/native/com_libmailcore_PartType.h
new file mode 100644
index 00000000..d6810d12
--- /dev/null
+++ b/src/java/native/com_libmailcore_PartType.h
@@ -0,0 +1,23 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_PartType */
+
+#ifndef _Included_com_libmailcore_PartType
+#define _Included_com_libmailcore_PartType
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef com_libmailcore_PartType_PartTypeSingle
+#define com_libmailcore_PartType_PartTypeSingle 0L
+#undef com_libmailcore_PartType_PartTypeMessage
+#define com_libmailcore_PartType_PartTypeMessage 1L
+#undef com_libmailcore_PartType_PartTypeMultipartMixed
+#define com_libmailcore_PartType_PartTypeMultipartMixed 2L
+#undef com_libmailcore_PartType_PartTypeMultipartRelated
+#define com_libmailcore_PartType_PartTypeMultipartRelated 3L
+#undef com_libmailcore_PartType_PartTypeMultipartAlternative
+#define com_libmailcore_PartType_PartTypeMultipartAlternative 4L
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/java/native/com_libmailcore_Range.cpp b/src/java/native/com_libmailcore_Range.cpp
new file mode 100644
index 00000000..a1d657b9
--- /dev/null
+++ b/src/java/native/com_libmailcore_Range.cpp
@@ -0,0 +1,67 @@
+#include "com_libmailcore_Range.h"
+
+#include "TypesUtils.h"
+#include "JavaHandle.h"
+#include "MCRange.h"
+#include "MCDefines.h"
+
+using namespace mailcore;
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Range_removeRange
+ (JNIEnv * env, jobject obj, jobject range)
+{
+ Range mcRange = rangeFromJava(env, obj);
+ Range otherRange = rangeFromJava(env, range);
+ return MC_TO_JAVA(RangeRemoveRange(mcRange, otherRange));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Range_union
+ (JNIEnv * env, jobject obj, jobject range)
+{
+ Range mcRange = rangeFromJava(env, obj);
+ Range otherRange = rangeFromJava(env, range);
+ return MC_TO_JAVA(RangeUnion(mcRange, otherRange));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Range_intersection
+ (JNIEnv * env, jobject obj, jobject range)
+{
+ Range mcRange = rangeFromJava(env, obj);
+ Range otherRange = rangeFromJava(env, range);
+ return rangeToJava(env, RangeIntersection(mcRange, otherRange));
+}
+
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_Range_hasIntersection
+ (JNIEnv * env, jobject obj, jobject range)
+{
+ Range mcRange = rangeFromJava(env, obj);
+ Range otherRange = rangeFromJava(env, range);
+ return (jboolean) RangeHasIntersection(mcRange, otherRange);
+}
+
+JNIEXPORT jlong JNICALL Java_com_libmailcore_Range_leftBound
+ (JNIEnv * env, jobject obj)
+{
+ Range mcRange = rangeFromJava(env, obj);
+ return (jlong) RangeLeftBound(mcRange);
+}
+
+JNIEXPORT jlong JNICALL Java_com_libmailcore_Range_rightBound
+ (JNIEnv * env, jobject obj)
+{
+ Range mcRange = rangeFromJava(env, obj);
+ return (jlong) RangeRightBound(mcRange);
+}
+
+JNIEXPORT jstring JNICALL Java_com_libmailcore_Range_toString
+ (JNIEnv * env, jobject obj)
+{
+ return (jstring) MC_TO_JAVA(RangeToString(rangeFromJava(env, obj)));
+}
+
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Range_rangeWithString
+ (JNIEnv * env, jclass cls, jstring rangeString)
+{
+ Range mcRange = RangeFromString(MC_FROM_JAVA(String, rangeString));
+ return rangeToJava(env, mcRange);
+}
diff --git a/src/java/native/com_libmailcore_Range.h b/src/java/native/com_libmailcore_Range.h
new file mode 100644
index 00000000..f5b03bb3
--- /dev/null
+++ b/src/java/native/com_libmailcore_Range.h
@@ -0,0 +1,77 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_libmailcore_Range */
+
+#ifndef _Included_com_libmailcore_Range
+#define _Included_com_libmailcore_Range
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_libmailcore_Range
+ * Method: removeRange
+ * Signature: (Lcom/libmailcore/Range;)Lcom/libmailcore/IndexSet;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Range_removeRange
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_Range
+ * Method: union
+ * Signature: (Lcom/libmailcore/Range;)Lcom/libmailcore/IndexSet;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Range_union
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_Range
+ * Method: intersection
+ * Signature: (Lcom/libmailcore/Range;)Lcom/libmailcore/Range;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Range_intersection
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_Range
+ * Method: hasIntersection
+ * Signature: (Lcom/libmailcore/Range;)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_libmailcore_Range_hasIntersection
+ (JNIEnv *, jobject, jobject);
+
+/*
+ * Class: com_libmailcore_Range
+ * Method: leftBound
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_Range_leftBound
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_Range
+ * Method: rightBound
+ * Signature: ()J
+ */
+JNIEXPORT jlong JNICALL Java_com_libmailcore_Range_rightBound
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_Range
+ * Method: toString
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_libmailcore_Range_toString
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_libmailcore_Range
+ * Method: rangeWithString
+ * Signature: (Ljava/lang/String;)Lcom/libmailcore/Range;
+ */
+JNIEXPORT jobject JNICALL Java_com_libmailcore_Range_rangeWithString
+ (JNIEnv *, jclass, jstring);
+
+#ifdef __cplusplus
+}
+#endif
+#endif