aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java/com
diff options
context:
space:
mode:
authorGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2015-01-07 00:24:58 -0800
committerGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2015-01-07 00:24:58 -0800
commitb3713c0d84c3c00fbd5583cc2fe6913bfdcecd44 (patch)
tree516c562e9e9cd317f7afb9ed342bbda171239777 /src/java/com
parent090301ae3d2ff1dae80f340367461a3551f21c3a (diff)
Java wrapper for POP, NNTP and SMTP
Diffstat (limited to 'src/java/com')
-rw-r--r--src/java/com/libmailcore/NNTPFetchAllArticlesOperation.java5
-rw-r--r--src/java/com/libmailcore/NNTPFetchArticleOperation.java5
-rw-r--r--src/java/com/libmailcore/NNTPFetchHeaderOperation.java5
-rw-r--r--src/java/com/libmailcore/NNTPFetchOverviewOperation.java7
-rw-r--r--src/java/com/libmailcore/NNTPFetchServerTimeOperation.java7
-rw-r--r--src/java/com/libmailcore/NNTPGroupInfo.java16
-rw-r--r--src/java/com/libmailcore/NNTPListNewsgroupsOperation.java7
-rw-r--r--src/java/com/libmailcore/NNTPOperation.java24
-rw-r--r--src/java/com/libmailcore/NNTPSession.java80
-rw-r--r--src/java/com/libmailcore/POPFetchHeaderOperation.java5
-rw-r--r--src/java/com/libmailcore/POPFetchMessageOperation.java5
-rw-r--r--src/java/com/libmailcore/POPFetchMessagesOperation.java7
-rw-r--r--src/java/com/libmailcore/POPMessageInfo.java19
-rw-r--r--src/java/com/libmailcore/POPOperation.java24
-rw-r--r--src/java/com/libmailcore/POPSession.java80
-rw-r--r--src/java/com/libmailcore/SMTPOperation.java24
-rw-r--r--src/java/com/libmailcore/SMTPSession.java86
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();
+}