# Interface IIncrementalProjectBuilder2

public interface IIncrementalProjectBuilder2
This interfaces extends `IncrementalProjectBuilder`. This class provides optional additional API for the the `org.eclipse.core.resources.builders` standard extension point.

All builders must subclass `IncrementalProjectBuilder` and can optionally implement this interface.

Since:
  3.14
See Also:
  - `IncrementalProjectBuilder`

## Method Summary

Modifier and Type
Method
Description
`void`
`clean(Map<String,String> args, IProgressMonitor monitor)`
Clean is an opportunity for a builder to discard any additional state that has been computed as a result of previous builds.

## Method Details

### clean

void clean(Map<String,String> args, IProgressMonitor monitor) throws CoreException
Clean is an opportunity for a builder to discard any additional state that has been computed as a result of previous builds. It is recommended that builders override this method to delete all derived resources created by previous builds, and to remove all markers of type `IMarker.PROBLEM` that were created by previous invocations of the builder. The platform will take care of discarding the builder's last built state (there is no need to call `forgetLastBuiltState`).

This method is called as a result of invocations of `IWorkspace.build` or `IProject.build` where the build kind is `IncrementalProjectBuilder.CLEAN_BUILD`.

This method is long-running; progress and cancellation are provided by the given progress monitor. All builders should report their progress and honor cancel requests in a timely manner. Cancelation requests should be propagated to the caller by throwing `OperationCanceledException`.

Parameters:
  `args` - a table of builder-specific arguments keyed by argument name (key type: `String`, value type: `String`); `null` is equivalent to an empty map
  `monitor` - a progress monitor, or `null` if progress reporting and cancellation are not desired
Throws:
  `CoreException` - if this build fails.
Since:
  3.14
See Also:
  - `IWorkspace.build(int, IProgressMonitor)`
  - `IncrementalProjectBuilder.clean(IProgressMonitor)`
  - `IncrementalProjectBuilder.CLEAN_BUILD`
Restriction:
  This method is not intended to be referenced by clients.