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