package org.jboss.windup.config.metadata; import org.jboss.windup.config.RuleProvider; import org.jboss.windup.config.loader.RuleLoaderContext; import org.jboss.windup.graph.GraphContext; import java.nio.file.Path; import java.util.Set; /** * This class provides convenience methods for retrieving a {@link RuleProviderRegistry}. The registry is cached for a period of time in order to * improve performance. This is useful for cases in which you need to repeatedly query the registry for information, such as when looking up metadata * in the user interface. * * @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a> */ public interface RuleProviderRegistryCache { /** * Specify that the user has added an additional path for user defined rules. */ void addUserRulesPath(Path path); /** * Returns all tags known by Windup. */ Set<String> getAvailableTags(); /** * Retrieves a list of available source technologies from the {@link RuleProvider}s. */ Set<String> getAvailableSourceTechnologies(); /** * Retrieves a list of available target technologies from the {@link RuleProvider}s. */ Set<String> getAvailableTargetTechnologies(); /** * Returns the {@link RuleProviderRegistry}, loading it if necessary. */ RuleProviderRegistry getRuleProviderRegistry(); /** * Load the registry using the given {@link GraphContext}. */ RuleProviderRegistry getRuleProviderRegistry(RuleLoaderContext ruleLoaderContext); }