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.MsRun;
022import io.swagger.annotations.ApiModel;
023import io.swagger.annotations.ApiModelProperty;
024import com.fasterxml.jackson.dataformat.xml.annotation.*;
025import javax.xml.bind.annotation.*;
026import javax.validation.constraints.*;
027import javax.validation.Valid;
028import de.isas.lipidomics.mztab2.validation.constraints.*;
029/**
030 * 
031 * 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.
032
033If 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]”.
034
035 * 
036 *
037 * <p>mzTab-M specification example(s):</p>
038 * <pre><code>SEH       SME_ID  …       spectra_ref     …
039SME     1                       ms_run[1]:index=5       …
040</code></pre>
041 * 
042 *
043 */
044@ApiModel(description = "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]”. ")
045@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2021-01-02T19:25:37.430+01:00")
046@XmlRootElement(name = "SpectraRef")
047@XmlAccessorType(XmlAccessType.FIELD)
048@JacksonXmlRootElement(localName = "SpectraRef")
049public class SpectraRef {
050
051  /**
052   * Property enumeration for SpectraRef.
053   */
054  public static enum Properties {
055      msRun("ms_run"), 
056      reference("reference");
057
058    private final String propertyName;
059
060    private Properties(String propertyName) {
061      this.propertyName = propertyName;
062    }
063
064    public String getPropertyName() {
065      return propertyName;
066    }
067
068    public String toString() {
069      return propertyName;
070    }
071
072    public String toUpper() {
073      return propertyName.toUpperCase();
074    }
075
076    public static Properties of(String value) {
077      if(value==null) {
078        throw new NullPointerException("Argument value must not be null!");
079      }
080      return Arrays.asList(Properties.values()).stream().filter(m -> m.propertyName.equals(value.toLowerCase())).findAny().orElseThrow(IllegalArgumentException::new);
081    }
082  };
083  
084  @JsonProperty("ms_run")
085  @JacksonXmlProperty(localName = "ms_run")
086  @XmlElement(name = "ms_run")
087  private MsRun msRun = null;
088  @JsonProperty("reference")
089  @JacksonXmlProperty(localName = "reference")
090  @XmlElement(name = "reference")
091  private String reference = null;
092
093 /**
094   * Builder method for msRun.
095   *
096   * @see SpectraRef#setMsRun SpectraRef#setMsRun for specification examples
097   * @see SpectraRef#getMsRun SpectraRef#getMsRun for validation constraints
098   * @param msRun a {@code MsRun} parameter.
099   * @return SpectraRef
100  **/
101  public SpectraRef msRun(MsRun msRun) {
102   this.msRun = msRun;
103   return this;
104  }
105
106   /**
107   * The ms run object reference by this spectral reference.
108
109   *
110   * @return msRun
111  **/
112  @NotNull
113  @Valid
114  @ApiModelProperty(required = true, value = "The ms run object reference by this spectral reference. ")
115  public MsRun getMsRun() {
116    return msRun;
117  }
118
119 /**
120   * Set msRun.
121   *
122   * 
123   * 
124   * @see #getMsRun SpectraRef#getMsRun for validation constraints
125   * @param msRun a {@code MsRun} parameter.
126  **/
127  public void setMsRun(MsRun msRun) {
128    this.msRun = msRun;
129  }
130
131
132 /**
133   * Builder method for reference.
134   *
135   * @see SpectraRef#setReference SpectraRef#setReference for specification examples
136   * @see SpectraRef#getReference SpectraRef#getReference for validation constraints
137   * @param reference a {@code String} parameter.
138   * @return SpectraRef
139  **/
140  public SpectraRef reference(String reference) {
141   this.reference = reference;
142   return this;
143  }
144
145   /**
146   * The (vendor-dependendent) reference string to the actual mass spectrum.
147
148   *
149   * @return reference
150  **/
151  @NotNull
152  @ApiModelProperty(required = true, value = "The (vendor-dependendent) reference string to the actual mass spectrum. ")
153  public String getReference() {
154    return reference;
155  }
156
157 /**
158   * Set reference.
159   *
160   * 
161   * 
162   * @see #getReference SpectraRef#getReference for validation constraints
163   * @param reference a {@code String} parameter.
164  **/
165  public void setReference(String reference) {
166    this.reference = reference;
167  }
168
169
170  @Override
171  public boolean equals(java.lang.Object o) {
172    if (this == o) {
173      return true;
174    }
175    if (o == null || getClass() != o.getClass()) {
176      return false;
177    }
178    SpectraRef spectraRef = (SpectraRef) o;
179    return Objects.equals(this.msRun, spectraRef.msRun) &&
180        Objects.equals(this.reference, spectraRef.reference);
181  }
182
183  @Override
184  public int hashCode() {
185    return Objects.hash(msRun, reference);
186  }
187
188
189  @Override
190  public String toString() {
191    StringBuilder sb = new StringBuilder();
192    sb.append("class SpectraRef {\n");
193    
194    sb.append("    msRun: ").append(toIndentedString(msRun)).append("\n");
195    sb.append("    reference: ").append(toIndentedString(reference)).append("\n");
196    sb.append("}");
197    return sb.toString();
198  }
199
200  /**
201   * Convert the given object to string with each line indented by 4 spaces
202   * (except the first line).
203   */
204  private String toIndentedString(java.lang.Object o) {
205    if (o == null) {
206      return "null";
207    }
208    return o.toString().replace("\n", "\n    ");
209  }
210
211}
212