001package org.schemastore.json.sarif.x210;
002
003import gov.nist.secauto.metaschema.core.datatype.adapter.StringAdapter;
004import gov.nist.secauto.metaschema.core.datatype.adapter.UriAdapter;
005import gov.nist.secauto.metaschema.core.datatype.adapter.UuidAdapter;
006import gov.nist.secauto.metaschema.core.model.IBoundObject;
007import gov.nist.secauto.metaschema.core.model.IMetaschemaData;
008import gov.nist.secauto.metaschema.databind.model.annotations.BoundAssembly;
009import gov.nist.secauto.metaschema.databind.model.annotations.BoundField;
010import gov.nist.secauto.metaschema.databind.model.annotations.BoundFlag;
011import gov.nist.secauto.metaschema.databind.model.annotations.MetaschemaAssembly;
012import java.lang.Override;
013import java.lang.String;
014import java.net.URI;
015import java.util.UUID;
016import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
017import org.apache.commons.lang3.builder.ToStringStyle;
018
019/**
020 * Metadata that describes a specific report produced by the tool, as part of the analysis it provides or its runtime reporting.
021 */
022@MetaschemaAssembly(
023    formalName = "Reporting Descriptor",
024    description = "Metadata that describes a specific report produced by the tool, as part of the analysis it provides or its runtime reporting.",
025    name = "reportingDescriptor",
026    moduleClass = SarifModule.class
027)
028public class ReportingDescriptor implements IBoundObject {
029  private final IMetaschemaData __metaschemaData;
030
031  /**
032   * "A stable, opaque identifier for the report."
033   */
034  @BoundFlag(
035      formalName = "Reporting Descriptor Identifier",
036      description = "A stable, opaque identifier for the report.",
037      name = "id",
038      required = true,
039      typeAdapter = StringAdapter.class
040  )
041  private String _id;
042
043  /**
044   * "A stable, unique identifier for the reporting descriptor."
045   */
046  @BoundFlag(
047      formalName = "Reporting Descriptor Unique Identifier",
048      description = "A stable, unique identifier for the reporting descriptor.",
049      name = "guid",
050      typeAdapter = UuidAdapter.class
051  )
052  private UUID _guid;
053
054  @BoundField(
055      formalName = "Reporting Descriptor Name",
056      description = "A report identifier that is understandable to an end user.",
057      useName = "name"
058  )
059  private String _name;
060
061  @BoundAssembly(
062      formalName = "Short Description",
063      description = "A concise description of the report. Should be a single sentence that is understandable when visible space is limited to a single line of text.",
064      useName = "shortDescription"
065  )
066  private MultiformatMessageString _shortDescription;
067
068  @BoundAssembly(
069      formalName = "Full Description",
070      description = "A description of the report. Should, as far as possible, provide details sufficient to enable resolution of any problem indicated by the result.",
071      useName = "fullDescription"
072  )
073  private MultiformatMessageString _fullDescription;
074
075  @BoundField(
076      formalName = "Help URI",
077      description = "A URI where the primary documentation for the report can be found.",
078      useName = "helpUri",
079      typeAdapter = UriAdapter.class
080  )
081  private URI _helpUri;
082
083  public ReportingDescriptor() {
084    this(null);
085  }
086
087  public ReportingDescriptor(IMetaschemaData data) {
088    this.__metaschemaData = data;
089  }
090
091  @Override
092  public IMetaschemaData getMetaschemaData() {
093    return __metaschemaData;
094  }
095
096  public String getId() {
097    return _id;
098  }
099
100  public void setId(String value) {
101    _id = value;
102  }
103
104  public UUID getGuid() {
105    return _guid;
106  }
107
108  public void setGuid(UUID value) {
109    _guid = value;
110  }
111
112  public String getName() {
113    return _name;
114  }
115
116  public void setName(String value) {
117    _name = value;
118  }
119
120  public MultiformatMessageString getShortDescription() {
121    return _shortDescription;
122  }
123
124  public void setShortDescription(MultiformatMessageString value) {
125    _shortDescription = value;
126  }
127
128  public MultiformatMessageString getFullDescription() {
129    return _fullDescription;
130  }
131
132  public void setFullDescription(MultiformatMessageString value) {
133    _fullDescription = value;
134  }
135
136  public URI getHelpUri() {
137    return _helpUri;
138  }
139
140  public void setHelpUri(URI value) {
141    _helpUri = value;
142  }
143
144  @Override
145  public String toString() {
146    return new ReflectionToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).toString();
147  }
148}