Package org.gradle.api.problems

# Interface ProblemSpec

@Incubating public interface ProblemSpec
Provides options to configure problems.

Since:
  8.6
See Also:
  - `ProblemReporter`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ProblemSpec`
  `contextualLabel(String contextualLabel)`
  Declares a short, but context-dependent message for this problem.
  `ProblemSpec`
  `details(String details)`
  The long description of this problem.
  `ProblemSpec`
  `documentedAt(String url)`
  Declares where this problem is documented.
  `ProblemSpec`
  `fileLocation(String path)`
  Declares that this problem is in a file.
  `ProblemSpec`
  `id(String name, String displayName)`
  Defines simple identification for this problem.
  `ProblemSpec`
  `id(String name, String displayName, ProblemGroup parent)`
  Defines simple identification for this problem.
  `ProblemSpec`
  `lineInFileLocation(String path, int line)`
  Declares that this problem is in a file on a line.
  `ProblemSpec`
  `lineInFileLocation(String path, int line, int column)`
  Declares that this problem is in a file with on a line at a certain position.
  `ProblemSpec`
  `lineInFileLocation(String path, int line, int column, int length)`
  Declares that this problem is in a file with on a line at a certain position.
  `ProblemSpec`
  `offsetInFileLocation(String path, int offset, int length)`
  Declares that this problem is in a file at a certain global position with a given length.
  `ProblemSpec`
  `severity(Severity severity)`
  Declares the severity of the problem.
  `ProblemSpec`
  `solution(String solution)`
  A description of how to solve this problem.
  `ProblemSpec`
  `stackLocation()`
  Declares that this problem should automatically collect the location information based on the current stack trace.
  `ProblemSpec`
  `withException(Throwable t)`
  The exception causing this problem.

- ## Method Details

  - ### id

    ProblemSpec id(String name, String displayName)
    Defines simple identification for this problem.

    It is a mandatory property to configure when emitting a problem with `ProblemReporter`..

    Calling this method will set the reported problem group to `SharedProblemGroup.generic()`

    Parameters:
      `name` - the name of the problem. As a convention kebab-case-formatting should be used.
      `displayName` - a human-readable representation of the problem, free of any contextual information.
    Returns:
      this
    Since:
      8.8

  - ### id

    ProblemSpec id(String name, String displayName, ProblemGroup parent)
    Defines simple identification for this problem.

    It is a mandatory property to configure when emitting a problem with `ProblemReporter`.

    Parameters:
      `name` - the name of the problem. As a convention kebab-case-formatting should be used.
      `displayName` - a human-readable representation of the problem, free of any contextual information.
      `parent` - the container problem group.
    Returns:
      this
    Since:
      8.8

  - ### contextualLabel

    ProblemSpec contextualLabel(String contextualLabel)
    Declares a short, but context-dependent message for this problem.
    Parameters:
      `contextualLabel` - the short message
    Returns:
      this
    Since:
      8.8

  - ### documentedAt

    ProblemSpec documentedAt(String url)
    Declares where this problem is documented.
    Returns:
      this
    Since:
      8.6

  - ### fileLocation

    ProblemSpec fileLocation(String path)
    Declares that this problem is in a file.
    Parameters:
      `path` - the file location
    Returns:
      this
    Since:
      8.6

  - ### lineInFileLocation

    ProblemSpec lineInFileLocation(String path, int line)
    Declares that this problem is in a file on a line.
    Parameters:
      `path` - the file location
      `line` - the one-indexed line number
    Returns:
      this
    Since:
      8.6

  - ### lineInFileLocation

    ProblemSpec lineInFileLocation(String path, int line, int column)
    Declares that this problem is in a file with on a line at a certain position.
    Parameters:
      `path` - the file location
      `line` - the one-indexed line number
      `column` - the one-indexed column
    Returns:
      this
    Since:
      8.6

  - ### lineInFileLocation

    ProblemSpec lineInFileLocation(String path, int line, int column, int length)
    Declares that this problem is in a file with on a line at a certain position.
    Parameters:
      `path` - the file location
      `line` - the one-indexed line number
      `column` - the one-indexed column
      `length` - the length of the text
    Returns:
      this
    Since:
      8.6

  - ### offsetInFileLocation

    ProblemSpec offsetInFileLocation(String path, int offset, int length)
    Declares that this problem is in a file at a certain global position with a given length.
    Parameters:
      `path` - the file location
      `offset` - the zero-indexed global offset from the beginning of the file
      `length` - the length of the text
    Returns:
      this
    Since:
      8.6

  - ### stackLocation

    ProblemSpec stackLocation()
    Declares that this problem should automatically collect the location information based on the current stack trace.
    Returns:
      this
    Since:
      8.6

  - ### details

    ProblemSpec details(String details)
    The long description of this problem.
    Parameters:
      `details` - the details
    Returns:
      this
    Since:
      8.6

  - ### solution

    ProblemSpec solution(String solution)
    A description of how to solve this problem.
    Parameters:
      `solution` - the solution.
    Returns:
      this
    Since:
      8.6

  - ### withException

    ProblemSpec withException(Throwable t)
    The exception causing this problem.
    Parameters:
      `t` - the exception.
    Returns:
      this
    Since:
      8.11

  - ### severity

    ProblemSpec severity(Severity severity)
    Declares the severity of the problem.
    Parameters:
      `severity` - the severity
    Returns:
      this
    Since:
      8.6