View Javadoc

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