1 package org.springframework.roo.classpath.details.annotations; 2 3 import java.util.List; 4 5 import org.springframework.roo.model.JavaSymbolName; 6 import org.springframework.roo.model.JavaType; 7 8 9 /** 10 * Metadata concerning a particular annotation appearing on a member. 11 * 12 * @author Ben Alex 13 * @since 1.0 14 * 15 */ 16 public interface AnnotationMetadata { 17 18 /** 19 * @return the annotation type (never null) 20 */ 21 JavaType getAnnotationType(); 22 23 /** 24 * @return the attribute names, preferably in the order they are declared in the annotation (never null, but may be empty) 25 */ 26 List<JavaSymbolName> getAttributeNames(); 27 28 /** 29 * Acquires an attribute value for the requested name. 30 * 31 * @return the requested attribute (or null if not found) 32 */ 33 AnnotationAttributeValue<?> getAttribute(JavaSymbolName attributeName); 34 35 }