diff options
author | Hoa V. DINH <dinh.viet.hoa@gmail.com> | 2015-01-07 00:24:58 -0800 |
---|---|---|
committer | Hoa V. DINH <dinh.viet.hoa@gmail.com> | 2015-01-07 00:24:58 -0800 |
commit | b3713c0d84c3c00fbd5583cc2fe6913bfdcecd44 (patch) | |
tree | 516c562e9e9cd317f7afb9ed342bbda171239777 /src/java/com | |
parent | 090301ae3d2ff1dae80f340367461a3551f21c3a (diff) |
Java wrapper for POP, NNTP and SMTP
Diffstat (limited to 'src/java/com')
17 files changed, 406 insertions, 0 deletions
diff --git a/src/java/com/libmailcore/NNTPFetchAllArticlesOperation.java b/src/java/com/libmailcore/NNTPFetchAllArticlesOperation.java new file mode 100644 index 00000000..697af5bb --- /dev/null +++ b/src/java/com/libmailcore/NNTPFetchAllArticlesOperation.java @@ -0,0 +1,5 @@ +package com.libmailcore; + +public class NNTPFetchAllArticlesOperation extends NNTPOperation { + public native IndexSet articles(); +} diff --git a/src/java/com/libmailcore/NNTPFetchArticleOperation.java b/src/java/com/libmailcore/NNTPFetchArticleOperation.java new file mode 100644 index 00000000..56f147db --- /dev/null +++ b/src/java/com/libmailcore/NNTPFetchArticleOperation.java @@ -0,0 +1,5 @@ +package com.libmailcore; + +public class NNTPFetchArticleOperation extends NNTPOperation { + public native byte[] data(); +} diff --git a/src/java/com/libmailcore/NNTPFetchHeaderOperation.java b/src/java/com/libmailcore/NNTPFetchHeaderOperation.java new file mode 100644 index 00000000..f0c40f31 --- /dev/null +++ b/src/java/com/libmailcore/NNTPFetchHeaderOperation.java @@ -0,0 +1,5 @@ +package com.libmailcore; + +public class NNTPFetchHeaderOperation extends NNTPOperation { + public native MessageHeader header(); +} diff --git a/src/java/com/libmailcore/NNTPFetchOverviewOperation.java b/src/java/com/libmailcore/NNTPFetchOverviewOperation.java new file mode 100644 index 00000000..2707723e --- /dev/null +++ b/src/java/com/libmailcore/NNTPFetchOverviewOperation.java @@ -0,0 +1,7 @@ +package com.libmailcore; + +import java.util.List; + +public class NNTPFetchOverviewOperation extends NNTPOperation { + public native List<MessageHeader> articles(); +} diff --git a/src/java/com/libmailcore/NNTPFetchServerTimeOperation.java b/src/java/com/libmailcore/NNTPFetchServerTimeOperation.java new file mode 100644 index 00000000..72fd5b85 --- /dev/null +++ b/src/java/com/libmailcore/NNTPFetchServerTimeOperation.java @@ -0,0 +1,7 @@ +package com.libmailcore; + +import java.util.Date; + +public class NNTPFetchServerTimeOperation extends NNTPOperation { + public native Date time(); +} diff --git a/src/java/com/libmailcore/NNTPGroupInfo.java b/src/java/com/libmailcore/NNTPGroupInfo.java new file mode 100644 index 00000000..f5bbfccb --- /dev/null +++ b/src/java/com/libmailcore/NNTPGroupInfo.java @@ -0,0 +1,16 @@ +package com.libmailcore; + +public class NNTPGroupInfo extends NativeObject { + public NNTPGroupInfo() + { + setupNative(); + } + + public native void setName(String name); + public native String name(); + + public native void setMessageCount(long count); + public native long messageCount(); + + private native void setupNative(); +} diff --git a/src/java/com/libmailcore/NNTPListNewsgroupsOperation.java b/src/java/com/libmailcore/NNTPListNewsgroupsOperation.java new file mode 100644 index 00000000..f5bf4b97 --- /dev/null +++ b/src/java/com/libmailcore/NNTPListNewsgroupsOperation.java @@ -0,0 +1,7 @@ +package com.libmailcore; + +import java.util.List; + +public class NNTPListNewsgroupsOperation extends NNTPOperation { + public native List<NNTPGroupInfo> groups(); +} diff --git a/src/java/com/libmailcore/NNTPOperation.java b/src/java/com/libmailcore/NNTPOperation.java new file mode 100644 index 00000000..5787e03a --- /dev/null +++ b/src/java/com/libmailcore/NNTPOperation.java @@ -0,0 +1,24 @@ +package com.libmailcore; + +public class NNTPOperation extends Operation { + public MailException exception() { + if (errorCode() == ErrorCode.ErrorNone) { + return null; + } + return new MailException(errorCode()); + } + + private native int errorCode(); + + protected void callCallback() + { + if (callback != null) { + if (errorCode() == ErrorCode.ErrorNone) { + callback.succeeded(); + } + else { + callback.failed(exception()); + } + } + } +} diff --git a/src/java/com/libmailcore/NNTPSession.java b/src/java/com/libmailcore/NNTPSession.java new file mode 100644 index 00000000..eb7d3d2e --- /dev/null +++ b/src/java/com/libmailcore/NNTPSession.java @@ -0,0 +1,80 @@ +package com.libmailcore; + +public class NNTPSession extends NativeObject { + public NNTPSession() + { + setupNative(); + } + + protected void finalize() throws Throwable + { + finalizeNative(); + super.finalize(); + } + + public native void setHostname(String hostname); + public native String hostname(); + + public native void setPort(int port); + public native int port(); + + public native void setUsername(String username); + public native String username(); + + public native void setPassword(String password); + public native String password(); + + public native void setConnectionType(int connectionType); + public native int connectionType(); + + public native void setTimeout(long seconds); + public native long timeout(); + + public native void setCheckCertificateEnabled(boolean enabled); + public native boolean isCheckCertificateEnabled(); + + public void setConnectionLogger(ConnectionLogger logger) + { + connectionLogger = logger; + setupNativeConnectionLogger(); + } + + public ConnectionLogger connectionLogger() + { + return connectionLogger; + } + + public void setOperationQueueListener(OperationQueueListener listener) + { + operationQueueListener = listener; + setupNativeOperationQueueListener(); + } + + public OperationQueueListener operationQueueListener() + { + return operationQueueListener; + } + + public native boolean isOperationQueueRunning(); + public native void cancelAllOperations(); + + public native NNTPFetchAllArticlesOperation fetchAllArticlesOperation(String group); + public native NNTPFetchHeaderOperation fetchHeaderOperation(String group, int idx); + public native NNTPFetchArticleOperation fetchArticleOperation(String group, int idx); + public native NNTPFetchArticleOperation fetchArticleByMessageIDOperation(String group, String messageID); + public native NNTPFetchOverviewOperation fetchOverviewOperationWithIndexes(String group, IndexSet indexes); + public native NNTPFetchServerTimeOperation fetchServerDateOperation(); + public native NNTPListNewsgroupsOperation listAllNewsgroupsOperation(); + public native NNTPListNewsgroupsOperation listDefaultNewsgroupsOperation(); + public native NNTPOperation disconnectOperation(); + public native NNTPOperation checkAccountOperation(); + + private native void setupNative(); + private native void finalizeNative(); + + private ConnectionLogger connectionLogger; + private OperationQueueListener operationQueueListener; + + private native void setupNativeOperationQueueListener(); + private native void setupNativeConnectionLogger(); +} diff --git a/src/java/com/libmailcore/POPFetchHeaderOperation.java b/src/java/com/libmailcore/POPFetchHeaderOperation.java new file mode 100644 index 00000000..4750ca8e --- /dev/null +++ b/src/java/com/libmailcore/POPFetchHeaderOperation.java @@ -0,0 +1,5 @@ +package com.libmailcore; + +public class POPFetchHeaderOperation extends POPOperation { + public native MessageHeader header(); +} diff --git a/src/java/com/libmailcore/POPFetchMessageOperation.java b/src/java/com/libmailcore/POPFetchMessageOperation.java new file mode 100644 index 00000000..f0bbed6b --- /dev/null +++ b/src/java/com/libmailcore/POPFetchMessageOperation.java @@ -0,0 +1,5 @@ +package com.libmailcore; + +public class POPFetchMessageOperation extends POPOperation { + public native byte[] data(); +} diff --git a/src/java/com/libmailcore/POPFetchMessagesOperation.java b/src/java/com/libmailcore/POPFetchMessagesOperation.java new file mode 100644 index 00000000..4844db24 --- /dev/null +++ b/src/java/com/libmailcore/POPFetchMessagesOperation.java @@ -0,0 +1,7 @@ +package com.libmailcore; + +import java.util.List; + +public class POPFetchMessagesOperation extends POPOperation { + public native List<POPMessageInfo> messages(); +} diff --git a/src/java/com/libmailcore/POPMessageInfo.java b/src/java/com/libmailcore/POPMessageInfo.java new file mode 100644 index 00000000..cbb2aa31 --- /dev/null +++ b/src/java/com/libmailcore/POPMessageInfo.java @@ -0,0 +1,19 @@ +package com.libmailcore; + +public class POPMessageInfo extends NativeObject { + public POPMessageInfo() + { + setupNative(); + } + + public native void setIndex(int index); + public native int index(); + + public native void setSize(long size); + public native long size(); + + public native void setUid(String uid); + public native String uid(); + + private native void setupNative(); +} diff --git a/src/java/com/libmailcore/POPOperation.java b/src/java/com/libmailcore/POPOperation.java new file mode 100644 index 00000000..e349a0c8 --- /dev/null +++ b/src/java/com/libmailcore/POPOperation.java @@ -0,0 +1,24 @@ +package com.libmailcore; + +public class POPOperation extends Operation { + public MailException exception() { + if (errorCode() == ErrorCode.ErrorNone) { + return null; + } + return new MailException(errorCode()); + } + + private native int errorCode(); + + protected void callCallback() + { + if (callback != null) { + if (errorCode() == ErrorCode.ErrorNone) { + callback.succeeded(); + } + else { + callback.failed(exception()); + } + } + } +} diff --git a/src/java/com/libmailcore/POPSession.java b/src/java/com/libmailcore/POPSession.java new file mode 100644 index 00000000..b18c25e2 --- /dev/null +++ b/src/java/com/libmailcore/POPSession.java @@ -0,0 +1,80 @@ +package com.libmailcore; + +public class POPSession extends NativeObject { + public POPSession() + { + setupNative(); + } + + protected void finalize() throws Throwable + { + finalizeNative(); + super.finalize(); + } + + public native void setHostname(String hostname); + public native String hostname(); + + public native void setPort(int port); + public native int port(); + + public native void setUsername(String username); + public native String username(); + + public native void setPassword(String password); + public native String password(); + + public native void setAuthType(int authType); + public native int authType(); + + public native void setConnectionType(int connectionType); + public native int connectionType(); + + public native void setTimeout(long seconds); + public native long timeout(); + + public native void setCheckCertificateEnabled(boolean enabled); + public native boolean isCheckCertificateEnabled(); + + public void setConnectionLogger(ConnectionLogger logger) + { + connectionLogger = logger; + setupNativeConnectionLogger(); + } + + public ConnectionLogger connectionLogger() + { + return connectionLogger; + } + + public void setOperationQueueListener(OperationQueueListener listener) + { + operationQueueListener = listener; + setupNativeOperationQueueListener(); + } + + public OperationQueueListener operationQueueListener() + { + return operationQueueListener; + } + + public native boolean isOperationQueueRunning(); + public native void cancelAllOperations(); + + public native POPFetchMessagesOperation fetchMessagesOperation(); + public native POPFetchHeaderOperation fetchHeaderOperation(int index); + public native POPFetchMessageOperation fetchMessageOperation(int index); + public native POPOperation deleteMessagesOperation(IndexSet indexes); + public native POPOperation disconnectOperation(); + public native POPOperation checkAccountOperation(); + public native POPOperation noopOperation(); + + private native void setupNative(); + private native void finalizeNative(); + + private ConnectionLogger connectionLogger; + private OperationQueueListener operationQueueListener; + + private native void setupNativeOperationQueueListener(); + private native void setupNativeConnectionLogger(); +} diff --git a/src/java/com/libmailcore/SMTPOperation.java b/src/java/com/libmailcore/SMTPOperation.java new file mode 100644 index 00000000..16567b5f --- /dev/null +++ b/src/java/com/libmailcore/SMTPOperation.java @@ -0,0 +1,24 @@ +package com.libmailcore; + +public class SMTPOperation extends Operation { + public MailException exception() { + if (errorCode() == ErrorCode.ErrorNone) { + return null; + } + return new MailException(errorCode()); + } + + private native int errorCode(); + + protected void callCallback() + { + if (callback != null) { + if (errorCode() == ErrorCode.ErrorNone) { + callback.succeeded(); + } + else { + callback.failed(exception()); + } + } + } +} diff --git a/src/java/com/libmailcore/SMTPSession.java b/src/java/com/libmailcore/SMTPSession.java new file mode 100644 index 00000000..7eb8afe9 --- /dev/null +++ b/src/java/com/libmailcore/SMTPSession.java @@ -0,0 +1,86 @@ +package com.libmailcore; + +import java.util.List; + +public class SMTPSession extends NativeObject { + public SMTPSession() + { + setupNative(); + } + + protected void finalize() throws Throwable + { + finalizeNative(); + super.finalize(); + } + + public native void setHostname(String hostname); + public native String hostname(); + + public native void setPort(int port); + public native int port(); + + public native void setUsername(String username); + public native String username(); + + public native void setPassword(String password); + public native String password(); + + public native void setOAuth2Token(String token); + public native String OAuth2Token(); + + public native void setAuthType(int authType); + public native int authType(); + + public native void setConnectionType(int connectionType); + public native int connectionType(); + + public native void setTimeout(long seconds); + public native long timeout(); + + public native void setCheckCertificateEnabled(boolean enabled); + public native boolean isCheckCertificateEnabled(); + + public native void setUseHeloIPEnabled(boolean enabled); + public native boolean useHeloIPEnabled(); + + public void setConnectionLogger(ConnectionLogger logger) + { + connectionLogger = logger; + setupNativeConnectionLogger(); + } + + public ConnectionLogger connectionLogger() + { + return connectionLogger; + } + + public void setOperationQueueListener(OperationQueueListener listener) + { + operationQueueListener = listener; + setupNativeOperationQueueListener(); + } + + public OperationQueueListener operationQueueListener() + { + return operationQueueListener; + } + + public native boolean isOperationQueueRunning(); + public native void cancelAllOperations(); + + public native SMTPOperation loginOperation(); + public native SMTPOperation sendMessageOperation(byte[] messageData); + public native SMTPOperation sendMessageOperation(Address from, List<Address> recipients, byte[] messageData); + public native SMTPOperation checkAccountOperation(Address from); + public native SMTPOperation noopOperation(); + + private native void setupNative(); + private native void finalizeNative(); + + private ConnectionLogger connectionLogger; + private OperationQueueListener operationQueueListener; + + private native void setupNativeOperationQueueListener(); + private native void setupNativeConnectionLogger(); +} |