# Eclipse Platform Build Notes 3.2 Stream
LTK Core Refactoring

### 3.2 M5, January 31, 2006

#### API

LTK Core has started to leverage the new ResourceChangeValidator API released in Core/Resources. Plug/ins that implement a participant are requested to add their resource changes to the pre-delta. Participants can do so using the new class ResourceChangeChecker which superceeds the old ValidateEditChecker. The new checker can be accessed via the OperationContext passed to the RefactoringParticipant#checkFinalConditions method (analog to the olde ValidateEditChecker).

### 3.2 M5, January 26, 2006

#### Implementation Changes

The refactoring framework has been extended by scripting facilities. Refactorings which support scripting can now be exported from the refactoring history and saved in a refactoring script. These scripts can then be reapplied on a remote workspace.

There is a new extension point `org.eclipse.ltk.core.refactoring.refactoringContributions` which allows refactoring implementors to contribute a refactoring contribution, in order to make their refactorings scriptable. Refactorings contributed by this extension point appear in the platform refactoring history and are exportable in refactoring scripts.

Please consult the documentation of the extension point for further information.

### 3.2 M4, December 7, 2005

#### Implementation Changes

Preliminary support for a refactoring-aware logical model support has been added:

Note: This API is considered experimental and may undergo several changes until its final release.

- org.eclipse.ltk.core.refactoring.model.AbstractRefactoringModelProvider
- org.eclipse.ltk.core.refactoring.model.RefactoringDescriptorResourceMapping
- org.eclipse.ltk.core.refactoring.model.RefactoringHistoryResourceMapping

### 3.2 M3, October 31, 2005

#### Implementation Changes

Preliminary support for a global refactoring history has been added:

Note: This API is considered experimental and may undergo several changes until its final release.

- org.eclipse.ltk.core.refactoring.history.IRefactoringExecutionListener / RefactoringExecutionEvent
- org.eclipse.ltk.core.refactoring.history.IRefactoringHistoryListener / RefactoringHistoryEvent
- org.eclipse.ltk.core.refactoring.history.IRefactoringHistoryService
- org.eclipse.ltk.core.refactoring.RefactoringDescriptorProxy (former RefactoringDescriptorHandle)
- org.eclipse.ltk.core.refactoring.IInitializableRefactoringComponent

### 3.2 M2, September 6, 2005

#### Implementation Changes

The management of a group category set has been moved from the `TextEditBasedChangeGroup` to a special text edit group `CategorizedTextEditGroup`.

### 3.2 M2, August 30, 2005

#### Implementation Changes

Support for group categories for text edit based changes has been added. This support enables the refactoring preview wizard to filter the change tree against certain kinds of changes (for example all textual change in comments and strings). The relevant new API classes are: `GroupCategory`, `GroupCategorySet` as well as the group category specific API additions on `TextEditBasedChange` and `TextEditBasedChangeGroup`.

### 3.2 M2, August 23, 2005

#### Implementation Changes

- New API has been added to support composite refactorings:
  - org.eclipse.ltk.core.refactoring.TextEditBasedChange
  - org.eclipse.ltk.core.refactoring.TextEditBasedChangeGroup
  - org.eclipse.ltk.core.refactoring.CompositeTextFileChange

- Additionally, preliminary support to persist refactorings has been added:

  Note: This API is considered experimental and may undergo several changes until its final release.

  - org.eclipse.ltk.core.refactoring.participants.GenericRefactoringArguments
  - org.eclipse.ltk.core.refactoring.RefactoringDescriptor
  - org.eclipse.ltk.core.refactoring.RefactoringSessionDescriptor
  - org.eclipse.ltk.core.refactoring.Change#getRefactoringDescriptor()