1 package org.weda.action.impl;
2
3 import java.util.ArrayList;
4 import java.util.HashMap;
5 import java.util.List;
6 import java.util.Map;
7 import org.weda.action.ActionContainer;
8 import org.weda.action.ActionDescriptor;
9 import org.weda.action.ActionExecutionContext;
10 import org.weda.action.ActionExecutionContextException;
11 import org.weda.action.ActionParameter;
12 import org.weda.action.Parameter.Direction;
13
14 /**
15 *
16 * @author tim
17 */
18 public class ActionExecutionContextImpl implements ActionExecutionContext {
19 private ActionDescriptor actionDescriptor;
20 private ActionContainer targetObject;
21 private Map<String, Object> actionParameters =
22 new HashMap<String, Object>();
23 private Map objectState;
24
25 public ActionDescriptor getActionDescriptor() {
26 return actionDescriptor;
27 }
28
29 public void setActionDescriptor(ActionDescriptor actionDescriptor) {
30 this.actionDescriptor = actionDescriptor;
31 }
32
33 public ActionContainer getTargetObject() {
34 return targetObject;
35 }
36
37 public void setTargetObject(ActionContainer targetObject) {
38 this.targetObject = targetObject;
39 }
40
41 public Map<String, Object> getActionParameters() {
42 return actionParameters;
43 }
44
45 public void setActionParameterValue(String parameterName, Object value)
46 throws ActionExecutionContextException
47 {
48 try{
49 ActionParameter parameter =
50 actionDescriptor.getActionParameter(parameterName);
51 if ( parameter.getDirection() == Direction.READ_WRITE
52 || parameter.getDirection() == Direction.WRITE)
53 {
54 actionParameters.put(parameterName, value);
55 }else
56 throw new ActionExecutionContextException(
57 String.format(
58 "Can't set parameter value " +
59 "because of it's READ ONLY"));
60 }catch(Exception e){
61 throw new ActionExecutionContextException(
62 String.format(
63 "Error while setting value of parameter (%s) for " +
64 "action (%s)"
65 , parameterName
66 , actionDescriptor.getActionClass().getName())
67 , e);
68 }
69 }
70
71 public Map getObjectState() {
72 return objectState;
73 }
74
75 public void setObjectState(Map objectState) {
76 this.objectState = objectState;
77 }
78
79 }