Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
InboundAttachments |
|
| 0.0;0 |
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.api.annotations.meta.Evaluator; | |
10 | ||
11 | import java.lang.annotation.Documented; | |
12 | import java.lang.annotation.ElementType; | |
13 | import java.lang.annotation.Retention; | |
14 | import java.lang.annotation.RetentionPolicy; | |
15 | import java.lang.annotation.Target; | |
16 | ||
17 | /** | |
18 | * Used on component and transformer methods that have a {@link org.mule.api.annotations.Transformer} annotation. | |
19 | * This annotation marks the method parameter that will be used to pass in one or more of the received attachments. | |
20 | * This annotation can define a single attachment, a comma-separated list of attachment names, or '*' to denote all headers. By default, | |
21 | * if a named header is not present, an exception will be thrown. However, if the header name is defined with the '?' post fix, it | |
22 | * will be marked as optional. | |
23 | * <p/> | |
24 | * When defining multiple attachment names i.e. InboundAttachments("shipping-slip.pdf, customer-record.xml") or using the '*' wildcard to denote all attachments, | |
25 | * or wildcard expressions can be used, such as '*.pdf' or multiple patterns such as '*.pdf, *.xml'. | |
26 | * the parameter can be a {@link java.util.Map} or {@link java.util.List}. If a {@link java.util.Map} is used, the header name and value is passed in. | |
27 | * If {@link java.util.List} is used, just the header value is used. If a single header name is defined, the header type can be used as the parameter or | |
28 | * {@link java.util.List} or {@link java.util.Map} can be used too. Entry type for collections is {@link javax.activation.DataHandler}. | |
29 | * | |
30 | * The Inbound attachments collection is immutable, so the attachments Map or List passed in will be immutable too. Attempting to write to the Map or List will result in an {@link UnsupportedOperationException}. | |
31 | */ | |
32 | @Target(ElementType.PARAMETER) | |
33 | @Retention(RetentionPolicy.RUNTIME) | |
34 | @Documented | |
35 | @Evaluator("attachments") | |
36 | // | |
37 | public @interface InboundAttachments | |
38 | { | |
39 | /** | |
40 | * Defines the headers that should be injected into the parameter. This can be a single header, a comma-separated | |
41 | * list of header names, or '*' to denote all headers or a comma separated list of wildcard expressions such as '*.pdf, *.xml'. | |
42 | * By default, if a named header is not present, an exception will | |
43 | * be thrown. However, if the header name is defined with the '?' post fix, it will be marked as optional. When using wildcard expressions | |
44 | * the optional '?' postfix cannot be used. | |
45 | * | |
46 | * @return the attachment expression used to query the message | |
47 | */ | |
48 | String value(); | |
49 | } |