1 /*
2 * $Id: Expr.java 18452 2010-07-21 19:15:38Z aperepel $
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.expressions;
12
13 import org.mule.api.annotations.meta.Evaluator;
14
15 import java.lang.annotation.Documented;
16 import java.lang.annotation.ElementType;
17 import java.lang.annotation.Retention;
18 import java.lang.annotation.RetentionPolicy;
19 import java.lang.annotation.Target;
20
21 /**
22 * Allows method parameters to be configured with result of one or more Mule expressions
23 *
24 * public Object save(Object foo, @Expr("#[header:X-User]-#[function:UUID]") String id)
25 *
26 * @see org.mule.expression.FunctionExpressionEvaluator
27 */
28 @Target(ElementType.PARAMETER)
29 @Retention(RetentionPolicy.RUNTIME)
30 @Documented
31 @Evaluator("string")
32 public @interface Expr
33 {
34 String value();
35
36 boolean optional() default false;
37 }