1
2
3
4
5
6
7 package org.mule.retry;
8
9 import org.mule.api.MuleContext;
10 import org.mule.api.MuleMessage;
11 import org.mule.api.context.MuleContextAware;
12 import org.mule.api.retry.RetryContext;
13
14 import java.util.Collections;
15 import java.util.HashMap;
16 import java.util.Map;
17
18
19
20
21
22 public class DefaultRetryContext implements RetryContext, MuleContextAware
23 {
24 private MuleMessage[] returnMessages;
25 private Map<Object, Object> metaInfo = new HashMap<Object, Object>();
26 private String description;
27 private Throwable lastFailure;
28 private boolean failed = false;
29 private MuleContext muleContext;
30
31 public DefaultRetryContext(String description, Map<Object, Object> metaInfo)
32 {
33 super();
34 this.description = description;
35 if (metaInfo != null)
36 {
37 this.metaInfo = metaInfo;
38 }
39 }
40
41 public void setMuleContext(MuleContext context)
42 {
43 this.muleContext = context;
44 }
45
46 public MuleContext getMuleContext()
47 {
48 return muleContext;
49 }
50
51 public Map<Object, Object> getMetaInfo()
52 {
53 return Collections.unmodifiableMap(metaInfo);
54 }
55
56 public MuleMessage[] getReturnMessages()
57 {
58 return returnMessages;
59 }
60
61 public MuleMessage getFirstReturnMessage()
62 {
63 return (returnMessages == null ? null : returnMessages[0]);
64 }
65
66 public void setReturnMessages(MuleMessage[] returnMessages)
67 {
68 this.returnMessages = returnMessages;
69 }
70
71 public void addReturnMessage(MuleMessage result)
72 {
73 if (returnMessages == null)
74 {
75 returnMessages = new MuleMessage[] {result};
76 }
77 else
78 {
79 MuleMessage[] newReturnMessages = new MuleMessage[returnMessages.length + 1];
80 System.arraycopy(newReturnMessages, 0, returnMessages, 0, 1);
81 returnMessages = newReturnMessages;
82 }
83 }
84
85 public String getDescription()
86 {
87 return description;
88 }
89
90 public Throwable getLastFailure()
91 {
92 return this.lastFailure;
93 }
94
95 public void setOk()
96 {
97 this.failed = false;
98 this.lastFailure = null;
99 }
100
101 public boolean isOk()
102 {
103
104 return !this.failed;
105 }
106
107 public void setFailed(Throwable lastFailure)
108 {
109 this.failed = true;
110 this.lastFailure = lastFailure;
111 }
112 }