Package org.eclipse.jdt.ui.text.java.correction

# Class ChangeCorrectionProposal

java.lang.Object
org.eclipse.jdt.core.manipulation.ChangeCorrectionProposalCore
org.eclipse.jdt.ui.text.java.correction.ChangeCorrectionProposal

All Implemented Interfaces:
  `ICommandAccess`, `IJavaCompletionProposal`, `ICompletionProposal`, `ICompletionProposalExtension5`, `ICompletionProposalExtension6`

Direct Known Subclasses:
  `CUCorrectionProposal`

public class ChangeCorrectionProposal extends ChangeCorrectionProposalCore implements IJavaCompletionProposal, ICommandAccess, ICompletionProposalExtension5, ICompletionProposalExtension6
Implementation of a Java completion proposal to be used for quick fix and quick assist proposals that are based on a `Change`. The proposal offers additional proposal information (based on the `Change`).

Since:
  3.8

## Field Summary

### Fields inherited from class org.eclipse.jdt.core.manipulation.ChangeCorrectionProposalCore

`fChange, fName, fRelevance`

### Fields inherited from interface org.eclipse.jdt.ui.text.java.correction.ICommandAccess

`ASSIST_SUFFIX, COMMAND_ID_PREFIX`

## Constructor Summary

Constructors
Constructor
Description
`ChangeCorrectionProposal(String name, Change change, int relevance)`
Constructs a change correction proposal.
`ChangeCorrectionProposal(String name, Change change, int relevance, Image image)`
Constructs a change correction proposal.

## Method Summary

Modifier and Type
Method
Description
`void`
`apply(IDocument document)`
`String`
`getAdditionalProposalInfo()`
`final Change`
`getChange()`
Returns the change that will be executed when the proposal is applied.
`IContextInformation`
`getContextInformation()`
`String`
`getDisplayString()`
`Image`
`getImage()`
`Point`
`getSelection(IDocument document)`
`StyledString`
`getStyledDisplayString()`
`protected void`
`performChange(IEditorPart activeEditor, IDocument document)`
Performs the change associated with this proposal.
`void`
`setImage(Image image)`
Sets the proposal's image or `null` if no image is desired.

### Methods inherited from class org.eclipse.jdt.core.manipulation.ChangeCorrectionProposalCore

`apply, createChange, getAdditionalProposalInfo, getCommandId, getCurrentChange, getName, getRelevance, performChange, setCommandId, setDisplayName, setRelevance`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.eclipse.jdt.ui.text.java.correction.ICommandAccess

`getCommandId`

### Methods inherited from interface org.eclipse.jface.text.contentassist.ICompletionProposalExtension5

`getAdditionalProposalInfo`

### Methods inherited from interface org.eclipse.jdt.ui.text.java.IJavaCompletionProposal

`getRelevance`

## Constructor Details

### ChangeCorrectionProposal

public ChangeCorrectionProposal(String name, Change change, int relevance, Image image)
Constructs a change correction proposal.

Parameters:
  `name` - the name that is displayed in the proposal selection dialog
  `change` - the change that is executed when the proposal is applied or `null` if the change will be created by implementors of `ChangeCorrectionProposalCore.createChange()`
  `relevance` - the relevance of this proposal
  `image` - the image that is displayed for this proposal or `null` if no image is desired

### ChangeCorrectionProposal

public ChangeCorrectionProposal(String name, Change change, int relevance)
Constructs a change correction proposal. Uses the default image for this proposal.

Parameters:
  `name` - The name that is displayed in the proposal selection dialog.
  `change` - The change that is executed when the proposal is applied or `null` if the change will be created by implementors of `ChangeCorrectionProposalCore.createChange()`.
  `relevance` - The relevance of this proposal.

## Method Details

### apply

public void apply(IDocument document)

Specified by:
  `apply` in interface `ICompletionProposal`

### performChange

protected void performChange(IEditorPart activeEditor, IDocument document) throws CoreException
Performs the change associated with this proposal.

Subclasses may extend, but must call the super implementation.

Parameters:
  `activeEditor` - the editor currently active or `null` if no editor is active
  `document` - the document of the editor currently active or `null` if no editor is visible
Throws:
  `CoreException` - when the invocation of the change failed

### getAdditionalProposalInfo

public String getAdditionalProposalInfo()

Specified by:
  `getAdditionalProposalInfo` in interface `ICompletionProposal`

### getContextInformation

public IContextInformation getContextInformation()

Specified by:
  `getContextInformation` in interface `ICompletionProposal`

### getDisplayString

public String getDisplayString()

Specified by:
  `getDisplayString` in interface `ICompletionProposal`

### getStyledDisplayString

public StyledString getStyledDisplayString()

Specified by:
  `getStyledDisplayString` in interface `ICompletionProposalExtension6`

### getImage

public Image getImage()

Specified by:
  `getImage` in interface `ICompletionProposal`

### getSelection

public Point getSelection(IDocument document)

Specified by:
  `getSelection` in interface `ICompletionProposal`

### setImage

public void setImage(Image image)
Sets the proposal's image or `null` if no image is desired.

Parameters:
  `image` - the desired image.

### getChange

public final Change getChange() throws CoreException
Returns the change that will be executed when the proposal is applied. This method calls `ChangeCorrectionProposalCore.createChange()` to compute the change.

Overrides:
  `getChange` in class `ChangeCorrectionProposalCore`
Returns:
  the change for this proposal, can be `null` in rare cases if creation of the change failed
Throws:
  `CoreException` - when the change could not be created