View Javadoc

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  }