package org.springframework.roo.classpath; import org.springframework.roo.metadata.MetadataProvider; import org.springframework.roo.model.JavaType; /** * A {@link MetadataProvider} that produces metadata when any of various trigger * annotations are present on a user project type (known as the governor). * * @author Andrew Swan * @since 1.2.0 */ public interface TriggerBasedMetadataProvider extends MetadataProvider { /** * Causes this provider to generate metadata if the given annotation is * present. * * @param trigger the trigger to register (can be <code>null</code>) */ void addMetadataTrigger(JavaType trigger); /** * Stops this provider generating metadata if the given annotation is * present. * * @param trigger the trigger to deregister (can be <code>null</code>) */ void removeMetadataTrigger(JavaType trigger); }