Class FlowModelFlowBuilder
java.lang.Object
org.springframework.webflow.engine.builder.support.AbstractFlowBuilder
net.shibboleth.idp.profile.spring.factory.FlowModelFlowBuilder
- All Implemented Interfaces:
FlowBuilder
This code is extended from
FlowModelFlowBuilder
in order to customize the Spring ApplicationContext used for flow configuration.
The only method changed is createFlowApplicationContext(String[]) (parameter changed
from Resource, but it's private and there are too many threads pulled by anything
but a wholesale duplication of this class).
Builds a runtime Flow definition object from a FlowModel.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate FlowModelprivate FlowModelHolderprivate static final booleanprivate LocalFlowBuilderContextstatic final Stringstatic final String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidBuilds any end actions to execute when the flow ends.voidCreates and adds all exception handlers to the flow built by this builder.voidBuilds any transitions shared by all states of the flow.voidBuilds the input mapper responsible for mapping flow input on start.voidBuilds the output mapper responsible for mapping flow output on end.voidBuilds any start actions to execute when the flow starts.voidBuilds the states of the flow.voidBuilds any variables initialized by the flow when it starts.private BinderConfigurationcreateBinderConfiguration(BinderModel binderModel) protected Flowprivate GenericApplicationContextcreateFlowApplicationContext(String[] resources) private ViewFactorycreateViewFactory(Expression viewId, BinderModel binderModel) protected voidShutdown the builder, releasing any resources it holds.protected voiddoInit()Initialize this builder.private ConversionExecutorfromStringTo(Class<?> targetType) protected FlowModelprotected LocalFlowBuilderContextbooleanprivate voidprivate booleanprivate Action[]parseActions(List<AbstractActionModel> actionModels) private voidparseAndAddActionState(ActionStateModel state, Flow flow) private voidparseAndAddDecisionState(DecisionStateModel state, Flow flow) private voidparseAndAddEndState(EndStateModel state, Flow flow) private voidparseAndAddSubflowState(SubflowStateModel state, Flow flow) private voidparseAndAddViewState(ViewStateModel state, Flow flow) private voidparseAndPutMetaAttribute(AttributeModel attribute, MutableAttributeMap<Object> attributes) private voidparseAndPutPersistenceContext(PersistenceContextModel persistenceContext, MutableAttributeMap<Object> attributes) private voidparseAndPutSecured(SecuredModel secured, MutableAttributeMap<Object> attributes) private voidparseAndSetMappingConversionExecutor(AbstractMappingModel mappingModel, DefaultMapping mapping) private voidparseAndSetMappingRequired(AbstractMappingModel mappingModel, DefaultMapping mapping) private ObjectparseAttributeValueIfNecessary(AttributeModel attribute, String stringValue) private String[]parseContextResources(List<BeanImportModel> beanImports) private FlowExecutionExceptionHandlerparseCustomExceptionHandler(ExceptionHandlerModel exceptionHandler) private FlowExecutionExceptionHandler[]parseCustomExceptionHandlers(List<ExceptionHandlerModel> exceptionHandlerModels) private Transitionprivate ActionparseEvaluateAction(EvaluateModel evaluate) private FlowExecutionExceptionHandler[]parseExceptionHandlers(List<ExceptionHandlerModel> modelExceptionHandlers, List<TransitionModel> modelTransitions) private MapperparseFlowInputMapper(List<InputModel> inputs) private DefaultMappingparseFlowInputMapping(InputModel input) private AttributeMap<Object>private MapperparseFlowOutputMapper(List<OutputModel> outputs) private DefaultMappingparseFlowOutputMapping(OutputModel output) private FlowVariableprivate Transition[]private Transition[]private MutableAttributeMap<Object>parseMetaAttributes(List<AttributeModel> attributeModels) private ActionparseRenderAction(RenderModel render) private ActionparseSetAction(SetModel set) private SubflowAttributeMapperprivate ExpressionparseSubflowExpression(String subflow) private MapperparseSubflowInputMapper(List<InputModel> inputs) private DefaultMappingprivate MapperparseSubflowOutputMapper(List<OutputModel> outputs) private DefaultMappingparseSubflowOutputMapping(OutputModel output) private Transitionprivate TransitionparseTransition(TransitionModel transition) private FlowExecutionExceptionHandlerprivate FlowExecutionExceptionHandler[]parseTransitionExecutingExceptionHandlers(List<TransitionModel> transitionModels) private Transition[]parseTransitions(List<TransitionModel> transitionModels) private ViewFactoryparseViewFactory(String view, String stateId, boolean endState, BinderModel binderModel) private ViewVariableprivate ViewVariable[]parseViewVariables(List<VarModel> vars) protected voidregisterFlowBeans(ConfigurableBeanFactory beanFactory) Register beans in the bean factory local to the flow definition being built.private voidregisterMessageSource(GenericApplicationContext flowContext, Resource flowResource) protected voidsetLocalContext(LocalFlowBuilderContext localFlowBuilderContext) private Class<?>private <T> Class<T>toString()Methods inherited from class org.springframework.webflow.engine.builder.support.AbstractFlowBuilder
dispose, getContext, getFlow, init
-
Field Details
-
IS_SPRING_FACES_PRESENT
private static final boolean IS_SPRING_FACES_PRESENT -
VALIDATOR_FLOW_ATTR
-
VALIDATION_HINT_RESOLVER_FLOW_ATTR
-
flowModelHolder
-
flowModel
-
localFlowBuilderContext
-
-
Constructor Details
-
FlowModelFlowBuilder
- Parameters:
flowModelHolder- the flow model holder
-
-
Method Details
-
doInit
Initialize this builder. This could cause the builder to open a stream to an externalized resource representing the flow definition, for example.- Overrides:
doInitin classAbstractFlowBuilder- Throws:
FlowBuilderException- an exception occurred building the flow
-
createFlow
- Overrides:
createFlowin classAbstractFlowBuilder
-
buildVariables
Builds any variables initialized by the flow when it starts.- Specified by:
buildVariablesin interfaceFlowBuilder- Overrides:
buildVariablesin classAbstractFlowBuilder- Throws:
FlowBuilderException- an exception occurred building the flow
-
buildInputMapper
Builds the input mapper responsible for mapping flow input on start.- Specified by:
buildInputMapperin interfaceFlowBuilder- Overrides:
buildInputMapperin classAbstractFlowBuilder- Throws:
FlowBuilderException- an exception occurred building the flow
-
buildStartActions
Builds any start actions to execute when the flow starts.- Specified by:
buildStartActionsin interfaceFlowBuilder- Overrides:
buildStartActionsin classAbstractFlowBuilder- Throws:
FlowBuilderException- an exception occurred building the flow
-
buildStates
Builds the states of the flow.- Specified by:
buildStatesin interfaceFlowBuilder- Specified by:
buildStatesin classAbstractFlowBuilder- Throws:
FlowBuilderException- an exception occurred building the flow
-
buildGlobalTransitions
Builds any transitions shared by all states of the flow.- Specified by:
buildGlobalTransitionsin interfaceFlowBuilder- Overrides:
buildGlobalTransitionsin classAbstractFlowBuilder- Throws:
FlowBuilderException- an exception occurred building the flow
-
buildEndActions
Builds any end actions to execute when the flow ends.- Specified by:
buildEndActionsin interfaceFlowBuilder- Overrides:
buildEndActionsin classAbstractFlowBuilder- Throws:
FlowBuilderException- an exception occurred building the flow
-
buildOutputMapper
Builds the output mapper responsible for mapping flow output on end.- Specified by:
buildOutputMapperin interfaceFlowBuilder- Overrides:
buildOutputMapperin classAbstractFlowBuilder- Throws:
FlowBuilderException- an exception occurred building the flow
-
buildExceptionHandlers
Creates and adds all exception handlers to the flow built by this builder.- Specified by:
buildExceptionHandlersin interfaceFlowBuilder- Overrides:
buildExceptionHandlersin classAbstractFlowBuilder- Throws:
FlowBuilderException- an exception occurred building this flow
-
hasFlowChanged
public boolean hasFlowChanged()- Specified by:
hasFlowChangedin interfaceFlowBuilder- Overrides:
hasFlowChangedin classAbstractFlowBuilder
-
getFlowResourceString
- Specified by:
getFlowResourceStringin interfaceFlowBuilder- Overrides:
getFlowResourceStringin classAbstractFlowBuilder
-
doDispose
Shutdown the builder, releasing any resources it holds. A new flow construction process should start with another call to theAbstractFlowBuilder.init(FlowBuilderContext)method.- Overrides:
doDisposein classAbstractFlowBuilder- Throws:
FlowBuilderException- an exception occurred building this flow
-
getFlowModel
-
getLocalContext
-
setLocalContext
-
registerFlowBeans
Register beans in the bean factory local to the flow definition being built.Subclasses may override this method to customize the population of the bean factory local to the flow definition being built; for example, to register mock implementations of services in a test environment.
- Parameters:
beanFactory- the bean factory; register local beans with it usingSingletonBeanRegistry.registerSingleton(String, Object)
-
initLocalFlowContext
private void initLocalFlowContext() -
parseContextResources
-
createFlowApplicationContext
-
isFlowInDevelopment
private boolean isFlowInDevelopment() -
registerMessageSource
-
parseFlowMetaAttributes
-
parseFlowVariable
-
parseFlowInputMapper
-
parseFlowInputMapping
-
parseSubflowInputMapper
-
parseSubflowInputMapping
-
parseFlowOutputMapper
-
parseFlowOutputMapping
-
parseSubflowOutputMapper
-
parseSubflowOutputMapping
-
parseAndSetMappingConversionExecutor
private void parseAndSetMappingConversionExecutor(AbstractMappingModel mappingModel, DefaultMapping mapping) -
parseAndSetMappingRequired
-
parseAndAddViewState
-
parseAndAddActionState
-
parseAndAddDecisionState
-
parseAndAddSubflowState
-
parseAndAddEndState
-
parseViewFactory
private ViewFactory parseViewFactory(String view, String stateId, boolean endState, BinderModel binderModel) -
createViewFactory
-
createBinderConfiguration
-
parseViewVariables
-
parseViewVariable
-
parseIfs
-
parseIf
-
parseThen
-
parseElse
-
parseSubflowExpression
-
parseSubflowAttributeMapper
-
parseExceptionHandlers
private FlowExecutionExceptionHandler[] parseExceptionHandlers(List<ExceptionHandlerModel> modelExceptionHandlers, List<TransitionModel> modelTransitions) -
parseTransitionExecutingExceptionHandlers
private FlowExecutionExceptionHandler[] parseTransitionExecutingExceptionHandlers(List<TransitionModel> transitionModels) -
parseTransitionExecutingExceptionHandler
private FlowExecutionExceptionHandler parseTransitionExecutingExceptionHandler(TransitionModel transition) -
parseCustomExceptionHandlers
private FlowExecutionExceptionHandler[] parseCustomExceptionHandlers(List<ExceptionHandlerModel> exceptionHandlerModels) -
parseCustomExceptionHandler
private FlowExecutionExceptionHandler parseCustomExceptionHandler(ExceptionHandlerModel exceptionHandler) -
parseTransitions
-
parseTransition
-
parseActions
-
parseEvaluateAction
-
parseRenderAction
-
parseSetAction
-
parseMetaAttributes
-
parseAndPutMetaAttribute
private void parseAndPutMetaAttribute(AttributeModel attribute, MutableAttributeMap<Object> attributes) -
parseAttributeValueIfNecessary
-
parseAndPutPersistenceContext
private void parseAndPutPersistenceContext(PersistenceContextModel persistenceContext, MutableAttributeMap<Object> attributes) -
parseAndPutSecured
-
fromStringTo
- Throws:
ConversionExecutionException
-
toClass
-
toClass
-
toString
-