1
0
mirror of https://github.com/moparisthebest/k-9 synced 2024-11-27 11:42:16 -05:00

Use switch statement inside calculateDefaultDeletePolicy()

With this - at least in theory  - the JIT compiler can produce better code
than is possible with the static HashMap.
This commit is contained in:
cketti 2015-03-16 13:26:13 +01:00
parent f733cc38ba
commit 5f14e3b4e1

View File

@ -5,9 +5,6 @@ import com.fsck.k9.Account.DeletePolicy;
import com.fsck.k9.mail.ConnectionSecurity; import com.fsck.k9.mail.ConnectionSecurity;
import com.fsck.k9.mail.ServerSettings.Type; import com.fsck.k9.mail.ServerSettings.Type;
import java.util.HashMap;
import java.util.Map;
/** /**
* Deals with logic surrounding account creation. * Deals with logic surrounding account creation.
@ -16,16 +13,23 @@ import java.util.Map;
*/ */
public class AccountCreator { public class AccountCreator {
private static Map<Type, DeletePolicy> defaults = new HashMap<Type, DeletePolicy>(); public static DeletePolicy calculateDefaultDeletePolicy(Type type) {
switch (type) {
static { case IMAP: {
defaults.put(Type.IMAP, DeletePolicy.ON_DELETE); return DeletePolicy.ON_DELETE;
defaults.put(Type.POP3, DeletePolicy.NEVER); }
defaults.put(Type.WebDAV, DeletePolicy.ON_DELETE); case POP3: {
return DeletePolicy.NEVER;
}
case WebDAV: {
return DeletePolicy.ON_DELETE;
}
case SMTP: {
throw new IllegalStateException("Delete policy doesn't apply to SMTP");
}
} }
public static DeletePolicy calculateDefaultDeletePolicy(Type type) { throw new AssertionError("Unhandled case: " + type);
return defaults.get(type);
} }
public static int getDefaultPort(ConnectionSecurity securityType, Type storeType) { public static int getDefaultPort(ConnectionSecurity securityType, Type storeType) {