1 16 package org.springframework.webflow.action; 17 18 import java.lang.reflect.Method ; 19 20 import org.springframework.beans.factory.BeanFactory; 21 import org.springframework.binding.convert.ConversionService; 22 import org.springframework.binding.method.ClassMethodKey; 23 import org.springframework.binding.method.MethodSignature; 24 import org.springframework.webflow.core.collection.AttributeMap; 25 import org.springframework.webflow.execution.Action; 26 27 41 public class BeanInvokingActionFactory { 42 43 47 private ResultEventFactorySelector resultEventFactorySelector = new ResultEventFactorySelector(); 48 49 53 public ResultEventFactorySelector getResultEventFactorySelector() { 54 return resultEventFactorySelector; 55 } 56 57 61 public void setResultEventFactorySelector(ResultEventFactorySelector resultEventFactorySelector) { 62 this.resultEventFactorySelector = resultEventFactorySelector; 63 } 64 65 83 public Action createBeanInvokingAction(String beanId, BeanFactory beanFactory, MethodSignature methodSignature, 84 ActionResultExposer resultExposer, ConversionService conversionService, AttributeMap attributes) { 85 Object bean = beanFactory.getBean(beanId); 86 AbstractBeanInvokingAction action = new LocalBeanInvokingAction(methodSignature, bean); 87 action.setMethodResultExposer(resultExposer); 88 Method method = new ClassMethodKey(bean.getClass(), methodSignature.getMethodName(), methodSignature.getParameters() 89 .getTypesArray()).getMethod(); 90 action.setResultEventFactory(resultEventFactorySelector.forMethod(method)); 91 action.setConversionService(conversionService); 92 return action; 93 } 94 } | Popular Tags |