package clear.djn.servlet;
import java.util.HashMap;
import java.util.Map;
import com.softwarementors.extjs.djn.api.RegisteredMethod;
import com.softwarementors.extjs.djn.servlet.ssm.SsmDispatcher;
/**
* Dispatcher used to retrieve DirectAction
*
*/
public class SpringDispatcher extends SsmDispatcher {
private final Map<Class<?>, Object> mapClassBeanName = new HashMap<Class<?>, Object>();
@Override
protected Object getInvokeInstanceForNonStaticMethod(RegisteredMethod method) throws Exception {
Object actionInstance = null;
if (this.mapClassBeanName.containsKey(method.getActionClass())) {
actionInstance = this.mapClassBeanName.get(method.getActionClass());
} else {
actionInstance = SpringLoaderHelper.getBeanOfType(method.getActionClass());
if (actionInstance == null) {
actionInstance = method.getActionClass().newInstance();
}
this.mapClassBeanName.put(method.getActionClass(), actionInstance);
}
return actionInstance;
}
}