# Interface ProblemDefinition

@Incubating public interface ProblemDefinition
Describes a specific problem without context.

For example, in the domain of Java compilation problems, an unused variable warning could be described as such:

- group: compilation:java
- unused variable
- severity: WARNING
- ...

The category and the label uniquely identify the problem definition, the remaining fields only supply additional information.

Since:
  8.13

- ## Method Summary

  Modifier and Type
  Method
  Description
  `@Nullable DocLink`
  `getDocumentationLink()`
  A link to the documentation for this problem.
  `ProblemId`
  `getId()`
  The problem id.
  `Severity`
  `getSeverity()`
  Problem severity.

- ## Method Details

  - ### getId

    ProblemId getId()
    The problem id.
    Since:
      8.13

  - ### getSeverity

    Severity getSeverity()
    Problem severity.

    The severity of a problem is a hint to the user about how important the problem is. ERROR will fail the build, WARNING will not.

    Since:
      8.13

  - ### getDocumentationLink

    @Nullable DocLink getDocumentationLink()
    A link to the documentation for this problem.
    Since:
      8.13