# IdeaWorkspace

API Documentation: | `IdeaWorkspace`

Generates an IDEA workspace file.

### Properties

Property | Description
`inputFile` | The input file to load the initial configuration from. Defaults to the output file. If the specified input file does not exist, this task uses some default initial configuration.
`outputFile` | The output file to write the final configuration to.

### Property details

#### `File` `inputFile`

The input file to load the initial configuration from. Defaults to the output file. If the specified input file does not exist, this task uses some default initial configuration.

#### `File` `outputFile`

The output file to write the final configuration to.

Default with `idea` plugin:
  ``${project.projectDir}`/`${project.name}`.iws`

### Script blocks

No script blocks

### Methods

Method | Description
`beforeConfigured(closure)` | Adds a closure to be called before the domain object is configured by this task. The domain object is passed as a parameter to the closure.
`beforeConfigured(action)` | Adds an action to be called before the domain object is configured by this task. The domain object is passed as a parameter to the action.
`whenConfigured(closure)` | Adds a closure to be called after the domain object has been configured by this task. The domain object is passed as a parameter to the closure.
`whenConfigured(action)` | Adds an action to be called after the domain object has been configured by this task. The domain object is passed as a parameter to the action.
`withXml(closure)` | Adds a closure to be called when the XML document has been created. The XML is passed to the closure as a parameter in form of a `XmlProvider`. The closure can modify the XML before it is written to the output file.
`withXml(action)` | Adds an action to be called when the XML document has been created. The XML is passed to the action as a parameter in form of a `XmlProvider`. The action can modify the XML before it is written to the output file.

### Method details

#### `void` `beforeConfigured`(`Closure` closure)

Adds a closure to be called before the domain object is configured by this task. The domain object is passed as a parameter to the closure.

The closure is executed after the domain object has been loaded from the input file. Using this method allows you to change the domain object in some way before the task configures it.

#### `void` `beforeConfigured`(``Action`<? super `T`>` action)

Adds an action to be called before the domain object is configured by this task. The domain object is passed as a parameter to the action.

The action is executed after the domain object has been loaded from the input file. Using this method allows you to change the domain object in some way before the task configures it.

#### `void` `whenConfigured`(`Closure` closure)

Adds a closure to be called after the domain object has been configured by this task. The domain object is passed as a parameter to the closure.

The closure is executed just before the domain object is written to the output file. Using this method allows you to override the configuration applied by this task.

#### `void` `whenConfigured`(``Action`<? super `T`>` action)

Adds an action to be called after the domain object has been configured by this task. The domain object is passed as a parameter to the action.

The action is executed just before the domain object is written to the output file. Using this method allows you to override the configuration applied by this task.

#### `void` `withXml`(`Closure` closure)

Adds a closure to be called when the XML document has been created. The XML is passed to the closure as a parameter in form of a `XmlProvider`. The closure can modify the XML before it is written to the output file.

#### `void` `withXml`(``Action`<? super `XmlProvider`>` action)

Adds an action to be called when the XML document has been created. The XML is passed to the action as a parameter in form of a `XmlProvider`. The action can modify the XML before it is written to the output file.