aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java/com/libmailcore/IMAPSession.java
blob: f3e305a448a5af68c0bb24fdab0a3a3ae7c27509 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
package com.libmailcore;

import java.util.List;

public class IMAPSession extends NativeObject {
    public IMAPSession()
    {
        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 setDefaultNamespace(IMAPNamespace ns);
    public native IMAPNamespace defaultNamespace();
    
    public native void setAllowsFolderConcurrentAccessEnabled(boolean enabled);
    public native boolean allowsFolderConcurrentAccessEnabled();
    
    public native void setMaximumConnections(int maxConnections);
    public native int maximumConnections();
    
    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 IMAPIdentity serverIdentity();
    public native IMAPIdentity clientIdentity();
    public native String gmailUserDisplayName();
    
    public native IMAPFolderInfoOperation folderInfoOperation(String folder);
    public native IMAPFolderStatusOperation folderStatusOperation(String folder);
    
    public native IMAPFetchFoldersOperation fetchSubscribedFoldersOperation();
    public native IMAPFetchFoldersOperation fetchAllFoldersOperation();
    
    public native IMAPOperation renameFolderOperation(String folder, String otherName);
    public native IMAPOperation deleteFolderOperation(String folder);
    public native IMAPOperation createFolderOperation(String folder);
    
    public native IMAPOperation subscribeFolderOperation(String folder);
    public native IMAPOperation unsubscribeFolderOperation(String folder);
    
    public native IMAPAppendMessageOperation appendMessageOperation(String folder, byte[] messageData, int messageFlags, List<String> customFlags);
    public IMAPAppendMessageOperation appendMessageOperation(String folder, byte[] messageData, int messageFlags)
    {
        return appendMessageOperation(folder, messageData, messageFlags, null);
    }
    
    public native IMAPCopyMessagesOperation copyMessagesOperation(String folder, IndexSet uids, String destFolder);
    
    public native IMAPOperation expungeOperation(String folder);
    
    public native IMAPFetchMessagesOperation fetchMessagesByUIDOperation(String folder, int requestKind, IndexSet indexes);
    public native  IMAPFetchMessagesOperation fetchMessagesByNumberOperation(String folder, int requestKind, IndexSet indexes);
    public native  IMAPFetchMessagesOperation syncMessagesByUIDOperation(String folder, int requestKind, IndexSet indexes, long modSeq);
    
    public native IMAPFetchContentOperation fetchMessageByUIDOperation(String folder, long uid, boolean urgent);
    public IMAPFetchContentOperation fetchMessageByUIDOperation(String folder, long uid)
    {
        return fetchMessageByUIDOperation(folder, uid, false);
    }
    
    public native IMAPFetchContentOperation fetchMessageAttachmentByUIDOperation(String folder, long uid, String partID,
                                                                                 int encoding, boolean urgent);
    public IMAPFetchContentOperation fetchMessageAttachmentByUIDOperation(String folder, long uid, String partID,
                                                                          int encoding)
    {
        return fetchMessageAttachmentByUIDOperation(folder, uid, partID, encoding, false);
    }
    
    public native IMAPFetchContentOperation fetchMessageByNumberOperation(String folder, long number, boolean urgent);
    public IMAPFetchContentOperation fetchMessageByNumberOperation(String folder, long number)
    {
        return fetchMessageByNumberOperation(folder, number, false);
    }
    
    public native IMAPFetchContentOperation fetchMessageAttachmentByNumberOperation(String folder, long number, String partID,
                                                                                    int encoding, boolean urgent);
    public IMAPFetchContentOperation fetchMessageAttachmentByNumberOperation(String folder, long number, String partID,
                                                                                    int encoding)
    {
        return fetchMessageAttachmentByNumberOperation(folder, number, partID, encoding, false);
    }
    
    public native IMAPFetchParsedContentOperation fetchParsedMessageByUIDOperation(String folder, long uid, boolean urgent);
    public IMAPFetchParsedContentOperation fetchParsedMessageByUIDOperation(String folder, long uid)
    {
        return fetchParsedMessageByUIDOperation(folder, uid, false);
    }
    
    public native IMAPFetchParsedContentOperation fetchParsedMessageByNumberOperation(String folder, long number, boolean urgent);
    public IMAPFetchParsedContentOperation fetchParsedMessageByNumberOperation(String folder, long number)
    {
        return fetchParsedMessageByNumberOperation(folder, number, false);
    }

    public native IMAPOperation storeFlagsByUIDOperation(String folder, IndexSet uids, int kind, int flags, List<String> customFlags);
    public IMAPOperation storeFlagsByUIDOperation(String folder, IndexSet uids, int kind, int flags)
    {
        return storeFlagsByUIDOperation(folder, uids, kind, flags, null);
    }
    public native IMAPOperation storeFlagsByNumberOperation(String folder, IndexSet numbers, int kind, int flags, List<String> customFlags);
    public IMAPOperation storeFlagsByNumberOperation(String folder, IndexSet numbers, int kind, int flags)
    {
        return storeFlagsByNumberOperation(folder, numbers, kind, flags, null);
    }
    public native IMAPOperation storeLabelsByUIDOperation(String folder, IndexSet uids, int kind, List<String> labels);
    public native IMAPOperation storeLabelsByNumberOperation(String folder, IndexSet numbers, int kind, List<String> labels);
    
    public native IMAPSearchOperation searchOperation(String folder, int kind, String searchString);
    public native IMAPSearchOperation searchOperation(String folder, IMAPSearchExpression expression);
    
    public native IMAPIdleOperation idleOperation(String folder, long lastKnownUID);
    
    public native IMAPFetchNamespaceOperation fetchNamespaceOperation();
    
    public native IMAPIdentityOperation identityOperation(IMAPIdentity identity);
    
    public native IMAPOperation connectOperation();
    public native IMAPOperation checkAccountOperation();
    public native IMAPOperation disconnectOperation();
    
    public native IMAPCapabilityOperation capabilityOperation();
    public native IMAPQuotaOperation quotaOperation();
    
    public native IMAPOperation noopOperation();
    
    public native IMAPMessageRenderingOperation htmlRenderingOperation(IMAPMessage message, String folder);
    public native IMAPMessageRenderingOperation htmlBodyRenderingOperation(IMAPMessage message, String folder);
    public native IMAPMessageRenderingOperation plainTextRenderingOperation(IMAPMessage message, String folder);
    public native IMAPMessageRenderingOperation plainTextBodyRenderingOperation(IMAPMessage message, String folder, boolean stripWhitespace);
    
    private native void setupNative();
    private native void finalizeNative();
    
    private ConnectionLogger connectionLogger;
    private OperationQueueListener operationQueueListener;
    
    private native void setupNativeOperationQueueListener();
    private native void setupNativeConnectionLogger();
}