Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhanced Switch Statements #14587

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 6 additions & 13 deletions app/src/androidTest/java/com/owncloud/android/AbstractIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -254,19 +254,12 @@ protected static File getDummyFile(String name) throws IOException {
file.mkdirs();
return file;
} else {
switch (name) {
case "empty.txt":
return createFile("empty.txt", 0);

case "nonEmpty.txt":
return createFile("nonEmpty.txt", 100);

case "chunkedFile.txt":
return createFile("chunkedFile.txt", 500000);

default:
return createFile(name, 0);
}
return switch (name) {
case "empty.txt" -> createFile("empty.txt", 0);
case "nonEmpty.txt" -> createFile("nonEmpty.txt", 100);
case "chunkedFile.txt" -> createFile("chunkedFile.txt", 500000);
default -> createFile(name, 0);
};
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,22 +138,13 @@ private ExternalLink createExternalLinkFromCursor(Cursor cursor) {
ProviderMeta.ProviderTableMeta.EXTERNAL_LINKS_ICON_URL));
String language = cursor.getString(cursor.getColumnIndexOrThrow(
ProviderMeta.ProviderTableMeta.EXTERNAL_LINKS_LANGUAGE));
ExternalLinkType type;
switch (cursor.getString(cursor.getColumnIndexOrThrow(
ProviderMeta.ProviderTableMeta.EXTERNAL_LINKS_TYPE))) {
case "link":
type = ExternalLinkType.LINK;
break;
case "settings":
type = ExternalLinkType.SETTINGS;
break;
case "quota":
type = ExternalLinkType.QUOTA;
break;
default:
type = ExternalLinkType.UNKNOWN;
break;
}
ExternalLinkType type = switch (cursor.getString(cursor.getColumnIndexOrThrow(
ProviderMeta.ProviderTableMeta.EXTERNAL_LINKS_TYPE))) {
case "link" -> ExternalLinkType.LINK;
case "settings" -> ExternalLinkType.SETTINGS;
case "quota" -> ExternalLinkType.QUOTA;
default -> ExternalLinkType.UNKNOWN;
};
String name = cursor.getString(cursor.getColumnIndexOrThrow(ProviderMeta.ProviderTableMeta.EXTERNAL_LINKS_NAME));
String url = cursor.getString(cursor.getColumnIndexOrThrow(ProviderMeta.ProviderTableMeta.EXTERNAL_LINKS_URL));
boolean redirect = cursor.getInt(
Expand Down
166 changes: 57 additions & 109 deletions app/src/main/java/com/owncloud/android/db/UploadResult.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,119 +50,67 @@ public int getValue() {
}

public static UploadResult fromValue(int value) {
switch (value) {
case -1:
return UNKNOWN;
case 0:
return UPLOADED;
case 1:
return NETWORK_CONNECTION;
case 2:
return CREDENTIAL_ERROR;
case 3:
return FOLDER_ERROR;
case 4:
return CONFLICT_ERROR;
case 5:
return FILE_ERROR;
case 6:
return PRIVILEGES_ERROR;
case 7:
return CANCELLED;
case 8:
return FILE_NOT_FOUND;
case 9:
return DELAYED_FOR_WIFI;
case 10:
return SERVICE_INTERRUPTED;
case 11:
return DELAYED_FOR_CHARGING;
case 12:
return MAINTENANCE_MODE;
case 13:
return LOCK_FAILED;
case 14:
return DELAYED_IN_POWER_SAVE_MODE;
case 15:
return SSL_RECOVERABLE_PEER_UNVERIFIED;
case 16:
return VIRUS_DETECTED;
case 17:
return LOCAL_STORAGE_FULL;
case 18:
return OLD_ANDROID_API;
case 19:
return SYNC_CONFLICT;
case 20:
return CANNOT_CREATE_FILE;
case 21:
return LOCAL_STORAGE_NOT_COPIED;
case 22:
return QUOTA_EXCEEDED;
case 23:
return SAME_FILE_CONFLICT;
}
return UNKNOWN;
return switch (value) {
case -1 -> UNKNOWN;
case 0 -> UPLOADED;
case 1 -> NETWORK_CONNECTION;
case 2 -> CREDENTIAL_ERROR;
case 3 -> FOLDER_ERROR;
case 4 -> CONFLICT_ERROR;
case 5 -> FILE_ERROR;
case 6 -> PRIVILEGES_ERROR;
case 7 -> CANCELLED;
case 8 -> FILE_NOT_FOUND;
case 9 -> DELAYED_FOR_WIFI;
case 10 -> SERVICE_INTERRUPTED;
case 11 -> DELAYED_FOR_CHARGING;
case 12 -> MAINTENANCE_MODE;
case 13 -> LOCK_FAILED;
case 14 -> DELAYED_IN_POWER_SAVE_MODE;
case 15 -> SSL_RECOVERABLE_PEER_UNVERIFIED;
case 16 -> VIRUS_DETECTED;
case 17 -> LOCAL_STORAGE_FULL;
case 18 -> OLD_ANDROID_API;
case 19 -> SYNC_CONFLICT;
case 20 -> CANNOT_CREATE_FILE;
case 21 -> LOCAL_STORAGE_NOT_COPIED;
case 22 -> QUOTA_EXCEEDED;
case 23 -> SAME_FILE_CONFLICT;
default -> UNKNOWN;
};
}

public static UploadResult fromOperationResult(RemoteOperationResult result) {
// messy :(
switch (result.getCode()) {
case OK:
return UPLOADED;
case NO_NETWORK_CONNECTION:
case HOST_NOT_AVAILABLE:
case TIMEOUT:
case WRONG_CONNECTION:
case INCORRECT_ADDRESS:
case SSL_ERROR:
return NETWORK_CONNECTION;
case ACCOUNT_EXCEPTION:
case UNAUTHORIZED:
return CREDENTIAL_ERROR;
case FILE_NOT_FOUND:
return FOLDER_ERROR;
case LOCAL_FILE_NOT_FOUND:
return FILE_NOT_FOUND;
case CONFLICT:
return CONFLICT_ERROR;
case LOCAL_STORAGE_NOT_COPIED:
return LOCAL_STORAGE_NOT_COPIED;
case LOCAL_STORAGE_FULL:
return LOCAL_STORAGE_FULL;
case OLD_ANDROID_API:
return OLD_ANDROID_API;
case SYNC_CONFLICT:
return SYNC_CONFLICT;
case FORBIDDEN:
return PRIVILEGES_ERROR;
case CANCELLED:
return CANCELLED;
case DELAYED_FOR_WIFI:
return DELAYED_FOR_WIFI;
case DELAYED_FOR_CHARGING:
return DELAYED_FOR_CHARGING;
case DELAYED_IN_POWER_SAVE_MODE:
return DELAYED_IN_POWER_SAVE_MODE;
case MAINTENANCE_MODE:
return MAINTENANCE_MODE;
case SSL_RECOVERABLE_PEER_UNVERIFIED:
return SSL_RECOVERABLE_PEER_UNVERIFIED;
case UNKNOWN_ERROR:
return switch (result.getCode()) {
case OK -> UPLOADED;
case NO_NETWORK_CONNECTION, HOST_NOT_AVAILABLE, TIMEOUT, WRONG_CONNECTION, INCORRECT_ADDRESS, SSL_ERROR ->
NETWORK_CONNECTION;
case ACCOUNT_EXCEPTION, UNAUTHORIZED -> CREDENTIAL_ERROR;
case FILE_NOT_FOUND -> FOLDER_ERROR;
case LOCAL_FILE_NOT_FOUND -> FILE_NOT_FOUND;
case CONFLICT -> CONFLICT_ERROR;
case LOCAL_STORAGE_NOT_COPIED -> LOCAL_STORAGE_NOT_COPIED;
case LOCAL_STORAGE_FULL -> LOCAL_STORAGE_FULL;
case OLD_ANDROID_API -> OLD_ANDROID_API;
case SYNC_CONFLICT -> SYNC_CONFLICT;
case FORBIDDEN -> PRIVILEGES_ERROR;
case CANCELLED -> CANCELLED;
case DELAYED_FOR_WIFI -> DELAYED_FOR_WIFI;
case DELAYED_FOR_CHARGING -> DELAYED_FOR_CHARGING;
case DELAYED_IN_POWER_SAVE_MODE -> DELAYED_IN_POWER_SAVE_MODE;
case MAINTENANCE_MODE -> MAINTENANCE_MODE;
case SSL_RECOVERABLE_PEER_UNVERIFIED -> SSL_RECOVERABLE_PEER_UNVERIFIED;
case UNKNOWN_ERROR -> {
if (result.getException() instanceof java.io.FileNotFoundException) {
return FILE_ERROR;
yield FILE_ERROR;
}
return UNKNOWN;
case LOCK_FAILED:
return LOCK_FAILED;
case VIRUS_DETECTED:
return VIRUS_DETECTED;
case CANNOT_CREATE_FILE:
return CANNOT_CREATE_FILE;
case QUOTA_EXCEEDED:
return QUOTA_EXCEEDED;
default:
return UNKNOWN;
}
yield UNKNOWN;
}
case LOCK_FAILED -> LOCK_FAILED;
case VIRUS_DETECTED -> VIRUS_DETECTED;
case CANNOT_CREATE_FILE -> CANNOT_CREATE_FILE;
case QUOTA_EXCEEDED -> QUOTA_EXCEEDED;
default -> UNKNOWN;
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -119,18 +119,13 @@ protected RemoteOperationResult run(OwnCloudClient client) {
}

private String authenticationMethodToString(AuthenticationMethod value) {
switch (value) {
case NONE:
return "NONE";
case BASIC_HTTP_AUTH:
return "BASIC_HTTP_AUTH";
case BEARER_TOKEN:
return "BEARER_TOKEN";
case SAML_WEB_SSO:
return "SAML_WEB_SSO";
default:
return "UNKNOWN";
}
return switch (value) {
case NONE -> "NONE";
case BASIC_HTTP_AUTH -> "BASIC_HTTP_AUTH";
case BEARER_TOKEN -> "BEARER_TOKEN";
case SAML_WEB_SSO -> "SAML_WEB_SSO";
default -> "UNKNOWN";
};
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -286,16 +286,14 @@ private boolean hasServerChange(Document document) throws FileNotFoundException
OCFile ocFile = document.getFile();
RemoteOperationResult result = new CheckEtagRemoteOperation(ocFile.getRemotePath(), ocFile.getEtag())
.execute(document.getUser(), context);
switch (result.getCode()) {
case ETAG_CHANGED:
return true;
case ETAG_UNCHANGED:
return false;
case FILE_NOT_FOUND:
default:
return switch (result.getCode()) {
case ETAG_CHANGED -> true;
case ETAG_UNCHANGED -> false;
default -> {
Log_OC.e(TAG, result.toString());
throw new FileNotFoundException("Error synchronizing file: " + ocFile.getFileName());
}
}
};
}

/**
Expand Down
Loading
Loading