package org.springframework.roo.addon.webflow;
import org.springframework.roo.model.JavaType;
/**
* Interface for {@link WebFlowOperationsImpl}.
*
* @author Ben Alex
* @author Sergio Clares
*
* @since 1.0
*/
public interface WebFlowOperations {
/**
* Installs a new flow in its own directory under /src/main/resources/templates.
* For example if the flow name is "main" then all flow artifacts will be in
* /src/main/resources/templates/main. The first time a flow is installed, Web
* Flow related configuration will also be added. The flow directory is expected
* to be used exclusively for flow-related artifacts. A new flow will not be
* created if the flow directory already exists.
*
* @param flowName the name of the flow to install
* @param moduleName the module where install the flow
* @param klass the class used to mainly bind flow views
* @throws IllegalStateException if the directory for the flow already
* exists.
*/
void installWebFlow(String flowName, String moduleName, JavaType klass);
boolean isWebFlowInstallationPossible();
}