1
2
3
4
5
6
7 package org.mule.api.annotations.param;
8
9 import org.mule.util.StringDataSource;
10
11 import java.io.IOException;
12 import java.util.ArrayList;
13 import java.util.List;
14 import java.util.Map;
15
16 import javax.activation.DataHandler;
17
18
19
20
21 public class InboundAttachmentsAnnotationComponent
22 {
23 public DataHandler processAttachment(@InboundAttachments("foo") DataHandler foo)
24 {
25 return foo;
26 }
27
28 public String processAttachmentOptional(@InboundAttachments("faz?") DataHandler faz)
29 {
30 if(faz==null)
31 {
32 return "faz not set";
33 }
34 return null;
35 }
36
37
38 public String processAttachmentWithType(@InboundAttachments("foo") String foo)
39 {
40 return foo;
41 }
42
43 public Map<String, DataHandler> processAttachments(@InboundAttachments("foo, bar") Map<String, DataHandler> attachments)
44 {
45 return attachments;
46 }
47
48 public Map<String, DataHandler> processAttachmentsAll(@InboundAttachments("*") Map<String, DataHandler> attachments)
49 {
50 return attachments;
51 }
52
53 public Map<String, DataHandler> processAttachmentsWildcard(@InboundAttachments("ba*") Map<String, DataHandler> attachments)
54 {
55 return attachments;
56 }
57
58 public Map<String, DataHandler> processAttachmentsMultiWildcard(@InboundAttachments("ba*, f*") Map<String, DataHandler> attachments)
59 {
60 return attachments;
61 }
62
63 public Map<String, DataHandler> processSingleMapAttachment(@InboundAttachments("foo") Map<String, DataHandler> attachments)
64 {
65 return attachments;
66 }
67
68 public Map<String, DataHandler> processAttachmentsOptional(@InboundAttachments("foo, bar, baz?") Map<String, DataHandler> attachments)
69 {
70 return attachments;
71 }
72
73 public Map<String, DataHandler> processAttachmentsAllOptional(@InboundAttachments("foo?, bar?, baz?") Map<String, DataHandler> attachments)
74 {
75 return attachments;
76 }
77
78 public Map<String, DataHandler> processUnmodifiableAttachments(@InboundAttachments("foo, bar") Map<String, DataHandler> attachments)
79 {
80
81
82 attachments.put("car", new DataHandler(new StringDataSource("carValue")));
83 return attachments;
84 }
85
86 public List processAttachmentsList(@InboundAttachments("foo, bar, baz") List<DataHandler> attachments)
87 {
88 return readToList(attachments);
89 }
90
91 public List processAttachmentsListAll(@InboundAttachments("*") List<DataHandler> attachments)
92 {
93 return readToList(attachments);
94 }
95
96 public List processSingleAttachmentList(@InboundAttachments("foo") List<DataHandler> attachments)
97 {
98 return readToList(attachments);
99 }
100
101 public List processAttachmentsListOptional(@InboundAttachments("foo, bar, baz?") List<DataHandler> attachments)
102 {
103 return readToList(attachments);
104 }
105
106 public List processAttachmentsListAllOptional(@InboundAttachments("foo?, bar?, baz?") List<DataHandler> attachments)
107 {
108 return readToList(attachments);
109 }
110
111 public List processUnmodifiableAttachmentsList(@InboundAttachments("foo, bar") List<DataHandler> attachments)
112 {
113
114 attachments.add(new DataHandler(new StringDataSource("carValue")));
115 return readToList(attachments);
116 }
117
118 public List processAttachmentsListWildcard(@InboundAttachments("ba*") List<DataHandler> attachments)
119 {
120 return readToList(attachments);
121 }
122
123 public List processAttachmentsListMultiWildcard(@InboundAttachments("ba*, f*") List<DataHandler> attachments)
124 {
125 return readToList(attachments);
126 }
127
128 private List readToList(List<DataHandler> list)
129 {
130 if(list.size()==0) return list;
131 List l = new ArrayList(list.size());
132 for (DataHandler dataHandler : list)
133 {
134 try
135 {
136 l.add(dataHandler.getContent());
137 }
138 catch (IOException e)
139 {
140 e.printStackTrace();
141 }
142 }
143 return l;
144 }
145 }