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 }