String resolvedNextFlowType = flowActivity.resolveIndirectReference(getNextFlowType());
if ( isMorphingFlow()) {
// HACK: Do not understand reason why an existing flow would morph to another existing flow
// which is what passing resolvedNextFlow seems to imply.
// or maybe this is to continue the chain of Flows ?? needs investigation
flowLauncher = new MorphFlowLauncher(resolvedNextFlowType, resolvedNextFlow, flowState.getFlowManagement());
} else if ( resolvedNextFlow != null) {
FlowState resolvedNextFlowState = flowState.getFlowManagement().getFlowState(resolvedNextFlow);
flowLauncher = new ContinueFlowLauncher(resolvedNextFlowState, flowState.getFlowManagement());
} else if ( resolvedNextFlowType != null) {
flowLauncher = new StartFromDefinitionFlowLauncher(resolvedNextFlowType, flowState.getFlowManagement());