/**
* @see org.amplafi.flow.FlowActivity#activate(FlowStepDirection)
*/
public boolean activate(FlowStepDirection flowStepDirection) {
// Check for missing required parameters
FlowValidationResult activationValidationResult = getFlowValidationResult(FlowActivityPhase.activate, flowStepDirection);
FlowValidationException.valid(activationValidationResult);
if ( flowStepDirection == FlowStepDirection.backward) {
// skip back only through invisible steps.
return isInvisible();
} else if (!isInvisible() ) {
// auto complete only happens when advancing (otherwise can never get back to such FAs)
// additional work needed here -- FSAUTO_COMPLETE should be consumed.
boolean autoComplete = isTrue(FSAUTO_COMPLETE);
if (autoComplete) {
FlowValidationResult flowValidationResult = getFlowValidationResult(FlowActivityPhase.advance, flowStepDirection);
return flowValidationResult.isValid();
}
return false;
} else {
return true;
}