Interface ProblemCategory


  • @Incubating
    public interface ProblemCategory
    A hierarchical representation for a particular problem type.

    A category object follows a pattern similar to URNs, it has a namespace, a main category and a subcategory.

    The namespace contains information about the origin of the problem: whether it comes from the Gradle core runtime, or from a third-party plugin. For example, deprecation, or compilation is a main category.

    Subcategories can be an arbitrary list of strings, that ideally serve as a unique identifier. To use compilation as an example, [java, unused-variable] would be a subcategory, that along with the [compilation] main category, denotes a particular compiler warning. The exact definition of subcategories depends on the problem's domain.

    Since:
    8.6
    • Method Detail

      • getNamespace

        java.lang.String getNamespace()
        Returns the namespace. Describes the component reporting the problem (Gradle core or plugin ID). The currently used namespace for Gradle core is org.gradle. if the problem is reported by a plugin, the namespace should be the plugin ID.
        Returns:
        the problem's namespace.
        Since:
        8.6
      • getCategory

        java.lang.String getCategory()
        The main problem category. Currently used categories
             - compilation
             - deprecation
             - dependency-version-catalog
             - task-selection
             - task-validation
         
        Returns:
        The category string.
        Since:
        8.6
      • getSubcategories

        java.util.List<java.lang.String> getSubcategories()
        The problem's subcategories. Currently used subcategories
          - dependency-version-catalog
             - alias-not-finished
             - reserved-alias-name
             - catalog-file-does-not-exist
             - toml-syntax-error
             - too-many-import-files
             - too-many-import-invocation
             - no-import-files
           - deprecation
             - build-invocation
             - user-code-direct
             - user-code-indirect
           - compilation
             - groovy-dsl:compilation-failed
           - type-validation
             - property:annotation-invalid-in-context
             - property:cannot-use-optional-on-primitive-types
             - property:cannot-write-output
             - property:conflicting-annotations
             - property:ignored-property-must-not-be-annotated
             - property:implicit-dependency
             - property:incompatible-annotations
             - property:incorrect-use-of-input-annotation
             - property:input-file-does-not-exist
             - property:missing-annotation
             - property:missing-normalization-annotation
             - property:nested-map-unsupported-key-type
             - property:nested-type-unsupported
             - property:mutable-type-with-setter
             - property:private-getter-must-not-be-annotated
             - property:unexpected-input-file-type
             - property:unsupported-notation
             - property:unknown-implementation
             - property:unsupported-value-type
             - property:value-not-set
             - type:ignored-annotations-on-method
             - type:invalid-use-of-type-annotation
             - type:not-cacheable-without-reason
         
        Returns:
        the subcategories.
        Since:
        8.6