package org.springframework.roo.classpath; import org.springframework.roo.model.CustomDataAccessor; import org.springframework.roo.model.JavaType; /** * Provides details of the actual type presented by a * {@link PhysicalTypeMetadata} instance. * <p> * Sub-interfaces are created for different major Java types, such as those * specific to classes, enums, and annotations. This allows sub-interfaces to * provide accessors applicable to the specific category of Java type. * * @author Ben Alex * @since 1.0 */ public interface PhysicalTypeDetails extends CustomDataAccessor { /** * @see #getType(), which returns the same thing but is better named */ JavaType getName(); /** * @return the category of Java type being provided by this * {@link PhysicalTypeDetails} instance (never null) */ PhysicalTypeCategory getPhysicalTypeCategory(); /** * Returns the {@link JavaType} provided by this physical type. If possible, * indicates any type parameters. * * @return the full name of the type that members will eventually be * available from when compiled, including any available type * parameters (may be null if unable to parse) * @since 1.2.0 */ JavaType getType(); }