package org.springframework.roo.classpath.itd; import org.springframework.roo.classpath.details.MemberHoldingTypeDetails; import org.springframework.roo.classpath.scanner.MemberDetailsScanner; import org.springframework.roo.metadata.MetadataItem; /** * Indicates a {@link MetadataItem} capable of returning * {@link MemberHoldingTypeDetails}. * <p> * Most Roo metadata builds types, and therefore can provide member information * via the {@link MemberHoldingTypeDetails} interface. This interface offers a * convenient way for discovering available member information for iteration * etc. See for example {@link MemberDetailsScanner} for a common usage pattern. * * @author Ben Alex * @since 1.1.1 * @param <T> the type of {@link MemberHoldingTypeDetails} that will be provided */ public interface MemberHoldingTypeDetailsMetadataItem<T extends MemberHoldingTypeDetails> extends MetadataItem { /** * Obtains the {@link MemberHoldingTypeDetails}, if available. * <p> * An {@link MemberHoldingTypeDetails} should be returned even if no members * should be introduced. Only return null if there was a failure during * parsing or other unexpected condition. * * @return the details, or null if the details are unavailable or no member * details are required */ T getMemberHoldingTypeDetails(); }