package org.springframework.roo.classpath; import org.springframework.roo.classpath.details.ItdTypeDetails; import org.springframework.roo.model.JavaType; /** * An ITD store which can be inspected to see if ITDs associated with a type * have changed. * * @author James Tyrrell * @since 1.2.0 */ public interface ItdDiscoveryService { /** * Adds the presented {@link ItdTypeDetails} to the management service. * * @param itdTypeDetails to be added (required) */ void addItdTypeDetails(ItdTypeDetails itdTypeDetails); /** * Indicates whether ITDs associate with the passed in type has changed * since last invocation by the requesting class. * * @param requestingClass the class requesting the changed types * @param javaType the type to lookup to see if a change has occurred * @return a collection of MIDs which represent changed types */ boolean haveItdsChanged(String requestingClass, JavaType javaType); /** * Removes the {@link ItdTypeDetails} associated with the presented String. * * @param mid the ID of the {@link ItdTypeDetails} be removed (required) */ void removeItdTypeDetails(String mid); }