Refactored UnlockWorkflow

Replaced protected state methods (scheduled, etc.) with lambdas in the constructor
Replaced try-multi-catch with if-instanceof in onFailed-lambda
This commit is contained in:
JaniruTEC 2020-10-22 18:32:15 +02:00
parent 022ba81f2f
commit 253abd4930

View File

@ -73,6 +73,20 @@ public class UnlockWorkflow extends Task<Boolean> {
this.successScene = successScene;
this.invalidMountPointScene = invalidMountPointScene;
this.errorComponent = errorComponent;
setOnScheduled(event -> vault.setState(VaultState.PROCESSING));
setOnSucceeded(event -> vault.setState(VaultState.UNLOCKED));
setOnCancelled(event -> vault.setState(VaultState.LOCKED));
setOnFailed(event -> {
vault.setState(VaultState.LOCKED);
Throwable throwable = event.getSource().getException();
if (throwable instanceof InvalidMountPointException) {
handleInvalidMountPoint((InvalidMountPointException) throwable);
} else {
handleGenericError(throwable);
}
});
}
@Override
@ -85,12 +99,6 @@ public class UnlockWorkflow extends Task<Boolean> {
cancel(false); // set Tasks state to cancelled
return false;
}
} catch (InvalidMountPointException e) {
handleInvalidMountPoint(e);
throw e; // rethrow to trigger correct exception handling in Task
} catch (Exception e) {
handleGenericError(e);
throw e; // rethrow to trigger correct exception handling in Task
} finally {
wipePassword(password.get());
wipePassword(savedPassword.orElse(null));
@ -216,25 +224,4 @@ public class UnlockWorkflow extends Task<Boolean> {
Arrays.fill(pw, ' ');
}
}
@Override
protected void scheduled() {
vault.setState(VaultState.PROCESSING);
}
@Override
protected void succeeded() {
vault.setState(VaultState.UNLOCKED);
}
@Override
protected void failed() {
vault.setState(VaultState.LOCKED);
}
@Override
protected void cancelled() {
vault.setState(VaultState.LOCKED);
}
}