# Included Workflow Components

The Modeling Workflow Engine comes with several useful workflow components. Some of these components need to be described in detail.

### DirectoryCleaner (org.eclipse.emf.mwe.utils.DirectoryCleaner)

This component allows you to clean up a directory that contains generated artifacts before (re-)generating these artifacts.

The DirectoryCleaner component provides the following configuration properties:

Table 1. Properties of `DirectoryCleaner`

Name of property | Description
--- | ---
directory | Sets the path to the directory that should be cleaned. All subdirectories will be cleaned up as well.
useDefaultExcludes | This boolean value determines if directories that are internally used by version control systems, should be excluded from the cleanup. If this property is enabled, the directories that are used internally by i.e. Subversion will not be cleaned up.
excludes | This property allows to add further directories that should be excluded from the cleanup process.

### IfComponent (org.eclipse.emf.mwe.core.container.IfComponent)

The IfComponent is a very simple component that allows e.g. to temporarily disable one or more subcomponents.

For example:

    <workflow>
         <component class="my.first.WorkflowComponent">
                <aProp value="test"/>
         </component>
         <if cond="false">
         <component class="my.second.WorkflowComponent">
                <anotherProp value="test2"/>
         </component>
         </if>
         <component class="my.third.WorkflowComponent">
                <prop value="test"/>
         </component>
         </workflow>

This components provides only a single property:

Table 2. Properties of `IfComponent`

Name of property | Description
--- | ---
cond | Determines if the subcomponents will be executed or not. Only the values true or false are allowed.

### StandaloneSetup (org.eclipse.emf.mwe.utils.StandaloneSetup)

The StandaloneSetup class is not a workflow component in the narrow sense. However, this class needs to be referenced from within the workflow in order to set up the EMF metamodel in standalone mode.

StandaloneSetup provides the following properties:

Table 3. Properties of `StandaloneSetup`

Name of property | Description
--- | ---
platformUri | Sets the path to the platform. In general, this should be set to the path of the current workspace.
uriMap | Registers a URI mapping that allows to map one URI to another.
extension | Allows to register a factory class for a certain file extension.
registerGeneratedEPackage | Allows to register an externally generated EPackage.
registerEcoreFile | Allows to register an Ecore file.

### Writer (org.eclipse.emf.mwe.utils.Writer)

The Writer component allows you to write out models stored in a model slot into a file.

The Writer component provides the following configuration properties:

Table 4. Properties of `Writer`

Name of property | Description
--- | ---
modelSlot | Sets the name of the model slot that will be written out.
cloneSlotContents | This boolean value determines if the model contained in the specified slot will be cloned before it will be written out into a resource.
multipleResourcesInCaseOfLists | This boolean property specifies the writing behavior in the case that the specified model slot contains a list of models. If this property is set to true , each model will be written into a separate resource. Otherwise, all models will be written into a single resource.