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  @BoundAssembly(
084      formalName = "Help Description",
085      description = "Provides the primary documentation for the report, useful when there is no online documentation.",
086      useName = "help"
087  )
088  private MultiformatMessageString _help;
089
090  public ReportingDescriptor() {
091    this(null);
092  }
093
094  public ReportingDescriptor(IMetaschemaData data) {
095    this.__metaschemaData = data;
096  }
097
098  @Override
099  public IMetaschemaData getMetaschemaData() {
100    return __metaschemaData;
101  }
102
103  public String getId() {
104    return _id;
105  }
106
107  public void setId(String value) {
108    _id = value;
109  }
110
111  public UUID getGuid() {
112    return _guid;
113  }
114
115  public void setGuid(UUID value) {
116    _guid = value;
117  }
118
119  public String getName() {
120    return _name;
121  }
122
123  public void setName(String value) {
124    _name = value;
125  }
126
127  public MultiformatMessageString getShortDescription() {
128    return _shortDescription;
129  }
130
131  public void setShortDescription(MultiformatMessageString value) {
132    _shortDescription = value;
133  }
134
135  public MultiformatMessageString getFullDescription() {
136    return _fullDescription;
137  }
138
139  public void setFullDescription(MultiformatMessageString value) {
140    _fullDescription = value;
141  }
142
143  public URI getHelpUri() {
144    return _helpUri;
145  }
146
147  public void setHelpUri(URI value) {
148    _helpUri = value;
149  }
150
151  public MultiformatMessageString getHelp() {
152    return _help;
153  }
154
155  public void setHelp(MultiformatMessageString value) {
156    _help = value;
157  }
158
159  @Override
160  public String toString() {
161    return new ReflectionToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).toString();
162  }
163}