formatting

This commit is contained in:
Mark Fisher
2011-05-05 16:24:24 -04:00
parent f96a577cb2
commit 45a1d4eed3

View File

@@ -49,9 +49,11 @@ import com.sun.mail.imap.IMAPMessage;
* @author Oleg Zhurakousky
*/
public class ImapMailReceiver extends AbstractMailReceiver {
private volatile boolean shouldMarkMessagesAsRead = true;;
private volatile boolean shouldMarkMessagesAsRead = true;
private final MessageCountListener messageCountListener = new SimpleMessageCountListener();
private volatile long connectionPingInterval = 10000;
@@ -71,23 +73,26 @@ public class ImapMailReceiver extends AbstractMailReceiver {
}
}
/**
* Check if messages should be marked as read
* Check if messages should be marked as read.
*/
public Boolean isShouldMarkMessagesAsRead() {
return shouldMarkMessagesAsRead;
}
/**
* Specify is messages should be marked as read
* Specify if messages should be marked as read.
*/
public void setShouldMarkMessagesAsRead(Boolean shouldMarkMessagesAsRead) {
this.shouldMarkMessagesAsRead = shouldMarkMessagesAsRead;
}
/**
* This method is unique to the IMAP receiver and only works if IMAP IDLE
* is supported (see RFC 2177 for more detail).
*/
public void waitForNewMessages() throws MessagingException{
public void waitForNewMessages() throws MessagingException {
this.openFolder();
Assert.state(this.getFolder() instanceof IMAPFolder,
"folder is not an instance of [" + IMAPFolder.class.getName() + "]");
@@ -129,8 +134,8 @@ public class ImapMailReceiver extends AbstractMailReceiver {
}
throw new MessagingException("Folder is closed");
}
private SearchTerm compileSearchTerms(Flags supportedFlags){
private SearchTerm compileSearchTerms(Flags supportedFlags) {
SearchTerm searchTerm = null;
boolean recentFlagSupported = false;
if (supportedFlags != null) {
@@ -166,32 +171,59 @@ public class ImapMailReceiver extends AbstractMailReceiver {
}
}
}
if (!recentFlagSupported){
if (!recentFlagSupported) {
NotTerm notFlagged = null;
if (this.getFolder().getPermanentFlags().contains(Flags.Flag.USER)){
logger.debug("This email server does not support RECENT flag but it does support " +
"USER flags which will be used to prevent duplicates during email fetch");
if (this.getFolder().getPermanentFlags().contains(Flags.Flag.USER)) {
logger.debug("This email server does not support RECENT flag, but it does support " +
"USER flags which will be used to prevent duplicates during email fetch.");
Flags siFlags = new Flags();
siFlags.add(SI_USER_FLAG);
notFlagged = new NotTerm(new FlagTerm(siFlags, true));
}
else {
logger.debug("This email server does not support RECENT or USER flags. " +
"System flag 'Flag.FLAGGED' will be used to prevent duplicates during email fetch");
"System flag 'Flag.FLAGGED' will be used to prevent duplicates during email fetch.");
notFlagged = new NotTerm(new FlagTerm(new Flags(Flags.Flag.FLAGGED), true));
}
if (searchTerm == null){
if (searchTerm == null) {
searchTerm = notFlagged;
}
else {
searchTerm = new AndTerm(searchTerm, notFlagged);
}
}
return searchTerm;
}
@Override
protected void onInit() throws Exception {
super.onInit();
this.initialized = true;
TaskScheduler scheduler = this.getTaskScheduler();
if (scheduler != null) {
scheduler.scheduleAtFixedRate(new Runnable() {
public void run() {
try {
Store store = getStore();
if (initialized && store != null) {
store.isConnected();
}
}
catch (Throwable ignore) {
}
}
}, connectionPingInterval);
}
}
protected void setAdditionalFlags(Message message) throws MessagingException {
super.setAdditionalFlags(message);
if (this.shouldMarkMessagesAsRead) {
message.setFlag(Flag.SEEN, true);
}
}
/**
* Callback used for handling the event-driven idle response.
@@ -211,37 +243,5 @@ public class ImapMailReceiver extends AbstractMailReceiver {
}
}
}
@Override
protected void onInit() throws Exception {
super.onInit();
// if (this.shouldMarkMessagesAsRead){
// this.folderOpenMode = Folder.READ_WRITE;
// }
this.initialized = true;
TaskScheduler scheduler = this.getTaskScheduler();
if (scheduler != null){
scheduler.scheduleAtFixedRate(new Runnable() {
public void run() {
try {
Store store = getStore();
if (initialized && store != null){
store.isConnected();
}
}
catch (Throwable ignore) {
}
}
}, connectionPingInterval);
}
}
/**
*
*/
protected void setAdditionalFlags(Message message) throws MessagingException{
super.setAdditionalFlags(message);
if (this.shouldMarkMessagesAsRead) {
message.setFlag(Flag.SEEN, true);
}
}
}