1 /*
2 * Copyright (c) 2002-2007 by OpenSymphony
3 * All rights reserved.
4 */
5 package com.opensymphony.xwork2;
6
7 import com.opensymphony.xwork2.inject.Container;
8 import com.opensymphony.xwork2.inject.Inject;
9
10 import java.util.Map;
11
12
13 /**
14 * Default factory for {@link com.opensymphony.xwork2.ActionProxyFactory}.
15 *
16 * @author Jason Carreira
17 */
18 public class DefaultActionProxyFactory implements ActionProxyFactory {
19
20 protected Container container;
21
22 public DefaultActionProxyFactory() {
23 super();
24 }
25
26 @Inject
27 public void setContainer(Container container) {
28 this.container = container;
29 }
30
31 public ActionProxy createActionProxy(String namespace, String actionName, Map<String, Object> extraContext) {
32 return createActionProxy(namespace, actionName, null, extraContext, true, true);
33 }
34
35 public ActionProxy createActionProxy(String namespace, String actionName, String methodName, Map<String, Object> extraContext) {
36 return createActionProxy(namespace, actionName, methodName, extraContext, true, true);
37 }
38
39 public ActionProxy createActionProxy(String namespace, String actionName, Map<String, Object> extraContext, boolean executeResult, boolean cleanupContext) {
40 return createActionProxy(namespace, actionName, null, extraContext, executeResult, cleanupContext);
41 }
42
43 public ActionProxy createActionProxy(String namespace, String actionName, String methodName, Map<String, Object> extraContext, boolean executeResult, boolean cleanupContext) {
44
45 ActionInvocation inv = new DefaultActionInvocation(extraContext, true);
46 container.inject(inv);
47 return createActionProxy(inv, namespace, actionName, methodName, executeResult, cleanupContext);
48 }
49
50 public ActionProxy createActionProxy(ActionInvocation inv, String namespace, String actionName, boolean executeResult, boolean cleanupContext) {
51
52 return createActionProxy(inv, namespace, actionName, null, executeResult, cleanupContext);
53 }
54
55 public ActionProxy createActionProxy(ActionInvocation inv, String namespace, String actionName, String methodName, boolean executeResult, boolean cleanupContext) {
56
57 DefaultActionProxy proxy = new DefaultActionProxy(inv, namespace, actionName, methodName, executeResult, cleanupContext);
58 container.inject(proxy);
59 proxy.prepare();
60 return proxy;
61 }
62
63 }