Enum Class FindingDisposition

java.lang.Object
java.lang.Enum<FindingDisposition>
ubic.gemma.model.common.auditAndSecurity.curation.FindingDisposition
All Implemented Interfaces:
Serializable, Comparable<FindingDisposition>, Constable

public enum FindingDisposition extends Enum<FindingDisposition>

A curator's ruling on ONE finding inside an audit.

🛑 Not TriageVerdict. That answers how much a whole AnnotationSet matters; this answers whether the curator agrees with finding #7 inside it. A finding can be DISMISSED inside a set ruled TriageVerdict.MustFix. Both vocabularies read like verdicts and they are different fields — the distinction V30__annotation_set_triage.sql spelled out, and this enum is the other half of it.

Per-finding rather than per-set is a constraint, not a preference (uib, 2026-09-03): a curator routinely accepts one finding and rejects another on the same target, and one set-level verdict cannot carry that outcome.

The three values are the curation store's own, adopted rather than re-invented — accepted | dismissed | needs_more_info, as filed by the producing side and recorded in V30__annotation_set_triage.sql. Gemma spelling a fourth value or a different word here would split one vocabulary across two systems whose rows have to be compared.

There is no PENDING value, for the same reason TriageVerdict has none: a finding nobody has ruled on carries no disposition row, and absence is the state. A stored pending would be a second spelling of the same thing and would put an OR into every query over an audit's outstanding work.

  • Enum Constant Details

    • ACCEPTED

      public static final FindingDisposition ACCEPTED
      The curator agrees; the finding should be acted on.
    • DISMISSED

      public static final FindingDisposition DISMISSED
      The curator disagrees; the finding is wrong or does not matter.
    • NEEDS_MORE_INFO

      public static final FindingDisposition NEEDS_MORE_INFO
      Neither yet — ruling on this finding is blocked until someone supplies something the finding does not carry.

      Distinct from having no row at all: absence means nobody has looked, this means someone looked and could not decide on what was in front of them.

  • Method Details

    • values

      public static FindingDisposition[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static FindingDisposition valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • getDbValue

      public String getDbValue()
      Returns:
      the snake_case external form for JSON / wire surfaces — accepted, dismissed, needs_more_info. The underscore is in Enum.name() already, so unlike TriageVerdict.getDbValue() no word-boundary insertion is needed.
    • fromDbValue

      public static FindingDisposition fromDbValue(@Nullable String v)
      Parse the external form, accepting either case and the snake_case and kebab-case spellings other producers emit (needs_more_info, needs-more-info).
      Parameters:
      v - the external spelling
      Returns:
      the disposition it names
      Throws:
      IllegalArgumentException - if v names no disposition. Null and blank throw too: "no disposition" is the absence of a row, so a caller reaching here with nothing has a bug rather than a default.