1 package org.springframework.roo.classpath.details; 2 3 import java.util.List; 4 import java.util.Set; 5 6 import org.springframework.roo.model.JavaType; 7 8 /** 9 * Provides information about an ITD. 10 * 11 * <p> 12 * For simplicity of implementation this is not a complete representation of all members and other 13 * information available via Java bytecode. For example, static initialisers and inner classes 14 * are unsupported. 15 * 16 * @author Ben Alex 17 * @author Stefan Schmidt 18 * @since 1.0 19 * 20 */ 21 public interface ItdTypeDetails extends MemberHoldingTypeDetails { 22 23 boolean isPrivilegedAspect(); 24 25 /** 26 * Returns the name of type which holds the aspect itself. 27 * 28 * <p> 29 * Note that the type receiving the introductions can be determined via {@link #getName()}. 30 * 31 * @return the aspect {@link JavaType} (never null) 32 */ 33 JavaType getAspect(); 34 35 /** 36 * @return the explicitly-registered imports this user wishes to have defined in the ITD (cannot be null, but may be empty) 37 */ 38 Set<JavaType> getRegisteredImports(); 39 40 /** 41 * Lists the field-level annotations. 42 * 43 * <p> 44 * This includes those annotations declared on the field, together with those defined via the ITD 45 * "declare @field: DestinationType: @Annotation" feature. 46 * 47 * @return an unmodifiable representation of the field and the annotations declared on this field (may be empty, but never null) 48 */ 49 List<DeclaredFieldAnnotationDetails> getFieldAnnotations(); 50 51 /** 52 * Lists the method-level annotations. 53 * 54 * <p> 55 * This includes those annotations declared on the method, together with those defined via the ITD 56 * "declare @field: DestinationType: @Annotation" feature. 57 * 58 * @return an unmodifiable representation of the method and the annotations declared on this method (may be empty, but never null) 59 */ 60 List<DeclaredMethodAnnotationDetails> getMethodAnnotations(); 61 }