1 package org.sourceforge.jemm.lifecycle;
2
3 import java.lang.annotation.ElementType;
4 import java.lang.annotation.Retention;
5 import java.lang.annotation.RetentionPolicy;
6 import java.lang.annotation.Target;
7
8 /**
9 * An annotation marked on compiler created methods which tells the framework
10 * which attributes of the class are used in that method.
11 *
12 * This is used to allow the beginExecution and endExecution listeners to setup
13 * the object partially when its entered to support that method. Note that only
14 * object values need be setup using this metadata.
15 *
16 * Also note that Strings are handled like primitives and do not need to be
17 * marked with the uses annotation.
18 *
19 * @author Paul Keeble
20 *
21 */
22 @Retention(RetentionPolicy.RUNTIME)
23 @Target(ElementType.METHOD)
24 public @interface AttributeUse {
25 /**
26 * The Declaring class of the attribute.
27 */
28 String clazz();
29
30 /**
31 * The attribute name.
32 */
33 String name();
34 }