001/*
002 * mzTab-M reference implementation and validation API.
003 * This is the mzTab-M reference implementation and validation API service.
004 *
005 * OpenAPI spec version: 2.0.0
006 * Contact: nils.hoffmann@isas.de
007 *
008 * NOTE: This class is auto generated by the swagger code generator program.
009 * https://github.com/swagger-api/swagger-codegen.git
010 * Do not edit the class manually.
011 */
012
013
014package de.isas.mztab2.model;
015
016import java.util.Objects;
017import java.util.Arrays;
018import com.fasterxml.jackson.annotation.JsonProperty;
019import com.fasterxml.jackson.annotation.JsonCreator;
020import com.fasterxml.jackson.annotation.JsonValue;
021import de.isas.mztab2.model.Comment;
022import de.isas.mztab2.model.OptColumnMapping;
023import de.isas.mztab2.model.Parameter;
024import de.isas.mztab2.model.SpectraRef;
025import io.swagger.annotations.ApiModel;
026import io.swagger.annotations.ApiModelProperty;
027import java.util.ArrayList;
028import java.util.List;
029import com.fasterxml.jackson.dataformat.xml.annotation.*;
030import javax.xml.bind.annotation.*;
031import javax.validation.constraints.*;
032import javax.validation.Valid;
033import de.isas.lipidomics.mztab2.validation.constraints.*;
034/**
035 * 
036 * The small molecule evidence section is table-based, representing evidence for identifications of small molecules/features, from database search or any other process used to give putative identifications to molecules. In a typical case, each row represents one result from a single search or intepretation of a piece of evidence e.g. a database search with a fragmentation spectrum. Multiple results from a given input data item (e.g. one fragment spectrum) SHOULD share the same value under evidence_input_id.
037
038The small molecule evidence section MUST always come after the Small Molecule Feature Table. All table columns MUST be Tab separated. There MUST NOT be any empty cells. Missing values MUST be reported using “null”.
039
040The order of columns MUST follow the order specified below.
041
042All columns are MANDATORY except for “opt_” columns.
043
044 * 
045 *
046 * 
047 *
048 */
049@ApiModel(description = "The small molecule evidence section is table-based, representing evidence for identifications of small molecules/features, from database search or any other process used to give putative identifications to molecules. In a typical case, each row represents one result from a single search or intepretation of a piece of evidence e.g. a database search with a fragmentation spectrum. Multiple results from a given input data item (e.g. one fragment spectrum) SHOULD share the same value under evidence_input_id.  The small molecule evidence section MUST always come after the Small Molecule Feature Table. All table columns MUST be Tab separated. There MUST NOT be any empty cells. Missing values MUST be reported using “null”.  The order of columns MUST follow the order specified below.  All columns are MANDATORY except for “opt_” columns. ")
050@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2021-01-02T19:25:37.430+01:00")
051@XmlRootElement(name = "SmallMoleculeEvidence")
052@XmlAccessorType(XmlAccessType.FIELD)
053@JacksonXmlRootElement(localName = "SmallMoleculeEvidence")
054public class SmallMoleculeEvidence {
055
056  /**
057   * Property enumeration for SmallMoleculeEvidence.
058   */
059  public static enum Properties {
060      prefix("prefix"), 
061      headerPrefix("header_prefix"), 
062      smeId("sme_id"), 
063      evidenceInputId("evidence_input_id"), 
064      databaseIdentifier("database_identifier"), 
065      chemicalFormula("chemical_formula"), 
066      smiles("smiles"), 
067      inchi("inchi"), 
068      chemicalName("chemical_name"), 
069      uri("uri"), 
070      derivatizedForm("derivatized_form"), 
071      adductIon("adduct_ion"), 
072      expMassToCharge("exp_mass_to_charge"), 
073      charge("charge"), 
074      theoreticalMassToCharge("theoretical_mass_to_charge"), 
075      spectraRef("spectra_ref"), 
076      identificationMethod("identification_method"), 
077      msLevel("ms_level"), 
078      idConfidenceMeasure("id_confidence_measure"), 
079      rank("rank"), 
080      opt("opt"), 
081      comment("comment");
082
083    private final String propertyName;
084
085    private Properties(String propertyName) {
086      this.propertyName = propertyName;
087    }
088
089    public String getPropertyName() {
090      return propertyName;
091    }
092
093    public String toString() {
094      return propertyName;
095    }
096
097    public String toUpper() {
098      return propertyName.toUpperCase();
099    }
100
101    public static Properties of(String value) {
102      if(value==null) {
103        throw new NullPointerException("Argument value must not be null!");
104      }
105      return Arrays.asList(Properties.values()).stream().filter(m -> m.propertyName.equals(value.toLowerCase())).findAny().orElseThrow(IllegalArgumentException::new);
106    }
107  };
108  
109  /**
110   * The small molecule evidence table row prefix. SME MUST be used for rows of the small molecule evidence table.
111   */
112  public enum PrefixEnum {
113    SME("SME");
114
115    private String value;
116
117    PrefixEnum(String value) {
118      this.value = value;
119    }
120
121    @JsonValue
122    public String getValue() {
123      return value;
124    }
125
126    @Override
127    public String toString() {
128      return String.valueOf(value);
129    }
130
131    @JsonCreator
132    public static PrefixEnum fromValue(String text) {
133      for (PrefixEnum b : PrefixEnum.values()) {
134        if (String.valueOf(b.value).equals(text)) {
135          return b;
136        }
137      }
138      return null;
139    }
140  }
141
142  @JsonProperty("prefix")
143  @JacksonXmlProperty(localName = "prefix")
144  @XmlElement(name = "prefix")
145  private PrefixEnum prefix = PrefixEnum.SME;
146  /**
147   * The small molecule evidence table header prefix. SEH MUST be used for the small molecule evidence table header line (the column labels).
148   */
149  public enum HeaderPrefixEnum {
150    SEH("SEH");
151
152    private String value;
153
154    HeaderPrefixEnum(String value) {
155      this.value = value;
156    }
157
158    @JsonValue
159    public String getValue() {
160      return value;
161    }
162
163    @Override
164    public String toString() {
165      return String.valueOf(value);
166    }
167
168    @JsonCreator
169    public static HeaderPrefixEnum fromValue(String text) {
170      for (HeaderPrefixEnum b : HeaderPrefixEnum.values()) {
171        if (String.valueOf(b.value).equals(text)) {
172          return b;
173        }
174      }
175      return null;
176    }
177  }
178
179  @JsonProperty("header_prefix")
180  @JacksonXmlProperty(localName = "header_prefix")
181  @XmlElement(name = "header_prefix")
182  private HeaderPrefixEnum headerPrefix = HeaderPrefixEnum.SEH;
183  @JsonProperty("sme_id")
184  @JacksonXmlProperty(localName = "sme_id")
185  @XmlElement(name = "sme_id")
186  private Integer smeId = null;
187  @JsonProperty("evidence_input_id")
188  @JacksonXmlProperty(localName = "evidence_input_id")
189  @XmlElement(name = "evidence_input_id")
190  private String evidenceInputId = null;
191  @JsonProperty("database_identifier")
192  @JacksonXmlProperty(localName = "database_identifier")
193  @XmlElement(name = "database_identifier")
194  private String databaseIdentifier = null;
195  @JsonProperty("chemical_formula")
196  @JacksonXmlProperty(localName = "chemical_formula")
197  @XmlElement(name = "chemical_formula")
198  private String chemicalFormula = null;
199  @JsonProperty("smiles")
200  @JacksonXmlProperty(localName = "smiles")
201  @XmlElement(name = "smiles")
202  private String smiles = null;
203  @JsonProperty("inchi")
204  @JacksonXmlProperty(localName = "inchi")
205  @XmlElement(name = "inchi")
206  private String inchi = null;
207  @JsonProperty("chemical_name")
208  @JacksonXmlProperty(localName = "chemical_name")
209  @XmlElement(name = "chemical_name")
210  private String chemicalName = null;
211  @JsonProperty("uri")
212  @JacksonXmlProperty(localName = "uri")
213  @XmlElement(name = "uri")
214  private String uri = null;
215  @JsonProperty("derivatized_form")
216  @JacksonXmlProperty(localName = "derivatized_form")
217  @XmlElement(name = "derivatized_form")
218  private Parameter derivatizedForm = null;
219  @JsonProperty("adduct_ion")
220  @JacksonXmlProperty(localName = "adduct_ion")
221  @XmlElement(name = "adduct_ion")
222  private String adductIon = null;
223  @JsonProperty("exp_mass_to_charge")
224  @JacksonXmlProperty(localName = "exp_mass_to_charge")
225  @XmlElement(name = "exp_mass_to_charge")
226  private Double expMassToCharge = null;
227  @JsonProperty("charge")
228  @JacksonXmlProperty(localName = "charge")
229  @XmlElement(name = "charge")
230  private Integer charge = null;
231  @JsonProperty("theoretical_mass_to_charge")
232  @JacksonXmlProperty(localName = "theoretical_mass_to_charge")
233  @XmlElement(name = "theoretical_mass_to_charge")
234  private Double theoreticalMassToCharge = null;
235  @JsonProperty("spectra_ref")
236  // Is a container wrapped=false
237  // items.name=spectraRef items.baseName=spectraRef items.xmlName= items.xmlNamespace=
238  // items.example= items.type=SpectraRef
239  @XmlElement(name = "spectraRef")
240  private List<SpectraRef> spectraRef = new ArrayList<>();
241  @JsonProperty("identification_method")
242  @JacksonXmlProperty(localName = "identification_method")
243  @XmlElement(name = "identification_method")
244  private Parameter identificationMethod = null;
245  @JsonProperty("ms_level")
246  @JacksonXmlProperty(localName = "ms_level")
247  @XmlElement(name = "ms_level")
248  private Parameter msLevel = null;
249  @JsonProperty("id_confidence_measure")
250  // Is a container wrapped=false
251  // items.name=idConfidenceMeasure items.baseName=idConfidenceMeasure items.xmlName= items.xmlNamespace=
252  // items.example= items.type=Double
253  @XmlElement(name = "idConfidenceMeasure")
254  private List<Double> idConfidenceMeasure = null;
255  @JsonProperty("rank")
256  @JacksonXmlProperty(localName = "rank")
257  @XmlElement(name = "rank")
258  private Integer rank = 1;
259  @JsonProperty("opt")
260  // Is a container wrapped=false
261  // items.name=opt items.baseName=opt items.xmlName= items.xmlNamespace=
262  // items.example= items.type=OptColumnMapping
263  @XmlElement(name = "opt")
264  private List<OptColumnMapping> opt = null;
265  @JsonProperty("comment")
266  // Is a container wrapped=false
267  // items.name=comment items.baseName=comment items.xmlName= items.xmlNamespace=
268  // items.example= items.type=Comment
269  @XmlElement(name = "comment")
270  private List<Comment> comment = null;
271   /**
272   * The small molecule evidence table row prefix. SME MUST be used for rows of the small molecule evidence table.
273   *
274   * @return prefix
275  **/
276  @ApiModelProperty(value = "The small molecule evidence table row prefix. SME MUST be used for rows of the small molecule evidence table.")
277  public PrefixEnum getPrefix() {
278    return prefix;
279  }
280
281   /**
282   * The small molecule evidence table header prefix. SEH MUST be used for the small molecule evidence table header line (the column labels).
283   *
284   * @return headerPrefix
285  **/
286  @ApiModelProperty(value = "The small molecule evidence table header prefix. SEH MUST be used for the small molecule evidence table header line (the column labels).")
287  public HeaderPrefixEnum getHeaderPrefix() {
288    return headerPrefix;
289  }
290
291
292 /**
293   * Builder method for smeId.
294   *
295   * @see SmallMoleculeEvidence#setSmeId SmallMoleculeEvidence#setSmeId for specification examples
296   * @see SmallMoleculeEvidence#getSmeId SmallMoleculeEvidence#getSmeId for validation constraints
297   * @param smeId a {@code Integer} parameter.
298   * @return SmallMoleculeEvidence
299  **/
300  public SmallMoleculeEvidence smeId(Integer smeId) {
301   this.smeId = smeId;
302   return this;
303  }
304
305   /**
306   * A within file unique identifier for the small molecule evidence result.
307   *
308   * @return smeId
309  **/
310  @NotNull
311  @ApiModelProperty(required = true, value = "A within file unique identifier for the small molecule evidence result.")
312  public Integer getSmeId() {
313    return smeId;
314  }
315
316 /**
317   * Set smeId.
318   *
319   * <p>mzTab-M specification example(s):</p>
320   * <pre><code>SEH     SME_ID  …
321SME     1       …
322</code></pre>
323   * 
324   * 
325   * @see #getSmeId SmallMoleculeEvidence#getSmeId for validation constraints
326   * @param smeId a {@code Integer} parameter.
327  **/
328  public void setSmeId(Integer smeId) {
329    this.smeId = smeId;
330  }
331
332
333 /**
334   * Builder method for evidenceInputId.
335   *
336   * @see SmallMoleculeEvidence#setEvidenceInputId SmallMoleculeEvidence#setEvidenceInputId for specification examples
337   * @see SmallMoleculeEvidence#getEvidenceInputId SmallMoleculeEvidence#getEvidenceInputId for validation constraints
338   * @param evidenceInputId a {@code String} parameter.
339   * @return SmallMoleculeEvidence
340  **/
341  public SmallMoleculeEvidence evidenceInputId(String evidenceInputId) {
342   this.evidenceInputId = evidenceInputId;
343   return this;
344  }
345
346   /**
347   * A within file unique identifier for the input data used to support this identification e.g. fragment spectrum, RT and m/z pair, isotope profile that was used for the identification process, to serve as a grouping mechanism, whereby multiple rows of results from the same input data share the same ID. The identifiers may be human readable but should not be assumed to be interpretable. For example, if fragmentation spectra have been searched then the ID may be the spectrum reference, or for accurate mass search, the ms_run[2]:458.75.
348   *
349   * @return evidenceInputId
350  **/
351  @NotNull
352  @ApiModelProperty(required = true, value = "A within file unique identifier for the input data used to support this identification e.g. fragment spectrum, RT and m/z pair, isotope profile that was used for the identification process, to serve as a grouping mechanism, whereby multiple rows of results from the same input data share the same ID. The identifiers may be human readable but should not be assumed to be interpretable. For example, if fragmentation spectra have been searched then the ID may be the spectrum reference, or for accurate mass search, the ms_run[2]:458.75.")
353  public String getEvidenceInputId() {
354    return evidenceInputId;
355  }
356
357 /**
358   * Set evidenceInputId.
359   *
360   * <p>mzTab-M specification example(s):</p>
361   * <pre><code>SEH     SME_ID  evidence_input_id       …
362SME     1       ms_run[1]:mass=278.65;rt=376.5
363SME     2       ms_run[1]:mass=278.65;rt=376.5
364SME     3       ms_run[1]:mass=278.65;rt=376.5
365(in this example three identifications were made from the same accurate mass/RT library search)
366</code></pre>
367   * 
368   * 
369   * @see #getEvidenceInputId SmallMoleculeEvidence#getEvidenceInputId for validation constraints
370   * @param evidenceInputId a {@code String} parameter.
371  **/
372  public void setEvidenceInputId(String evidenceInputId) {
373    this.evidenceInputId = evidenceInputId;
374  }
375
376
377 /**
378   * Builder method for databaseIdentifier.
379   *
380   * @see SmallMoleculeEvidence#setDatabaseIdentifier SmallMoleculeEvidence#setDatabaseIdentifier for specification examples
381   * @see SmallMoleculeEvidence#getDatabaseIdentifier SmallMoleculeEvidence#getDatabaseIdentifier for validation constraints
382   * @param databaseIdentifier a {@code String} parameter.
383   * @return SmallMoleculeEvidence
384  **/
385  public SmallMoleculeEvidence databaseIdentifier(String databaseIdentifier) {
386   this.databaseIdentifier = databaseIdentifier;
387   return this;
388  }
389
390   /**
391   * The putative identification for the small molecule sourced from an external database, using the same prefix specified in database[1-n]-prefix.
392
393This could include additionally a chemical class or an identifier to a spectral library entity, even if its actual identity is unknown.
394
395For the “no database” case, &quot;null&quot; must be used. The unprefixed use of &quot;null&quot; is prohibited for any other case. If no putative identification can be reported for a particular database, it MUST be reported as the database prefix followed by null.
396
397   *
398   * @return databaseIdentifier
399  **/
400  @NotNull
401  @ApiModelProperty(required = true, value = "The putative identification for the small molecule sourced from an external database, using the same prefix specified in database[1-n]-prefix.  This could include additionally a chemical class or an identifier to a spectral library entity, even if its actual identity is unknown.  For the “no database” case, \"null\" must be used. The unprefixed use of \"null\" is prohibited for any other case. If no putative identification can be reported for a particular database, it MUST be reported as the database prefix followed by null. ")
402  public String getDatabaseIdentifier() {
403    return databaseIdentifier;
404  }
405
406 /**
407   * Set databaseIdentifier.
408   *
409   * <p>mzTab-M specification example(s):</p>
410   * <pre><code>SEH     SME_ID  identifier      …
411SME     1       CID:00027395    …
412SME     2       HMDB:HMDB12345  …
413SME     3       CID:null        …
414</code></pre>
415   * 
416   * 
417   * @see #getDatabaseIdentifier SmallMoleculeEvidence#getDatabaseIdentifier for validation constraints
418   * @param databaseIdentifier a {@code String} parameter.
419  **/
420  public void setDatabaseIdentifier(String databaseIdentifier) {
421    this.databaseIdentifier = databaseIdentifier;
422  }
423
424
425 /**
426   * Builder method for chemicalFormula.
427   *
428   * @see SmallMoleculeEvidence#setChemicalFormula SmallMoleculeEvidence#setChemicalFormula for specification examples
429   * @see SmallMoleculeEvidence#getChemicalFormula SmallMoleculeEvidence#getChemicalFormula for validation constraints
430   * @param chemicalFormula a {@code String} parameter.
431   * @return SmallMoleculeEvidence
432  **/
433  public SmallMoleculeEvidence chemicalFormula(String chemicalFormula) {
434   this.chemicalFormula = chemicalFormula;
435   return this;
436  }
437
438   /**
439   * The chemical formula of the identified compound e.g. in a database, assumed to match the theoretical mass to charge (in some cases this will be the derivatized form, including adducts and protons).
440
441This should be specified in Hill notation (EA Hill 1900), i.e. elements in the order C, H and then alphabetically all other elements. Counts of one may be omitted. Elements should be capitalized properly to avoid confusion (e.g., “CO” vs. “Co”). The chemical formula reported should refer to the neutral form. Charge state is reported by the charge field.
442
443Example N-acetylglucosamine would be encoded by the string “C8H15NO6”
444
445   *
446   * @return chemicalFormula
447  **/
448  @ApiModelProperty(value = "The chemical formula of the identified compound e.g. in a database, assumed to match the theoretical mass to charge (in some cases this will be the derivatized form, including adducts and protons).  This should be specified in Hill notation (EA Hill 1900), i.e. elements in the order C, H and then alphabetically all other elements. Counts of one may be omitted. Elements should be capitalized properly to avoid confusion (e.g., “CO” vs. “Co”). The chemical formula reported should refer to the neutral form. Charge state is reported by the charge field.  Example N-acetylglucosamine would be encoded by the string “C8H15NO6” ")
449  public String getChemicalFormula() {
450    return chemicalFormula;
451  }
452
453 /**
454   * Set chemicalFormula.
455   *
456   * <p>mzTab-M specification example(s):</p>
457   * <pre><code>SEH     SME_ID  …       chemical_formula        …
458SME     1       …       C17H20N4O2      …
459</code></pre>
460   * 
461   * 
462   * @see #getChemicalFormula SmallMoleculeEvidence#getChemicalFormula for validation constraints
463   * @param chemicalFormula a {@code String} parameter.
464  **/
465  public void setChemicalFormula(String chemicalFormula) {
466    this.chemicalFormula = chemicalFormula;
467  }
468
469
470 /**
471   * Builder method for smiles.
472   *
473   * @see SmallMoleculeEvidence#setSmiles SmallMoleculeEvidence#setSmiles for specification examples
474   * @see SmallMoleculeEvidence#getSmiles SmallMoleculeEvidence#getSmiles for validation constraints
475   * @param smiles a {@code String} parameter.
476   * @return SmallMoleculeEvidence
477  **/
478  public SmallMoleculeEvidence smiles(String smiles) {
479   this.smiles = smiles;
480   return this;
481  }
482
483   /**
484   * The potential molecule’s structure in the simplified molecular-input line-entry system (SMILES) for the small molecule.
485   *
486   * @return smiles
487  **/
488  @ApiModelProperty(value = "The potential molecule’s structure in the simplified molecular-input line-entry system (SMILES) for the small molecule.")
489  public String getSmiles() {
490    return smiles;
491  }
492
493 /**
494   * Set smiles.
495   *
496   * <p>mzTab-M specification example(s):</p>
497   * <pre><code>SEH     SME_ID  …       chemical_formula        smiles  …
498SML     1       …       C17H20N4O2      C1=CC=C(C=C1)CCNC(=O)CCNNC(=O)C2=CC=NC=C2       …
499</code></pre>
500   * 
501   * 
502   * @see #getSmiles SmallMoleculeEvidence#getSmiles for validation constraints
503   * @param smiles a {@code String} parameter.
504  **/
505  public void setSmiles(String smiles) {
506    this.smiles = smiles;
507  }
508
509
510 /**
511   * Builder method for inchi.
512   *
513   * @see SmallMoleculeEvidence#setInchi SmallMoleculeEvidence#setInchi for specification examples
514   * @see SmallMoleculeEvidence#getInchi SmallMoleculeEvidence#getInchi for validation constraints
515   * @param inchi a {@code String} parameter.
516   * @return SmallMoleculeEvidence
517  **/
518  public SmallMoleculeEvidence inchi(String inchi) {
519   this.inchi = inchi;
520   return this;
521  }
522
523   /**
524   * A standard IUPAC International Chemical Identifier (InChI) for the given substance.
525   *
526   * @return inchi
527  **/
528  @ApiModelProperty(value = "A standard IUPAC International Chemical Identifier (InChI) for the given substance.")
529  public String getInchi() {
530    return inchi;
531  }
532
533 /**
534   * Set inchi.
535   *
536   * <p>mzTab-M specification example(s):</p>
537   * <pre><code>SEH     SME_ID  …       chemical_formula        …       inchi   …
538SML     1       …       C17H20N4O2      …       InChI=1S/C17H20N4O2/c22-16(19-12-6-14-4-2-1-3-5-14)9-13-20-21-17(23)15-7-10-18-11-8-15/h1-5,7-8,10-11,20H,6,9,12-13H2,(H,19,22)(H,21,23)        …
539</code></pre>
540   * 
541   * 
542   * @see #getInchi SmallMoleculeEvidence#getInchi for validation constraints
543   * @param inchi a {@code String} parameter.
544  **/
545  public void setInchi(String inchi) {
546    this.inchi = inchi;
547  }
548
549
550 /**
551   * Builder method for chemicalName.
552   *
553   * @see SmallMoleculeEvidence#setChemicalName SmallMoleculeEvidence#setChemicalName for specification examples
554   * @see SmallMoleculeEvidence#getChemicalName SmallMoleculeEvidence#getChemicalName for validation constraints
555   * @param chemicalName a {@code String} parameter.
556   * @return SmallMoleculeEvidence
557  **/
558  public SmallMoleculeEvidence chemicalName(String chemicalName) {
559   this.chemicalName = chemicalName;
560   return this;
561  }
562
563   /**
564   * The small molecule’s chemical/common name, or general description if a chemical name is unavailable.
565   *
566   * @return chemicalName
567  **/
568  @ApiModelProperty(value = "The small molecule’s chemical/common name, or general description if a chemical name is unavailable.")
569  public String getChemicalName() {
570    return chemicalName;
571  }
572
573 /**
574   * Set chemicalName.
575   *
576   * <p>mzTab-M specification example(s):</p>
577   * <pre><code>SEH     SME_ID  …       chemical_name   …
578SML     1       …       N-(2-phenylethyl)-3-[2-(pyridine-4-carbonyl)hydrazinyl]propanamide      …
579</code></pre>
580   * 
581   * 
582   * @see #getChemicalName SmallMoleculeEvidence#getChemicalName for validation constraints
583   * @param chemicalName a {@code String} parameter.
584  **/
585  public void setChemicalName(String chemicalName) {
586    this.chemicalName = chemicalName;
587  }
588
589
590 /**
591   * Builder method for uri.
592   *
593   * @see SmallMoleculeEvidence#setUri SmallMoleculeEvidence#setUri for specification examples
594   * @see SmallMoleculeEvidence#getUri SmallMoleculeEvidence#getUri for validation constraints
595   * @param uri a {@code String} parameter.
596   * @return SmallMoleculeEvidence
597  **/
598  public SmallMoleculeEvidence uri(String uri) {
599   this.uri = uri;
600   return this;
601  }
602
603   /**
604   * A URI pointing to the small molecule’s entry in a database (e.g., the small molecule’s HMDB, Chebi or KEGG entry).
605   *
606   * @return uri
607  **/
608  @ApiModelProperty(value = "A URI pointing to the small molecule’s entry in a database (e.g., the small molecule’s HMDB, Chebi or KEGG entry).")
609  public String getUri() {
610    return uri;
611  }
612
613 /**
614   * Set uri.
615   *
616   * <p>mzTab-M specification example(s):</p>
617   * <pre><code>SEH     SME_ID  …       uri     …
618SME     1       …       http://www.hmdb.ca/metabolites/HMDB00054
619</code></pre>
620   * 
621   * 
622   * @see #getUri SmallMoleculeEvidence#getUri for validation constraints
623   * @param uri a {@code String} parameter.
624  **/
625  public void setUri(String uri) {
626    this.uri = uri;
627  }
628
629
630 /**
631   * Builder method for derivatizedForm.
632   *
633   * @see SmallMoleculeEvidence#setDerivatizedForm SmallMoleculeEvidence#setDerivatizedForm for specification examples
634   * @see SmallMoleculeEvidence#getDerivatizedForm SmallMoleculeEvidence#getDerivatizedForm for validation constraints
635   * @param derivatizedForm a {@code Parameter} parameter.
636   * @return SmallMoleculeEvidence
637  **/
638  public SmallMoleculeEvidence derivatizedForm(Parameter derivatizedForm) {
639   this.derivatizedForm = derivatizedForm;
640   return this;
641  }
642
643   /**
644   * If a derivatized form has been analysed by MS, then the functional group attached to the molecule should be reported here using suitable userParam or CV terms as appropriate.
645   *
646   * @return derivatizedForm
647  **/
648  @Valid
649  @ApiModelProperty(value = "If a derivatized form has been analysed by MS, then the functional group attached to the molecule should be reported here using suitable userParam or CV terms as appropriate.")
650  public Parameter getDerivatizedForm() {
651    return derivatizedForm;
652  }
653
654 /**
655   * Set derivatizedForm.
656   *
657   * 
658   * 
659   * @see #getDerivatizedForm SmallMoleculeEvidence#getDerivatizedForm for validation constraints
660   * @param derivatizedForm a {@code Parameter} parameter.
661  **/
662  public void setDerivatizedForm(Parameter derivatizedForm) {
663    this.derivatizedForm = derivatizedForm;
664  }
665
666
667 /**
668   * Builder method for adductIon.
669   *
670   * @see SmallMoleculeEvidence#setAdductIon SmallMoleculeEvidence#setAdductIon for specification examples
671   * @see SmallMoleculeEvidence#getAdductIon SmallMoleculeEvidence#getAdductIon for validation constraints
672   * @param adductIon a {@code String} parameter.
673   * @return SmallMoleculeEvidence
674  **/
675  public SmallMoleculeEvidence adductIon(String adductIon) {
676   this.adductIon = adductIon;
677   return this;
678  }
679
680   /**
681   * The assumed classification of this molecule’s adduct ion after detection, following the general style in the 2013 IUPAC recommendations on terms relating to MS e.g. [M+H]+, [M+Na]1+, [M+NH4]1+, [M-H]1-, [M+Cl]1-. If the adduct classification is ambiguous with regards to identification evidence it MAY be null.
682   *
683   * @return adductIon
684  **/
685 @Pattern(regexp="^\\[\\d*M([-][\\w]*)\\]\\d*[+-]$")  @ApiModelProperty(value = "The assumed classification of this molecule’s adduct ion after detection, following the general style in the 2013 IUPAC recommendations on terms relating to MS e.g. [M+H]+, [M+Na]1+, [M+NH4]1+, [M-H]1-, [M+Cl]1-. If the adduct classification is ambiguous with regards to identification evidence it MAY be null.")
686  public String getAdductIon() {
687    return adductIon;
688  }
689
690 /**
691   * Set adductIon.
692   *
693   * <p>mzTab-M specification example(s):</p>
694   * <pre><code>SEH     SME_ID  …       adduct_ion      …
695SME     1       …       [M+H]+  …
696SME     2       …       [M+2Na]2+       …
697OR (for negative mode):
698SME     1       …       [M-H]-  …
699SME     2       …       [M+Cl]- …
700</code></pre>
701   * 
702   * 
703   * @see #getAdductIon SmallMoleculeEvidence#getAdductIon for validation constraints
704   * @param adductIon a {@code String} parameter.
705  **/
706  public void setAdductIon(String adductIon) {
707    this.adductIon = adductIon;
708  }
709
710
711 /**
712   * Builder method for expMassToCharge.
713   *
714   * @see SmallMoleculeEvidence#setExpMassToCharge SmallMoleculeEvidence#setExpMassToCharge for specification examples
715   * @see SmallMoleculeEvidence#getExpMassToCharge SmallMoleculeEvidence#getExpMassToCharge for validation constraints
716   * @param expMassToCharge a {@code Double} parameter.
717   * @return SmallMoleculeEvidence
718  **/
719  public SmallMoleculeEvidence expMassToCharge(Double expMassToCharge) {
720   this.expMassToCharge = expMassToCharge;
721   return this;
722  }
723
724   /**
725   * The experimental mass/charge value for the precursor ion. If multiple adduct forms have been combined into a single identification event/search, then a single value e.g. for the protonated form SHOULD be reported here.
726   *
727   * @return expMassToCharge
728  **/
729  @NotNull
730  @ApiModelProperty(required = true, value = "The experimental mass/charge value for the precursor ion. If multiple adduct forms have been combined into a single identification event/search, then a single value e.g. for the protonated form SHOULD be reported here.")
731  public Double getExpMassToCharge() {
732    return expMassToCharge;
733  }
734
735 /**
736   * Set expMassToCharge.
737   *
738   * <p>mzTab-M specification example(s):</p>
739   * <pre><code>SEH     SME_ID  …       exp_mass_to_charge      …
740SME     1       …       1234.5  …
741</code></pre>
742   * 
743   * 
744   * @see #getExpMassToCharge SmallMoleculeEvidence#getExpMassToCharge for validation constraints
745   * @param expMassToCharge a {@code Double} parameter.
746  **/
747  public void setExpMassToCharge(Double expMassToCharge) {
748    this.expMassToCharge = expMassToCharge;
749  }
750
751
752 /**
753   * Builder method for charge.
754   *
755   * @see SmallMoleculeEvidence#setCharge SmallMoleculeEvidence#setCharge for specification examples
756   * @see SmallMoleculeEvidence#getCharge SmallMoleculeEvidence#getCharge for validation constraints
757   * @param charge a {@code Integer} parameter.
758   * @return SmallMoleculeEvidence
759  **/
760  public SmallMoleculeEvidence charge(Integer charge) {
761   this.charge = charge;
762   return this;
763  }
764
765   /**
766   * The small molecule evidence’s charge value using positive integers both for positive and negative polarity modes.
767   *
768   * @return charge
769  **/
770  @NotNull
771  @ApiModelProperty(required = true, value = "The small molecule evidence’s charge value using positive integers both for positive and negative polarity modes.")
772  public Integer getCharge() {
773    return charge;
774  }
775
776 /**
777   * Set charge.
778   *
779   * <p>mzTab-M specification example(s):</p>
780   * <pre><code>SEH     SME_ID  …       charge  …
781SME     1       …       1       …
782</code></pre>
783   * 
784   * 
785   * @see #getCharge SmallMoleculeEvidence#getCharge for validation constraints
786   * @param charge a {@code Integer} parameter.
787  **/
788  public void setCharge(Integer charge) {
789    this.charge = charge;
790  }
791
792
793 /**
794   * Builder method for theoreticalMassToCharge.
795   *
796   * @see SmallMoleculeEvidence#setTheoreticalMassToCharge SmallMoleculeEvidence#setTheoreticalMassToCharge for specification examples
797   * @see SmallMoleculeEvidence#getTheoreticalMassToCharge SmallMoleculeEvidence#getTheoreticalMassToCharge for validation constraints
798   * @param theoreticalMassToCharge a {@code Double} parameter.
799   * @return SmallMoleculeEvidence
800  **/
801  public SmallMoleculeEvidence theoreticalMassToCharge(Double theoreticalMassToCharge) {
802   this.theoreticalMassToCharge = theoreticalMassToCharge;
803   return this;
804  }
805
806   /**
807   * The theoretical mass/charge value for the small molecule or the database mass/charge value (for a spectral library match).
808   *
809   * @return theoreticalMassToCharge
810  **/
811  @NotNull
812  @ApiModelProperty(required = true, value = "The theoretical mass/charge value for the small molecule or the database mass/charge value (for a spectral library match).")
813  public Double getTheoreticalMassToCharge() {
814    return theoreticalMassToCharge;
815  }
816
817 /**
818   * Set theoreticalMassToCharge.
819   *
820   * <p>mzTab-M specification example(s):</p>
821   * <pre><code>SEH     SME_ID  …       theoretical_mass_to_charge …
822SME     1       …       1234.71 …
823</code></pre>
824   * 
825   * 
826   * @see #getTheoreticalMassToCharge SmallMoleculeEvidence#getTheoreticalMassToCharge for validation constraints
827   * @param theoreticalMassToCharge a {@code Double} parameter.
828  **/
829  public void setTheoreticalMassToCharge(Double theoreticalMassToCharge) {
830    this.theoreticalMassToCharge = theoreticalMassToCharge;
831  }
832
833
834 /**
835   * Builder method for spectraRef.
836   *
837   * @see SmallMoleculeEvidence#setSpectraRef SmallMoleculeEvidence#setSpectraRef for specification examples
838   * @see SmallMoleculeEvidence#getSpectraRef SmallMoleculeEvidence#getSpectraRef for validation constraints
839   * @param spectraRef a {@code List<SpectraRef>} parameter.
840   * @return SmallMoleculeEvidence
841  **/
842  public SmallMoleculeEvidence spectraRef(List<SpectraRef> spectraRef) {
843   this.spectraRef = spectraRef;
844   return this;
845  }
846
847  /**
848   * Add a single spectraRefItem to the spectraRef collection.
849   *
850   * @see SmallMoleculeEvidence#getSpectraRef SmallMoleculeEvidence#getSpectraRef for validation constraints
851   * @param spectraRefItem a {@code SpectraRef} parameter.
852   * @return SmallMoleculeEvidence
853   */
854  public SmallMoleculeEvidence addSpectraRefItem(SpectraRef spectraRefItem) {
855    this.spectraRef.add(spectraRefItem);
856    return this;
857  }
858
859   /**
860   * Reference to a spectrum in a spectrum file, for example a fragmentation spectrum has been used to support the identification. If a separate spectrum file has been used for fragmentation spectrum, this MUST be reported in the metadata section as additional ms_runs. The reference must be in the format ms_run[1-n]:{SPECTRA_REF} where SPECTRA_REF MUST follow the format defined in 5.2 (including references to chromatograms where these are used to inform identification). Multiple spectra MUST be referenced using a “|” delimited list for the (rare) cases in which search engines have combined or aggregated multiple spectra in advance of the search to make identifications.
861
862If a fragmentation spectrum has not been used, the value should indicate the ms_run to which is identification is mapped e.g. “ms_run[1]”.
863
864   *
865   * @return spectraRef
866  **/
867  @NotNull
868  @Valid
869  @ApiModelProperty(required = true, value = "Reference to a spectrum in a spectrum file, for example a fragmentation spectrum has been used to support the identification. If a separate spectrum file has been used for fragmentation spectrum, this MUST be reported in the metadata section as additional ms_runs. The reference must be in the format ms_run[1-n]:{SPECTRA_REF} where SPECTRA_REF MUST follow the format defined in 5.2 (including references to chromatograms where these are used to inform identification). Multiple spectra MUST be referenced using a “|” delimited list for the (rare) cases in which search engines have combined or aggregated multiple spectra in advance of the search to make identifications.  If a fragmentation spectrum has not been used, the value should indicate the ms_run to which is identification is mapped e.g. “ms_run[1]”. ")
870  public List<SpectraRef> getSpectraRef() {
871    return spectraRef;
872  }
873
874 /**
875   * Set spectraRef.
876   *
877   * <p>mzTab-M specification example(s):</p>
878   * <pre><code>SEH     SME_ID  …       spectra_ref     …
879SME     1       …       ms_run[1]:index=5       …
880</code></pre>
881   * 
882   * 
883   * @see #getSpectraRef SmallMoleculeEvidence#getSpectraRef for validation constraints
884   * @param spectraRef a {@code List<SpectraRef>} parameter.
885  **/
886  public void setSpectraRef(List<SpectraRef> spectraRef) {
887    this.spectraRef = spectraRef;
888  }
889
890
891 /**
892   * Builder method for identificationMethod.
893   *
894   * @see SmallMoleculeEvidence#setIdentificationMethod SmallMoleculeEvidence#setIdentificationMethod for specification examples
895   * @see SmallMoleculeEvidence#getIdentificationMethod SmallMoleculeEvidence#getIdentificationMethod for validation constraints
896   * @param identificationMethod a {@code Parameter} parameter.
897   * @return SmallMoleculeEvidence
898  **/
899  public SmallMoleculeEvidence identificationMethod(Parameter identificationMethod) {
900   this.identificationMethod = identificationMethod;
901   return this;
902  }
903
904   /**
905   * The database search, search engine or process that was used to identify this small molecule e.g. the name of software, database or manual curation etc. If manual validation has been performed quality, the following CV term SHOULD be used: &#39;quality estimation by manual validation&#39; MS:1001058.
906   *
907   * @return identificationMethod
908  **/
909  @NotNull
910  @Valid
911  @ApiModelProperty(required = true, value = "The database search, search engine or process that was used to identify this small molecule e.g. the name of software, database or manual curation etc. If manual validation has been performed quality, the following CV term SHOULD be used: 'quality estimation by manual validation' MS:1001058.")
912  public Parameter getIdentificationMethod() {
913    return identificationMethod;
914  }
915
916 /**
917   * Set identificationMethod.
918   *
919   * 
920   * 
921   * @see #getIdentificationMethod SmallMoleculeEvidence#getIdentificationMethod for validation constraints
922   * @param identificationMethod a {@code Parameter} parameter.
923  **/
924  public void setIdentificationMethod(Parameter identificationMethod) {
925    this.identificationMethod = identificationMethod;
926  }
927
928
929 /**
930   * Builder method for msLevel.
931   *
932   * @see SmallMoleculeEvidence#setMsLevel SmallMoleculeEvidence#setMsLevel for specification examples
933   * @see SmallMoleculeEvidence#getMsLevel SmallMoleculeEvidence#getMsLevel for validation constraints
934   * @param msLevel a {@code Parameter} parameter.
935   * @return SmallMoleculeEvidence
936  **/
937  public SmallMoleculeEvidence msLevel(Parameter msLevel) {
938   this.msLevel = msLevel;
939   return this;
940  }
941
942   /**
943   * The highest MS level used to inform identification e.g. MS1 (accurate mass only) &#x3D; “ms level&#x3D;1” or from an MS2 fragmentation spectrum &#x3D; “ms level&#x3D;2”. For direct fragmentation or data independent approaches where fragmentation data is used, appropriate CV terms SHOULD be used .
944   *
945   * @return msLevel
946  **/
947  @NotNull
948  @Valid
949  @ApiModelProperty(required = true, value = "The highest MS level used to inform identification e.g. MS1 (accurate mass only) = “ms level=1” or from an MS2 fragmentation spectrum = “ms level=2”. For direct fragmentation or data independent approaches where fragmentation data is used, appropriate CV terms SHOULD be used .")
950  public Parameter getMsLevel() {
951    return msLevel;
952  }
953
954 /**
955   * Set msLevel.
956   *
957   * 
958   * 
959   * @see #getMsLevel SmallMoleculeEvidence#getMsLevel for validation constraints
960   * @param msLevel a {@code Parameter} parameter.
961  **/
962  public void setMsLevel(Parameter msLevel) {
963    this.msLevel = msLevel;
964  }
965
966
967 /**
968   * Builder method for idConfidenceMeasure.
969   *
970   * @see SmallMoleculeEvidence#setIdConfidenceMeasure SmallMoleculeEvidence#setIdConfidenceMeasure for specification examples
971   * @see SmallMoleculeEvidence#getIdConfidenceMeasure SmallMoleculeEvidence#getIdConfidenceMeasure for validation constraints
972   * @param idConfidenceMeasure a {@code List<Double>} parameter.
973   * @return SmallMoleculeEvidence
974  **/
975  public SmallMoleculeEvidence idConfidenceMeasure(List<Double> idConfidenceMeasure) {
976   this.idConfidenceMeasure = idConfidenceMeasure;
977   return this;
978  }
979
980  /**
981   * Add a single idConfidenceMeasureItem to the idConfidenceMeasure collection.
982   *
983   * @see SmallMoleculeEvidence#getIdConfidenceMeasure SmallMoleculeEvidence#getIdConfidenceMeasure for validation constraints
984   * @param idConfidenceMeasureItem a {@code Double} parameter.
985   * @return SmallMoleculeEvidence
986   */
987  public SmallMoleculeEvidence addIdConfidenceMeasureItem(Double idConfidenceMeasureItem) {
988    if (this.idConfidenceMeasure == null) {
989      this.idConfidenceMeasure = new ArrayList<>();
990    }
991    this.idConfidenceMeasure.add(idConfidenceMeasureItem);
992    return this;
993  }
994
995   /**
996   * Any statistical value or score for the identification. The metadata section reports the type of score used, as id_confidence_measure[1-n] of type Param.
997   *
998   * @return idConfidenceMeasure
999  **/
1000  @ApiModelProperty(value = "Any statistical value or score for the identification. The metadata section reports the type of score used, as id_confidence_measure[1-n] of type Param.")
1001  public List<Double> getIdConfidenceMeasure() {
1002    return idConfidenceMeasure;
1003  }
1004
1005 /**
1006   * Set idConfidenceMeasure.
1007   *
1008   * <p>mzTab-M specification example(s):</p>
1009   * <pre><code>MTD     id_confidence_measure[1]        [MS, MS:1001419, SpectraST:discriminant score F,]
1010
1011SEH     SME_ID  …       id_confidence_measure[1]        …
1012SME     1       …       0.7     …
1013</code></pre>
1014   * 
1015   * 
1016   * @see #getIdConfidenceMeasure SmallMoleculeEvidence#getIdConfidenceMeasure for validation constraints
1017   * @param idConfidenceMeasure a {@code List<Double>} parameter.
1018  **/
1019  public void setIdConfidenceMeasure(List<Double> idConfidenceMeasure) {
1020    this.idConfidenceMeasure = idConfidenceMeasure;
1021  }
1022
1023
1024 /**
1025   * Builder method for rank.
1026   *
1027   * @see SmallMoleculeEvidence#setRank SmallMoleculeEvidence#setRank for specification examples
1028   * @see SmallMoleculeEvidence#getRank SmallMoleculeEvidence#getRank for validation constraints
1029   * @param rank a {@code Integer} parameter.
1030   * @return SmallMoleculeEvidence
1031  **/
1032  public SmallMoleculeEvidence rank(Integer rank) {
1033   this.rank = rank;
1034   return this;
1035  }
1036
1037   /**
1038   * The rank of this identification from this approach as increasing integers from 1 (best ranked identification). Ties (equal score) are represented by using the same rank – defaults to 1 if there is no ranking system used.
1039   *
1040   * <p>Minimum: 1</p>
1041   * @return rank
1042  **/
1043  @NotNull
1044 @Min(1)  @ApiModelProperty(required = true, value = "The rank of this identification from this approach as increasing integers from 1 (best ranked identification). Ties (equal score) are represented by using the same rank – defaults to 1 if there is no ranking system used.")
1045  public Integer getRank() {
1046    return rank;
1047  }
1048
1049 /**
1050   * Set rank.
1051   *
1052   * <p>mzTab-M specification example(s):</p>
1053   * <pre><code>SEH     SME_ID  …       rank    …
1054SME     1       …       1       …
1055</code></pre>
1056   * 
1057   * 
1058   * @see #getRank SmallMoleculeEvidence#getRank for validation constraints
1059   * @param rank a {@code Integer} parameter.
1060  **/
1061  public void setRank(Integer rank) {
1062    this.rank = rank;
1063  }
1064
1065
1066 /**
1067   * Builder method for opt.
1068   *
1069   * @see SmallMoleculeEvidence#setOpt SmallMoleculeEvidence#setOpt for specification examples
1070   * @see SmallMoleculeEvidence#getOpt SmallMoleculeEvidence#getOpt for validation constraints
1071   * @param opt a {@code List<OptColumnMapping>} parameter.
1072   * @return SmallMoleculeEvidence
1073  **/
1074  public SmallMoleculeEvidence opt(List<OptColumnMapping> opt) {
1075   this.opt = opt;
1076   return this;
1077  }
1078
1079  /**
1080   * Add a single optItem to the opt collection.
1081   *
1082   * @see SmallMoleculeEvidence#getOpt SmallMoleculeEvidence#getOpt for validation constraints
1083   * @param optItem a {@code OptColumnMapping} parameter.
1084   * @return SmallMoleculeEvidence
1085   */
1086  public SmallMoleculeEvidence addOptItem(OptColumnMapping optItem) {
1087    if (this.opt == null) {
1088      this.opt = new ArrayList<>();
1089    }
1090    this.opt.add(optItem);
1091    return this;
1092  }
1093
1094   /**
1095   * Additional columns can be added to the end of the small molecule evidence table. These column headers MUST start with the prefix “opt_” followed by the {identifier} of the object they reference: assay, study variable, MS run or “global” (if the value relates to all replicates). Column names MUST only contain the following characters: ‘A’-‘Z’, ‘a’-‘z’, ‘0’-‘9’, ‘’, ‘-’, ‘[’, ‘]’, and ‘:’. CV parameter accessions MAY be used for optional columns following the format: opt{identifier}_cv_{accession}_\{parameter name}. Spaces within the parameter’s name MUST be replaced by ‘_’.
1096
1097   *
1098   * @return opt
1099  **/
1100  @Valid
1101  @ApiModelProperty(value = "Additional columns can be added to the end of the small molecule evidence table. These column headers MUST start with the prefix “opt_” followed by the {identifier} of the object they reference: assay, study variable, MS run or “global” (if the value relates to all replicates). Column names MUST only contain the following characters: ‘A’-‘Z’, ‘a’-‘z’, ‘0’-‘9’, ‘’, ‘-’, ‘[’, ‘]’, and ‘:’. CV parameter accessions MAY be used for optional columns following the format: opt{identifier}_cv_{accession}_\\{parameter name}. Spaces within the parameter’s name MUST be replaced by ‘_’. ")
1102  public List<OptColumnMapping> getOpt() {
1103    return opt;
1104  }
1105
1106 /**
1107   * Set opt.
1108   *
1109   * <p>mzTab-M specification example(s):</p>
1110   * <pre><code>SEH     SME_ID  …       opt_assay[1]_my_value   …       opt_global_another_value
1111SML     1       …       My value        …       some other value
1112</code></pre>
1113   * 
1114   * 
1115   * @see #getOpt SmallMoleculeEvidence#getOpt for validation constraints
1116   * @param opt a {@code List<OptColumnMapping>} parameter.
1117  **/
1118  public void setOpt(List<OptColumnMapping> opt) {
1119    this.opt = opt;
1120  }
1121
1122
1123 /**
1124   * Builder method for comment.
1125   *
1126   * @see SmallMoleculeEvidence#setComment SmallMoleculeEvidence#setComment for specification examples
1127   * @see SmallMoleculeEvidence#getComment SmallMoleculeEvidence#getComment for validation constraints
1128   * @param comment a {@code List<Comment>} parameter.
1129   * @return SmallMoleculeEvidence
1130  **/
1131  public SmallMoleculeEvidence comment(List<Comment> comment) {
1132   this.comment = comment;
1133   return this;
1134  }
1135
1136  /**
1137   * Add a single commentItem to the comment collection.
1138   *
1139   * @see SmallMoleculeEvidence#getComment SmallMoleculeEvidence#getComment for validation constraints
1140   * @param commentItem a {@code Comment} parameter.
1141   * @return SmallMoleculeEvidence
1142   */
1143  public SmallMoleculeEvidence addCommentItem(Comment commentItem) {
1144    if (this.comment == null) {
1145      this.comment = new ArrayList<>();
1146    }
1147    this.comment.add(commentItem);
1148    return this;
1149  }
1150
1151   /**
1152   * <p>Get comment.</p>
1153   *
1154   * @return comment
1155  **/
1156  @Valid
1157  @ApiModelProperty(value = "")
1158  public List<Comment> getComment() {
1159    return comment;
1160  }
1161
1162 /**
1163   * Set comment.
1164   *
1165   * 
1166   * 
1167   * @see #getComment SmallMoleculeEvidence#getComment for validation constraints
1168   * @param comment a {@code List<Comment>} parameter.
1169  **/
1170  public void setComment(List<Comment> comment) {
1171    this.comment = comment;
1172  }
1173
1174
1175  @Override
1176  public boolean equals(java.lang.Object o) {
1177    if (this == o) {
1178      return true;
1179    }
1180    if (o == null || getClass() != o.getClass()) {
1181      return false;
1182    }
1183    SmallMoleculeEvidence smallMoleculeEvidence = (SmallMoleculeEvidence) o;
1184    return Objects.equals(this.prefix, smallMoleculeEvidence.prefix) &&
1185        Objects.equals(this.headerPrefix, smallMoleculeEvidence.headerPrefix) &&
1186        Objects.equals(this.smeId, smallMoleculeEvidence.smeId) &&
1187        Objects.equals(this.evidenceInputId, smallMoleculeEvidence.evidenceInputId) &&
1188        Objects.equals(this.databaseIdentifier, smallMoleculeEvidence.databaseIdentifier) &&
1189        Objects.equals(this.chemicalFormula, smallMoleculeEvidence.chemicalFormula) &&
1190        Objects.equals(this.smiles, smallMoleculeEvidence.smiles) &&
1191        Objects.equals(this.inchi, smallMoleculeEvidence.inchi) &&
1192        Objects.equals(this.chemicalName, smallMoleculeEvidence.chemicalName) &&
1193        Objects.equals(this.uri, smallMoleculeEvidence.uri) &&
1194        Objects.equals(this.derivatizedForm, smallMoleculeEvidence.derivatizedForm) &&
1195        Objects.equals(this.adductIon, smallMoleculeEvidence.adductIon) &&
1196        Objects.equals(this.expMassToCharge, smallMoleculeEvidence.expMassToCharge) &&
1197        Objects.equals(this.charge, smallMoleculeEvidence.charge) &&
1198        Objects.equals(this.theoreticalMassToCharge, smallMoleculeEvidence.theoreticalMassToCharge) &&
1199        Objects.equals(this.spectraRef, smallMoleculeEvidence.spectraRef) &&
1200        Objects.equals(this.identificationMethod, smallMoleculeEvidence.identificationMethod) &&
1201        Objects.equals(this.msLevel, smallMoleculeEvidence.msLevel) &&
1202        Objects.equals(this.idConfidenceMeasure, smallMoleculeEvidence.idConfidenceMeasure) &&
1203        Objects.equals(this.rank, smallMoleculeEvidence.rank) &&
1204        Objects.equals(this.opt, smallMoleculeEvidence.opt) &&
1205        Objects.equals(this.comment, smallMoleculeEvidence.comment);
1206  }
1207
1208  @Override
1209  public int hashCode() {
1210    return Objects.hash(prefix, headerPrefix, smeId, evidenceInputId, databaseIdentifier, chemicalFormula, smiles, inchi, chemicalName, uri, derivatizedForm, adductIon, expMassToCharge, charge, theoreticalMassToCharge, spectraRef, identificationMethod, msLevel, idConfidenceMeasure, rank, opt, comment);
1211  }
1212
1213
1214  @Override
1215  public String toString() {
1216    StringBuilder sb = new StringBuilder();
1217    sb.append("class SmallMoleculeEvidence {\n");
1218    
1219    sb.append("    prefix: ").append(toIndentedString(prefix)).append("\n");
1220    sb.append("    headerPrefix: ").append(toIndentedString(headerPrefix)).append("\n");
1221    sb.append("    smeId: ").append(toIndentedString(smeId)).append("\n");
1222    sb.append("    evidenceInputId: ").append(toIndentedString(evidenceInputId)).append("\n");
1223    sb.append("    databaseIdentifier: ").append(toIndentedString(databaseIdentifier)).append("\n");
1224    sb.append("    chemicalFormula: ").append(toIndentedString(chemicalFormula)).append("\n");
1225    sb.append("    smiles: ").append(toIndentedString(smiles)).append("\n");
1226    sb.append("    inchi: ").append(toIndentedString(inchi)).append("\n");
1227    sb.append("    chemicalName: ").append(toIndentedString(chemicalName)).append("\n");
1228    sb.append("    uri: ").append(toIndentedString(uri)).append("\n");
1229    sb.append("    derivatizedForm: ").append(toIndentedString(derivatizedForm)).append("\n");
1230    sb.append("    adductIon: ").append(toIndentedString(adductIon)).append("\n");
1231    sb.append("    expMassToCharge: ").append(toIndentedString(expMassToCharge)).append("\n");
1232    sb.append("    charge: ").append(toIndentedString(charge)).append("\n");
1233    sb.append("    theoreticalMassToCharge: ").append(toIndentedString(theoreticalMassToCharge)).append("\n");
1234    sb.append("    spectraRef: ").append(toIndentedString(spectraRef)).append("\n");
1235    sb.append("    identificationMethod: ").append(toIndentedString(identificationMethod)).append("\n");
1236    sb.append("    msLevel: ").append(toIndentedString(msLevel)).append("\n");
1237    sb.append("    idConfidenceMeasure: ").append(toIndentedString(idConfidenceMeasure)).append("\n");
1238    sb.append("    rank: ").append(toIndentedString(rank)).append("\n");
1239    sb.append("    opt: ").append(toIndentedString(opt)).append("\n");
1240    sb.append("    comment: ").append(toIndentedString(comment)).append("\n");
1241    sb.append("}");
1242    return sb.toString();
1243  }
1244
1245  /**
1246   * Convert the given object to string with each line indented by 4 spaces
1247   * (except the first line).
1248   */
1249  private String toIndentedString(java.lang.Object o) {
1250    if (o == null) {
1251      return "null";
1252    }
1253    return o.toString().replace("\n", "\n    ");
1254  }
1255
1256}
1257