1 16 package org.springframework.webflow.engine.builder; 17 18 import org.springframework.beans.factory.BeanFactory; 19 import org.springframework.beans.factory.BeanFactoryAware; 20 import org.springframework.binding.convert.ConversionService; 21 import org.springframework.binding.expression.ExpressionParser; 22 import org.springframework.context.ResourceLoaderAware; 23 import org.springframework.core.io.ResourceLoader; 24 import org.springframework.webflow.action.BeanInvokingActionFactory; 25 import org.springframework.webflow.definition.registry.AbstractFlowDefinitionRegistryFactoryBean; 26 import org.springframework.webflow.definition.registry.FlowDefinitionRegistry; 27 import org.springframework.webflow.engine.Flow; 28 import org.springframework.webflow.engine.State; 29 import org.springframework.webflow.execution.Action; 30 31 47 public abstract class AbstractFlowBuildingFlowRegistryFactoryBean extends AbstractFlowDefinitionRegistryFactoryBean 48 implements BeanFactoryAware, ResourceLoaderAware { 49 50 54 private FlowServiceLocator flowServiceLocator; 55 56 60 private FlowArtifactFactory flowArtifactFactory; 61 62 66 private BeanInvokingActionFactory beanInvokingActionFactory; 67 68 72 private ExpressionParser expressionParser; 73 74 77 private ConversionService conversionService; 78 79 82 private ResourceLoader resourceLoader; 83 84 87 private BeanFactory beanFactory; 88 89 93 protected FlowArtifactFactory getFlowArtifactFactory() { 94 return flowArtifactFactory; 95 } 96 97 101 public void setFlowArtifactFactory(FlowArtifactFactory flowArtifactFactory) { 102 this.flowArtifactFactory = flowArtifactFactory; 103 } 104 105 109 protected BeanInvokingActionFactory getBeanInvokingActionFactory() { 110 return beanInvokingActionFactory; 111 } 112 113 117 public void setBeanInvokingActionFactory(BeanInvokingActionFactory beanInvokingActionFactory) { 118 this.beanInvokingActionFactory = beanInvokingActionFactory; 119 } 120 121 125 protected ExpressionParser getExpressionParser() { 126 return expressionParser; 127 } 128 129 133 public void setExpressionParser(ExpressionParser expressionParser) { 134 this.expressionParser = expressionParser; 135 } 136 137 141 protected ConversionService getConversionService() { 142 return conversionService; 143 } 144 145 149 public void setConversionService(ConversionService conversionService) { 150 this.conversionService = conversionService; 151 } 152 153 155 158 protected ResourceLoader getResourceLoader() { 159 return resourceLoader; 160 } 161 162 public void setResourceLoader(ResourceLoader resourceLoader) { 163 this.resourceLoader = resourceLoader; 164 } 165 166 168 171 protected BeanFactory getBeanFactory() { 172 return beanFactory; 173 } 174 175 public void setBeanFactory(BeanFactory beanFactory) { 176 this.beanFactory = beanFactory; 177 } 178 179 protected final void init() { 180 flowServiceLocator = createFlowServiceLocator(); 181 init(flowServiceLocator); 182 } 183 184 186 192 protected FlowServiceLocator createFlowServiceLocator() { 193 DefaultFlowServiceLocator serviceLocator = new DefaultFlowServiceLocator(getRegistry(), beanFactory); 194 if (flowArtifactFactory != null) { 195 serviceLocator.setFlowArtifactFactory(flowArtifactFactory); 196 } 197 if (beanInvokingActionFactory != null) { 198 serviceLocator.setBeanInvokingActionFactory(beanInvokingActionFactory); 199 } 200 if (expressionParser != null) { 201 serviceLocator.setExpressionParser(expressionParser); 202 } 203 if (conversionService != null) { 204 serviceLocator.setConversionService(conversionService); 205 } 206 if (resourceLoader != null) { 207 serviceLocator.setResourceLoader(resourceLoader); 208 } 209 return serviceLocator; 210 } 211 212 220 protected void init(FlowServiceLocator flowServiceLocator) { 221 } 222 223 229 protected FlowServiceLocator getFlowServiceLocator() { 230 return flowServiceLocator; 231 } 232 233 protected abstract void doPopulate(FlowDefinitionRegistry registry); 234 } | Popular Tags |