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 }