Class DatasetsWebService.TagCommit

java.lang.Object
ubic.gemma.rest.DatasetsWebService.EntityRef
ubic.gemma.rest.DatasetsWebService.TagCommit
Enclosing class:
DatasetsWebService

public static class DatasetsWebService.TagCommit extends DatasetsWebService.EntityRef
One experiment-level tag (CAB TagCommit); a statement-shaped tag rides its statements.

🛑 Every field below describes a NEW tag (one carrying a clientRef). An item carrying a gemmaId is a keep-marker — this section is add/delete only — and carrying any of these fields alongside the id is a 400, not an update.

Author:
tesarst
  • Constructor Details

    • TagCommit

      public TagCommit()
  • Method Details

    • getCategory

      @Nullable public DatasetsWebService.OntologyTermRef getCategory()
    • getValue

      @Nullable public DatasetsWebService.OntologyTermRef getValue()
    • getStatements

    • getFreeTextIntended

      @Nullable public Boolean getFreeTextIntended()
      Declares that this tag is meant to be free text — no value.uri — on purpose.

      An experiment tag with no URI is refused by default: it is usually an oversight, and after the fact it is indistinguishable from a grounding the client intended and forgot. Setting this says the absence is a decision.

      🛑 **Necessary but no longer sufficient.** Since Paul's ruling of 2026-09-06 a free-text experiment tag must ALSO carry a statement pairing a predicate with a grounded object (TermViolation.Reason.FREE_TEXT_NOT_HOOKED). The two are different questions — this one says the missing URI was deliberate, the hook says the annotation reaches the ontology somewhere — and a tag that satisfies one and not the other is refused. Setting this flag alone no longer gets a bare free-text tag accepted.

      🛑 Per item and deliberate. A client that sets it on every tag has not made the check stricter, it has turned the check off — and the ungrounded tags already on production are what that looks like accumulated over years.

      WHY the term was left ungrounded belongs in getSupportingEvidence(), which is the mechanism this project already uses to document a curation decision (Paul, 2026-09-01). This flag records that the decision was made; the evidence records what it was. Nothing enforces the pairing, but a declared free-text tag with no supporting evidence is a decision nobody wrote down, and it will read later exactly like the oversight this gate exists to catch.

    • getSupportingEvidence

      @Nullable public com.fasterxml.jackson.databind.JsonNode getSupportingEvidence()
      Verbatim provenance for this tag. Same shape and same null = "no change" convention as DatasetsWebService.StatementCommit.getSupportingEvidence(). When the tag rides a statement, evidence set on the statement wins; this is the fallback for a plain category/value tag.
    • getEvidenceCode

      @Nullable public String getEvidenceCode()
      How this tag was arrived at, as a GOEvidenceCode name. Same precedence as getSupportingEvidence(): when the tag rides a statement, a code set on the statement wins and this is the fallback.

      Omitted leaves the tag to the IC that ExpressionExperimentWriteServiceImpl#addCharacteristic fills in for a code-less add, which is what every tag written through this route has carried so far.

    • setCategory

      public void setCategory(@Nullable DatasetsWebService.OntologyTermRef category)
    • setValue

      public void setValue(@Nullable DatasetsWebService.OntologyTermRef value)
    • setStatements

      public void setStatements(DatasetsWebService.Section<DatasetsWebService.StatementCommit> statements)
    • setFreeTextIntended

      public void setFreeTextIntended(@Nullable Boolean freeTextIntended)
      Declares that this tag is meant to be free text — no value.uri — on purpose.

      An experiment tag with no URI is refused by default: it is usually an oversight, and after the fact it is indistinguishable from a grounding the client intended and forgot. Setting this says the absence is a decision.

      🛑 **Necessary but no longer sufficient.** Since Paul's ruling of 2026-09-06 a free-text experiment tag must ALSO carry a statement pairing a predicate with a grounded object (TermViolation.Reason.FREE_TEXT_NOT_HOOKED). The two are different questions — this one says the missing URI was deliberate, the hook says the annotation reaches the ontology somewhere — and a tag that satisfies one and not the other is refused. Setting this flag alone no longer gets a bare free-text tag accepted.

      🛑 Per item and deliberate. A client that sets it on every tag has not made the check stricter, it has turned the check off — and the ungrounded tags already on production are what that looks like accumulated over years.

      WHY the term was left ungrounded belongs in getSupportingEvidence(), which is the mechanism this project already uses to document a curation decision (Paul, 2026-09-01). This flag records that the decision was made; the evidence records what it was. Nothing enforces the pairing, but a declared free-text tag with no supporting evidence is a decision nobody wrote down, and it will read later exactly like the oversight this gate exists to catch.

    • setSupportingEvidence

      public void setSupportingEvidence(@Nullable com.fasterxml.jackson.databind.JsonNode supportingEvidence)
      Verbatim provenance for this tag. Same shape and same null = "no change" convention as DatasetsWebService.StatementCommit.getSupportingEvidence(). When the tag rides a statement, evidence set on the statement wins; this is the fallback for a plain category/value tag.
    • setEvidenceCode

      public void setEvidenceCode(@Nullable String evidenceCode)
      How this tag was arrived at, as a GOEvidenceCode name. Same precedence as getSupportingEvidence(): when the tag rides a statement, a code set on the statement wins and this is the fallback.

      Omitted leaves the tag to the IC that ExpressionExperimentWriteServiceImpl#addCharacteristic fills in for a code-less add, which is what every tag written through this route has carried so far.

    • toString

      public String toString()
      Overrides:
      toString in class DatasetsWebService.EntityRef
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class DatasetsWebService.EntityRef
    • canEqual

      protected boolean canEqual(Object other)
      Overrides:
      canEqual in class DatasetsWebService.EntityRef
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class DatasetsWebService.EntityRef