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 * <p>
19 * Used on component methods, this parameter annotation passes in a reference to a
20 * {@link java.util.Map} that can be used to populate outbound attachments that will
21 * be set with the outgoing message. For example, when sending an email message, you
22 * may want to add attachments such as images or documents.
23 * </p>
24 * <p>
25 * This annotation must only be defined on a parameter of type {@link java.util.Map}.
26 * The elements in the map will be of type {@link javax.activation.DataHandler}, thus
27 * the annotated parameter should be defined as
28 * <code>java.util.Map<java.lang.String, javax.activation.DataHandler></code>
29 * where the key is the attachment name and the value is the handler for the
30 * attachment.
31 */
32 @Target(ElementType.PARAMETER)
33 @Retention(RetentionPolicy.RUNTIME)
34 @Documented
35 @Evaluator("outboundAttachments")
36 public @interface OutboundAttachments
37 {
38 // no custom methods
39 }