package org.jboss.windup.tooling; import java.rmi.Remote; import java.rmi.RemoteException; import java.util.Collection; import java.util.List; import org.jboss.windup.tooling.quickfix.QuickfixLocationDTO; import org.jboss.windup.tooling.quickfix.QuickfixService; import org.jboss.windup.tooling.rules.RuleProviderRegistry; /** * The initial call, specifying the installation path to Windup. * * @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a> */ public interface ExecutionBuilder extends Remote { String LOOKUP_NAME = "ExecutionBuilder"; /** * Start building a Windup execution with a windup that is installed at the specified path. */ void setWindupHome(String windupHome) throws RemoteException; /** * Sets the callback that will be used for monitoring progress. */ void setProgressMonitor(WindupToolingProgressMonitor monitor) throws RemoteException; /** * Sets the input path (application source directory, or application binary file). */ void setInput(String input) throws RemoteException; /** * Sets a pattern of file paths to ignore during processing. */ void ignore(String ignorePattern) throws RemoteException; /** * Sets the package name prefixes to scan (the default is to scan all packages). */ void includePackage(String includePackagePrefix) throws RemoteException; /** * Sets the package name prefixes to ignore. */ void excludePackage(String excludePackagePrefix) throws RemoteException; /** * Sets the option with the specified name to the specified value. Option names can be found in static variables on {@link ConfigurationOption} * implementations. */ void setOption(String name, Object value) throws RemoteException; /** * Execute windup. */ ExecutionResults execute() throws RemoteException; /** * Sets the output path for Windup (where the graph will be stored, and where the reports will be generated). */ void setOutput(String output) throws RemoteException; /** * Includes the provided list of package prefixes. */ void includePackages(Collection<String> includePackagePrefixes) throws RemoteException; /** * Sets a list of package name prefixes to ignore. */ void excludePackages(Collection<String> excludePackagePrefixes) throws RemoteException; /** * Switches the engine to run in source only mode (no decompilation). */ void sourceOnlyMode() throws RemoteException; /** * Indicates that Windup should not generate reports at the end. */ void skipReportGeneration() throws RemoteException; /** * Adds a custom uer rules path. */ void addUserRulesPath(String rulesPath) throws RemoteException; /** * Adds a set of custom uer rules paths. */ void addUserRulesPaths(Iterable<String> rulesPath) throws RemoteException; /** * Clears the configuration information. */ void clear() throws RemoteException; /** * Terminates the runtime that registered this ExecutionBuilder. */ void terminate() throws RemoteException; /** * Returns the Windup version. */ String getVersion() throws RemoteException; /** * Sets the version of Windup. */ void setVersion(String version) throws RemoteException; /** * Returns the registry containing the rule providers. */ RuleProviderRegistry getRuleProviderRegistry(List<String> paths) throws RemoteException; /** * Returns the registry containing the system rule providers. */ RuleProviderRegistry getSystemRuleProviderRegistry() throws RemoteException; /** * Executes the quickfix transformation. */ String transform(String transformationID, QuickfixLocationDTO locationDTO) throws RemoteException; }