View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.api.annotations.param;
8   
9   import org.mule.tck.testmodels.fruit.Apple;
10  import org.mule.tck.testmodels.fruit.Fruit;
11  
12  import java.util.List;
13  import java.util.Map;
14  
15  /**
16   * Tests various cases for how headers can be injected into a component invocation
17   */
18  public class InboundHeadersAnnotationComponent
19  {
20      public String processHeader(@InboundHeaders("foo") String foo)
21      {
22          return foo;
23      }
24  
25      public String processHeaderOptional(@InboundHeaders("faz?") String faz)
26      {
27          if(faz==null)
28          {
29              return "faz not set";
30          }
31          return faz;
32      }
33  
34      public Apple processHeaderWithType(@InboundHeaders("apple") Apple apple)
35      {
36          return apple;
37      }
38  
39      public Fruit processHeaderWithBaseType(@InboundHeaders("apple") Fruit apple)
40      {
41          return apple;
42      }
43  
44      public Map<?, ?> processHeaders(@InboundHeaders("foo, bar") Map<?, ?> headers)
45      {
46          return headers;
47      }
48  
49      public Map<?, ?> processHeadersAll(@InboundHeaders("*") Map<?, ?> headers)
50      {
51          return headers;
52      }
53  
54      public Map<?, ?> processHeadersWildcard(@InboundHeaders("MULE_*") Map<?, ?> headers)
55      {
56          return headers;
57      }
58  
59      public Map<?, ?> processHeadersMultiWildcard(@InboundHeaders("MULE_*, ba*") Map<?, ?> headers)
60      {
61          return headers;
62      }
63  
64      public Map<?, ?> processSingleMapHeader(@InboundHeaders("foo") Map<?, ?> headers)
65      {
66          return headers;
67      }
68  
69      public Map<?, ?> processHeadersOptional(@InboundHeaders("foo, bar, baz?") Map<?, ?> headers)
70      {
71          return headers;
72      }
73  
74      public Map<?, ?> processHeadersAllOptional(@InboundHeaders("foo?, bar?") Map<?, ?> headers)
75      {
76          return headers;
77      }
78  
79  
80      public Map<?, ?> processUnmodifiableHeaders(@InboundHeaders("foo, bar") Map<String, Object> headers)
81      {
82          //Should throw UnsupportedOperationException
83          headers.put("car", "carValue");
84          return headers;
85      }
86  
87      public Map<String, Fruit> processHeadersWithGenerics(@InboundHeaders("apple, orange") Map<String, Fruit> headers)
88      {
89          return headers;
90      }
91  
92      public List<?> processHeadersList(@InboundHeaders("foo, bar, baz") List<?> headers)
93      {
94          return headers;
95      }
96  
97      public List<?> processHeadersListAll(@InboundHeaders("*") List<?> headers)
98      {
99          return headers;
100     }
101 
102     public List<?> processSingleHeaderList(@InboundHeaders("foo") List<?> headers)
103     {
104         return headers;
105     }
106 
107     public List<?> processHeadersListOptional(@InboundHeaders("foo, bar, baz?") List<?> headers)
108     {
109         return headers;
110     }
111 
112     public List<?> processHeadersListAllOptional(@InboundHeaders("foo?, bar?") List<?> headers)
113     {
114         return headers;
115     }
116 
117     public List<?> processUnmodifiableHeadersList(@InboundHeaders("foo, bar") List<Object> headers)
118     {
119         //Should throw UnsupportedOperationException
120         headers.add("carValue");
121         return headers;
122     }
123 
124     public List<?> processHeadersListWildcard(@InboundHeaders("MULE_*") List<?> headers)
125     {
126         return headers;
127     }
128 
129     public List<?> processHeadersListMultiWildcard(@InboundHeaders("MULE_*, ba*") List<?> headers)
130     {
131         return headers;
132     }
133 
134     public List<Fruit> processHeadersListWithGenerics(@InboundHeaders("apple, orange") List<Fruit> headers)
135     {
136         return headers;
137     }
138 }