Package org.eclipse.jdt.core

# Class CorrectionEngine

java.lang.Object
org.eclipse.jdt.core.CorrectionEngine

public class CorrectionEngine extends Object
This class is the entry point for source corrections. This class is intended to be instantiated by clients.

Since:
  2.0
Restriction:
  This class is not intended to be subclassed by clients.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected static final int`
`CLASSES`
This field is not intended to be used by client.
`protected ICompilationUnit`
`compilationUnit`
This field is not intended to be used by client.
`protected CompletionRequestor`
`completionRequestor`
This field is not intended to be used by client.
`protected int`
`correctionEnd`
This field is not intended to be used by client.
`protected ICorrectionRequestor`
`correctionRequestor`
This field is not intended to be used by client.
`protected int`
`correctionStart`
This field is not intended to be used by client.
`protected static final int`
`FIELD`
This field is not intended to be used by client.
`protected int`
`filter`
This field is not intended to be used by client.
`protected static final int`
`IMPORT`
This field is not intended to be used by client.
`protected static final int`
`INTERFACES`
This field is not intended to be used by client.
`protected static final int`
`LOCAL`
This field is not intended to be used by client.
`protected static final int`
`METHOD`
This field is not intended to be used by client.
`protected int`
`prefixLength`
This field is not intended to be used by client.

## Constructor Summary

Constructors
Constructor
Description
`CorrectionEngine(Map setting)`
The CorrectionEngine is responsible for computing problem corrections.

## Method Summary

Modifier and Type
Method
Description
`void`
`computeCorrections(org.eclipse.core.resources.IMarker marker, ICompilationUnit targetUnit, int positionOffset, ICorrectionRequestor requestor)`
Performs code correction for the given marker, reporting results to the given correction requestor.
`void`
`computeCorrections(IProblem problem, ICompilationUnit targetUnit, ICorrectionRequestor requestor)`
Performs code correction for the given IProblem, reporting results to the given correction requestor.
`static String[]`
`getAllWarningTokens()`
Return an array of strings which contains one entry per warning token accepted by the `@SuppressWarnings` annotation.
`static String[]`
`getProblemArguments(org.eclipse.core.resources.IMarker problemMarker)`
Helper method for decoding problem marker attributes.
`static String`
`getWarningToken(int problemID)`
Returns a token which can be used to suppress a given warning using `@SuppressWarnings` annotation, for a given problem ID (`IProblem`).

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

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

## Field Details

### correctionStart

protected int correctionStart
This field is not intended to be used by client.

### correctionEnd

protected int correctionEnd
This field is not intended to be used by client.

### prefixLength

protected int prefixLength
This field is not intended to be used by client.

### compilationUnit

protected ICompilationUnit compilationUnit
This field is not intended to be used by client.

### correctionRequestor

protected ICorrectionRequestor correctionRequestor
This field is not intended to be used by client.

### CLASSES

protected static final int CLASSES
This field is not intended to be used by client.

See Also:
  - Constant Field Values

### INTERFACES

protected static final int INTERFACES
This field is not intended to be used by client.

See Also:
  - Constant Field Values

### IMPORT

protected static final int IMPORT
This field is not intended to be used by client.

See Also:
  - Constant Field Values

### METHOD

protected static final int METHOD
This field is not intended to be used by client.

See Also:
  - Constant Field Values

### FIELD

protected static final int FIELD
This field is not intended to be used by client.

See Also:
  - Constant Field Values

### LOCAL

protected static final int LOCAL
This field is not intended to be used by client.

See Also:
  - Constant Field Values

### filter

protected int filter
This field is not intended to be used by client.

### completionRequestor

protected CompletionRequestor completionRequestor
This field is not intended to be used by client.

## Constructor Details

### CorrectionEngine

public CorrectionEngine(Map setting)
The CorrectionEngine is responsible for computing problem corrections.

Parameters:
  `setting` - java.util.Map set of options used to configure the code correction engine. CURRENTLY THERE IS NO CORRECTION SPECIFIC SETTINGS.

## Method Details

### computeCorrections

public void computeCorrections(org.eclipse.core.resources.IMarker marker, ICompilationUnit targetUnit, int positionOffset, ICorrectionRequestor requestor) throws JavaModelException
Performs code correction for the given marker, reporting results to the given correction requestor. Correction results are answered through a requestor.

Parameters:
  `marker` - the marker which describe the problem to correct.
  `targetUnit` - replace the compilation unit given by the marker. Ignored if null.
  `positionOffset` - the offset of position given by the marker.
  `requestor` - the given correction requestor
Throws:
  `IllegalArgumentException` - if `requestor` is `null`
  `JavaModelException` - currently this exception is never thrown, but the opportunity to thrown an exception when the correction failed is kept for later.
Since:
  2.0

### computeCorrections

public void computeCorrections(IProblem problem, ICompilationUnit targetUnit, ICorrectionRequestor requestor) throws JavaModelException
Performs code correction for the given IProblem, reporting results to the given correction requestor. Correction results are answered through a requestor.

Parameters:
  `problem` - the problem which describe the problem to correct.
  `targetUnit` - denote the compilation unit in which correction occurs. Cannot be null.
  `requestor` - the given correction requestor
Throws:
  `IllegalArgumentException` - if `targetUnit` or `requestor` is `null`
  `JavaModelException` - currently this exception is never thrown, but the opportunity to thrown an exception when the correction failed is kept for later.
Since:
  2.0

### getAllWarningTokens

public static String[] getAllWarningTokens()
Return an array of strings which contains one entry per warning token accepted by the `@SuppressWarnings` annotation. This array is neither null nor empty, it contains at least the String `all`. It should not be modified by the caller (please take a copy if modifications are needed).
Note: The tokens returned are not necessarily standardized across Java compilers. If you were to use one of these tokens in a `@SuppressWarnings` annotation in the Java source code, the effects (if any) may vary from compiler to compiler.

Returns:
  an array of strings which contains one entry per warning token accepted by the `@SuppressWarnings` annotation.
Since:
  3.2

### getProblemArguments

public static String[] getProblemArguments(org.eclipse.core.resources.IMarker problemMarker)
Helper method for decoding problem marker attributes. Returns an array of String arguments extracted from the problem marker "arguments" attribute, or `null` if the marker "arguments" attribute is missing or ill-formed.

Parameters:
  `problemMarker` - the problem marker to decode arguments from.
Returns:
  an array of String arguments, or `null` if unable to extract arguments
Since:
  2.1

### getWarningToken

public static String getWarningToken(int problemID)
Returns a token which can be used to suppress a given warning using `@SuppressWarnings` annotation, for a given problem ID (`IProblem`). If a particular problem is not suppressable, `null` will be returned.

Note: `@SuppressWarnings` can only suppress warnings, which means that if some problems got promoted to ERROR using custom compiler settings (`IJavaProject.setOption(String, String)`), the `@SuppressWarnings` annotation will be ineffective.

Note: `@SuppressWarnings` can be argumented with `"all"` so as to suppress all possible warnings at once.

Note: The tokens returned are not necessarily standardized across Java compilers. If you were to use one of these tokens in an @SuppressWarnings annotation in the Java source code, the effects (if any) may vary from compiler to compiler.

Parameters:
  `problemID` - the ID of a given warning to suppress
Returns:
  a String which can be used in `@SuppressWarnings` annotation, or `null` if unable to suppress this warning.
Since:
  3.1