Module java.compiler
Package javax.tools

# Interface Diagnostic<S>

Type Parameters:
  `S` - the type of source object used by this diagnostic

public interface Diagnostic<S>
Interface for diagnostics from tools. A diagnostic usually reports a problem at a specific position in a source file. However, not all diagnostics are associated with a position or a file.

A position is a zero-based character offset from the beginning of a file. Negative values (except `NOPOS`) are not valid positions.

Line and column numbers begin at 1. Negative values (except `NOPOS`) and 0 are not valid line or column numbers.

Since:
  1.6

## Nested Class Summary

Nested Classes
Modifier and Type
Interface
Description
`static enum`
`Diagnostic.Kind`
Kinds of diagnostics, for example, error or warning.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final long`
`NOPOS`
Used to signal that no position is available.

## Method Summary

Modifier and Type
Method
Description
`String`
`getCode()`
Returns a diagnostic code indicating the type of diagnostic.
`long`
`getColumnNumber()`
Returns the column number of the character offset returned by getPosition().
`long`
`getEndPosition()`
Returns the character offset from the beginning of the file associated with this diagnostic that indicates the end of the problem.
`Diagnostic.Kind`
`getKind()`
Returns the kind of this diagnostic, for example, error or warning.
`long`
`getLineNumber()`
Returns the line number of the character offset returned by getPosition().
`String`
`getMessage(Locale locale)`
Returns a localized message for the given locale.
`long`
`getPosition()`
Returns a character offset from the beginning of the source object associated with this diagnostic that indicates the location of the problem.
`S`
`getSource()`
Returns the source object associated with this diagnostic.
`long`
`getStartPosition()`
Returns the character offset from the beginning of the file associated with this diagnostic that indicates the start of the problem.

## Field Details

### NOPOS

static final long NOPOS
Used to signal that no position is available.

See Also:
  - Constant Field Values

## Method Details

### getKind

Diagnostic.Kind getKind()
Returns the kind of this diagnostic, for example, error or warning.

Returns:
  the kind of this diagnostic

### getSource

S getSource()
Returns the source object associated with this diagnostic.

Returns:
  the source object associated with this diagnostic. `null` if no source object is associated with the diagnostic.

### getPosition

long getPosition()
Returns a character offset from the beginning of the source object associated with this diagnostic that indicates the location of the problem. In addition, the following must be true:

`getStartPosition() <= getPosition()`

`getPosition() <= getEndPosition()`

Returns:
  character offset from beginning of source; `NOPOS` if `getSource()` would return `null` or if no location is suitable

### getStartPosition

long getStartPosition()
Returns the character offset from the beginning of the file associated with this diagnostic that indicates the start of the problem.

Returns:
  offset from beginning of file; `NOPOS` if and only if `getPosition()` returns `NOPOS`

### getEndPosition

long getEndPosition()
Returns the character offset from the beginning of the file associated with this diagnostic that indicates the end of the problem.

Returns:
  offset from beginning of file; `NOPOS` if and only if `getPosition()` returns `NOPOS`

### getLineNumber

long getLineNumber()
Returns the line number of the character offset returned by getPosition().

Returns:
  a line number or `NOPOS` if and only if `getPosition()` returns `NOPOS`

### getColumnNumber

long getColumnNumber()
Returns the column number of the character offset returned by getPosition().

Returns:
  a column number or `NOPOS` if and only if `getPosition()` returns `NOPOS`

### getCode

String getCode()
Returns a diagnostic code indicating the type of diagnostic. The code is implementation-dependent and might be `null`.

Returns:
  a diagnostic code

### getMessage

String getMessage(Locale locale)
Returns a localized message for the given locale. The actual message is implementation-dependent. If the locale is `null` use the default locale.

Parameters:
  `locale` - a locale; might be `null`
Returns:
  a localized message