Spring Web Flow

org.springframework.webflow.config
Class FlowDefinitionResourceFactory

java.lang.Object
  extended by org.springframework.webflow.config.FlowDefinitionResourceFactory

public class FlowDefinitionResourceFactory
extends java.lang.Object

A factory for creating flow definition resources that serve as pointers to external Flow definition files.

Author:
Keith Donald, Scott Andrews

Constructor Summary
FlowDefinitionResourceFactory()
          Creates a new flow definition resource factory using a default resource loader.
FlowDefinitionResourceFactory(org.springframework.core.io.ResourceLoader resourceLoader)
          Creates a new flow definition resource factory using the specified resource loader.
 
Method Summary
 FlowDefinitionResource createClassPathResource(java.lang.String path, java.lang.Class<?> clazz)
          Create a classpath-based resource from the path provided.
 FlowDefinitionResource createFileResource(java.lang.String path)
          Create a file-based based resource from the file path provided.
 FlowDefinitionResource createResource(java.lang.String path)
          Create a flow definition resource from the path location provided.
 FlowDefinitionResource createResource(java.lang.String path, AttributeMap<java.lang.Object> attributes)
          Create a flow definition resource from the path location provided.
 FlowDefinitionResource createResource(java.lang.String path, AttributeMap<java.lang.Object> attributes, java.lang.String flowId)
          Create a flow definition resource from the path location provided.
 FlowDefinitionResource[] createResources(java.lang.String pattern, AttributeMap<java.lang.Object> attributes)
          Create an array of flow definition resources from the path pattern location provided.
protected  java.lang.String getFlowId(org.springframework.core.io.Resource flowResource)
          Obtains the flow id from the flow resource.
 void setBasePath(java.lang.String basePath)
          Sets the base removed from the flow path when determining the default flow id.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FlowDefinitionResourceFactory

public FlowDefinitionResourceFactory()
Creates a new flow definition resource factory using a default resource loader.


FlowDefinitionResourceFactory

public FlowDefinitionResourceFactory(org.springframework.core.io.ResourceLoader resourceLoader)
Creates a new flow definition resource factory using the specified resource loader.

Parameters:
resourceLoader - the resource loader
Method Detail

setBasePath

public void setBasePath(java.lang.String basePath)
Sets the base removed from the flow path when determining the default flow id.

'/WEB-INF' by default

Parameters:
basePath - the flow's base path

createResource

public FlowDefinitionResource createResource(java.lang.String path)
Create a flow definition resource from the path location provided.

Parameters:
path - the encoded Resource path.
Returns:
the flow definition resource

createResource

public FlowDefinitionResource createResource(java.lang.String path,
                                             AttributeMap<java.lang.Object> attributes)
Create a flow definition resource from the path location provided. The returned resource will be configured with the provided attributes.

Parameters:
path - the encoded Resource path.
attributes - the flow definition meta attributes to configure
Returns:
the flow definition resource

createResource

public FlowDefinitionResource createResource(java.lang.String path,
                                             AttributeMap<java.lang.Object> attributes,
                                             java.lang.String flowId)
Create a flow definition resource from the path location provided. The returned resource will be configured with the provided attributes and flow id.

Parameters:
path - the encoded Resource path.
attributes - the flow definition meta attributes to configure
flowId - the flow definition id to configure
Returns:
the flow definition resource

createResources

public FlowDefinitionResource[] createResources(java.lang.String pattern,
                                                AttributeMap<java.lang.Object> attributes)
                                         throws java.io.IOException
Create an array of flow definition resources from the path pattern location provided.

Parameters:
pattern - the encoded Resource path pattern.
attributes - meta attributes to apply to each flow definition resource
Returns:
the flow definition resources
Throws:
java.io.IOException

createFileResource

public FlowDefinitionResource createFileResource(java.lang.String path)
Create a file-based based resource from the file path provided.

Parameters:
path - the FileSystemResource path
Returns:
the file-based flow definition resource

createClassPathResource

public FlowDefinitionResource createClassPathResource(java.lang.String path,
                                                      java.lang.Class<?> clazz)
Create a classpath-based resource from the path provided.

Parameters:
path - the ClassPathResource path
clazz - to specify if the path should be relative to another class
Returns:
the classpath-based flow definition resource

getFlowId

protected java.lang.String getFlowId(org.springframework.core.io.Resource flowResource)
Obtains the flow id from the flow resource. By default, the flow id becomes the portion of the path between the basePath and the filename. If no directory structure is available then the filename without the extension is used. Subclasses may override.

For example, '${basePath}/booking.xml' becomes 'booking' and '${basePath}/hotels/booking/booking.xml' becomes 'hotels/booking'

Parameters:
flowResource - the flow resource
Returns:
the flow id

Spring Web Flow