//
// This file was generated by the Eclipse Implementation of JAXB, v2.3.3 
// See https://eclipse-ee4j.github.io/jaxb-ri 
// Any modifications to this file will be lost upon recompilation of the source schema. 
// Generated on: 2021.08.30 at 11:05:22 AM BST 
//

package jalview.xml.binding.jalview;

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

/**
 * &lt;p&gt;Java class for anonymous complex type.
 * 
 * &lt;p&gt;The following schema fragment specifies the expected content
 * contained within this class.
 * 
 * &lt;pre&gt; &amp;lt;complexType&amp;gt; &amp;lt;complexContent&amp;gt;
 * &amp;lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&amp;gt;
 * &amp;lt;sequence&amp;gt; &amp;lt;element name="alcodon" maxOccurs="unbounded"
 * minOccurs="0"&amp;gt; &amp;lt;complexType&amp;gt;
 * &amp;lt;complexContent&amp;gt; &amp;lt;restriction
 * base="{http://www.w3.org/2001/XMLSchema}anyType"&amp;gt; &amp;lt;attribute
 * name="pos1" type="{http://www.w3.org/2001/XMLSchema}integer" /&amp;gt;
 * &amp;lt;attribute name="pos2"
 * type="{http://www.w3.org/2001/XMLSchema}integer" /&amp;gt; &amp;lt;attribute
 * name="pos3" type="{http://www.w3.org/2001/XMLSchema}integer" /&amp;gt;
 * &amp;lt;/restriction&amp;gt; &amp;lt;/complexContent&amp;gt;
 * &amp;lt;/complexType&amp;gt; &amp;lt;/element&amp;gt; &amp;lt;element
 * name="alcodMap" maxOccurs="unbounded" minOccurs="0"&amp;gt;
 * &amp;lt;complexType&amp;gt; &amp;lt;complexContent&amp;gt;
 * &amp;lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&amp;gt;
 * &amp;lt;sequence&amp;gt; &amp;lt;element
 * ref="{www.vamsas.ac.uk/jalview/version2}Mapping"/&amp;gt;
 * &amp;lt;/sequence&amp;gt; &amp;lt;attribute name="dnasq" use="required"
 * type="{http://www.w3.org/2001/XMLSchema}string" /&amp;gt;
 * &amp;lt;/restriction&amp;gt; &amp;lt;/complexContent&amp;gt;
 * &amp;lt;/complexType&amp;gt; &amp;lt;/element&amp;gt;
 * &amp;lt;/sequence&amp;gt; &amp;lt;/restriction&amp;gt;
 * &amp;lt;/complexContent&amp;gt; &amp;lt;/complexType&amp;gt; &lt;/pre&gt;
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = { "alcodon", "alcodMap" })
@XmlRootElement(name = "AlcodonFrame")
public class AlcodonFrame
{

  protected List<AlcodonFrame.Alcodon> alcodon;

  protected List<AlcodonFrame.AlcodMap> alcodMap;

  /**
   * Gets the value of the alcodon property.
   * 
   * &lt;p&gt; This accessor method returns a reference to the live list, not a
   * snapshot. Therefore any modification you make to the returned list will be
   * present inside the JAXB object. This is why there is not a
   * &lt;CODE&gt;set&lt;/CODE&gt; method for the alcodon property.
   * 
   * &lt;p&gt; For example, to add a new item, do as follows: &lt;pre&gt;
   * getAlcodon().add(newItem); &lt;/pre&gt;
   * 
   * 
   * &lt;p&gt; Objects of the following type(s) are allowed in the list
   * {@link AlcodonFrame.Alcodon }
   * 
   * 
   */
  public List<AlcodonFrame.Alcodon> getAlcodon()
  {
    if (alcodon == null)
    {
      alcodon = new ArrayList<AlcodonFrame.Alcodon>();
    }
    return this.alcodon;
  }

  /**
   * Gets the value of the alcodMap property.
   * 
   * &lt;p&gt; This accessor method returns a reference to the live list, not a
   * snapshot. Therefore any modification you make to the returned list will be
   * present inside the JAXB object. This is why there is not a
   * &lt;CODE&gt;set&lt;/CODE&gt; method for the alcodMap property.
   * 
   * &lt;p&gt; For example, to add a new item, do as follows: &lt;pre&gt;
   * getAlcodMap().add(newItem); &lt;/pre&gt;
   * 
   * 
   * &lt;p&gt; Objects of the following type(s) are allowed in the list
   * {@link AlcodonFrame.AlcodMap }
   * 
   * 
   */
  public List<AlcodonFrame.AlcodMap> getAlcodMap()
  {
    if (alcodMap == null)
    {
      alcodMap = new ArrayList<AlcodonFrame.AlcodMap>();
    }
    return this.alcodMap;
  }

  /**
   * &lt;p&gt;Java class for anonymous complex type.
   * 
   * &lt;p&gt;The following schema fragment specifies the expected content
   * contained within this class.
   * 
   * &lt;pre&gt; &amp;lt;complexType&amp;gt; &amp;lt;complexContent&amp;gt;
   * &amp;lt;restriction
   * base="{http://www.w3.org/2001/XMLSchema}anyType"&amp;gt;
   * &amp;lt;sequence&amp;gt; &amp;lt;element
   * ref="{www.vamsas.ac.uk/jalview/version2}Mapping"/&amp;gt;
   * &amp;lt;/sequence&amp;gt; &amp;lt;attribute name="dnasq" use="required"
   * type="{http://www.w3.org/2001/XMLSchema}string" /&amp;gt;
   * &amp;lt;/restriction&amp;gt; &amp;lt;/complexContent&amp;gt;
   * &amp;lt;/complexType&amp;gt; &lt;/pre&gt;
   * 
   * 
   */
  @XmlAccessorType(XmlAccessType.FIELD)
  @XmlType(name = "", propOrder = { "mapping" })
  public static class AlcodMap
  {

    @XmlElement(name = "Mapping", required = true)
    protected Mapping mapping;

    @XmlAttribute(name = "dnasq", required = true)
    protected String dnasq;

    /**
     * 
     * a Mapping entry and an associated protein sequence
     * 
     * 
     * @return possible object is {@link Mapping }
     * 
     */
    public Mapping getMapping()
    {
      return mapping;
    }

    /**
     * Sets the value of the mapping property.
     * 
     * @param value
     *          allowed object is {@link Mapping }
     * 
     */
    public void setMapping(Mapping value)
    {
      this.mapping = value;
    }

    /**
     * Gets the value of the dnasq property.
     * 
     * @return possible object is {@link String }
     * 
     */
    public String getDnasq()
    {
      return dnasq;
    }

    /**
     * Sets the value of the dnasq property.
     * 
     * @param value
     *          allowed object is {@link String }
     * 
     */
    public void setDnasq(String value)
    {
      this.dnasq = value;
    }

  }

  /**
   * 
   * specifies a series of aligned codons from an associated DNA sequence
   * alignment that when translated correspond to columns of a peptide
   * alignment. Element may have either all pos1,2,3 attributes specified, or
   * none at all (indicating a gapped column with no translated peptide).
   * 
   * 
   * &lt;p&gt;Java class for anonymous complex type.
   * 
   * &lt;p&gt;The following schema fragment specifies the expected content
   * contained within this class.
   * 
   * &lt;pre&gt; &amp;lt;complexType&amp;gt; &amp;lt;complexContent&amp;gt;
   * &amp;lt;restriction
   * base="{http://www.w3.org/2001/XMLSchema}anyType"&amp;gt; &amp;lt;attribute
   * name="pos1" type="{http://www.w3.org/2001/XMLSchema}integer" /&amp;gt;
   * &amp;lt;attribute name="pos2"
   * type="{http://www.w3.org/2001/XMLSchema}integer" /&amp;gt;
   * &amp;lt;attribute name="pos3"
   * type="{http://www.w3.org/2001/XMLSchema}integer" /&amp;gt;
   * &amp;lt;/restriction&amp;gt; &amp;lt;/complexContent&amp;gt;
   * &amp;lt;/complexType&amp;gt; &lt;/pre&gt;
   * 
   * 
   */
  @XmlAccessorType(XmlAccessType.FIELD)
  @XmlType(name = "")
  public static class Alcodon
  {

    @XmlAttribute(name = "pos1")
    protected BigInteger pos1;

    @XmlAttribute(name = "pos2")
    protected BigInteger pos2;

    @XmlAttribute(name = "pos3")
    protected BigInteger pos3;

    /**
     * Gets the value of the pos1 property.
     * 
     * @return possible object is {@link BigInteger }
     * 
     */
    public BigInteger getPos1()
    {
      return pos1;
    }

    /**
     * Sets the value of the pos1 property.
     * 
     * @param value
     *          allowed object is {@link BigInteger }
     * 
     */
    public void setPos1(BigInteger value)
    {
      this.pos1 = value;
    }

    /**
     * Gets the value of the pos2 property.
     * 
     * @return possible object is {@link BigInteger }
     * 
     */
    public BigInteger getPos2()
    {
      return pos2;
    }

    /**
     * Sets the value of the pos2 property.
     * 
     * @param value
     *          allowed object is {@link BigInteger }
     * 
     */
    public void setPos2(BigInteger value)
    {
      this.pos2 = value;
    }

    /**
     * Gets the value of the pos3 property.
     * 
     * @return possible object is {@link BigInteger }
     * 
     */
    public BigInteger getPos3()
    {
      return pos3;
    }

    /**
     * Sets the value of the pos3 property.
     * 
     * @param value
     *          allowed object is {@link BigInteger }
     * 
     */
    public void setPos3(BigInteger value)
    {
      this.pos3 = value;
    }

  }

}
