package org.springframework.roo.classpath; import org.springframework.roo.classpath.details.ClassOrInterfaceTypeDetails; import org.springframework.roo.classpath.itd.ItdMetadataProvider; import org.springframework.roo.classpath.itd.MemberHoldingTypeDetailsMetadataItem; import org.springframework.roo.classpath.scanner.MemberDetailsScanner; import org.springframework.roo.metadata.MetadataProvider; import org.springframework.roo.model.JavaType; /** * The metadata for a Java type in the user's project. Excludes any members * introduced via an inter-type declaration (ITD) or other bytecode modification * technique. * * @author Ben Alex * @since 1.0 * @see PhysicalTypeMetadataProvider * @see MemberDetailsScanner */ public interface PhysicalTypeMetadata extends MemberHoldingTypeDetailsMetadataItem<ClassOrInterfaceTypeDetails> { /** * Obtains the canonical file path to where an ITD can be emitted for this * physical Java type. * * @param metadataProvider so the * {@link ItdMetadataProvider#getItdUniquenessFilenameSuffix()} * can be queried (never null) * @return a full file path that can be used to produce an ITD (never null) * @deprecated use {@link #getItdCanonicalPath(ItdMetadataProvider)} instead * (fixes typo) */ @Deprecated String getItdCanoncialPath(ItdMetadataProvider metadataProvider); /** * Obtains the canonical file path to where an ITD can be emitted for this * physical Java type. * * @param metadataProvider the {@link MetadataProvider} that produces the * ITD in question (never null) * @return a full file path that can be used to produce an ITD (never null) * @since 1.2.0 */ String getItdCanonicalPath(ItdMetadataProvider metadataProvider); /** * Obtains the {@link JavaType} which represents an ITD for this physical * Java type. * * @param metadataProvider so the * {@link ItdMetadataProvider#getItdUniquenessFilenameSuffix()} * can be queried (never null) * @return the {@link JavaType} applicable for this ITD (never null) */ JavaType getItdJavaType(ItdMetadataProvider metadataProvider); /** * @return the location of the disk file containing this resource, in * canonical name format (never null) */ String getPhysicalLocationCanonicalPath(); /** * Returns the Java type for this physical type * * @return a non-<code>null</code> type * @since 1.2.0 */ JavaType getType(); }