this.errorMessages.clear();
this.infoMessages.clear();
UsecaseResolver resolver = null;
Usecase usecase = null;
this.result = SUCCESS;
try {
if (!isUsecaseAuthorized(webappUrl, usecaseName)) {
this.errorMessages.add(new UsecaseMessage("Authorization of usecase " + usecaseName
+ " failed."));
this.result = AUTHORIZATION_FAILED;
return;
}
resolver = (UsecaseResolver) this.manager.lookup(UsecaseResolver.ROLE);
usecase = resolver.resolve(webappUrl, usecaseName);
Session testSession = getTestSession();
if (testSession != null) {
usecase.setTestSession(testSession);
}
usecase.getParameterNames(); // initialize usecase parameters to enable overriding
passParameters(usecase, parameters);
usecase.checkPreconditions();
if (succeeded(PRECONDITIONS_FAILED, usecase)) {
usecase.lockInvolvedObjects();
usecase.checkExecutionConditions();
if (succeeded(EXECUTION_CONDITIONS_FAILED, usecase)) {
usecase.execute();
boolean success = succeeded(EXECUTION_FAILED, usecase);
this.targetUrl = usecase.getTargetURL(success);
if (success) {
usecase.checkPostconditions();
succeeded(POSTCONDITIONS_FAILED, usecase);
}
}
}