//
// 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.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
 * ref="{www.vamsas.ac.uk/jalview/version2}annotationElement"
 * maxOccurs="unbounded" minOccurs="0"/&amp;gt; &amp;lt;element name="label"
 * type="{http://www.w3.org/2001/XMLSchema}string"/&amp;gt; &amp;lt;element
 * name="description" type="{http://www.w3.org/2001/XMLSchema}string"
 * minOccurs="0"/&amp;gt; &amp;lt;element name="thresholdLine"
 * 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="label" type="{http://www.w3.org/2001/XMLSchema}string" /&amp;gt;
 * &amp;lt;attribute name="value" type="{http://www.w3.org/2001/XMLSchema}float"
 * /&amp;gt; &amp;lt;attribute name="colour"
 * type="{http://www.w3.org/2001/XMLSchema}int" /&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="property" 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="name" type="{http://www.w3.org/2001/XMLSchema}string"
 * /&amp;gt; &amp;lt;attribute name="value"
 * 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;attribute name="graph" use="required"
 * type="{http://www.w3.org/2001/XMLSchema}boolean" /&amp;gt; &amp;lt;attribute
 * name="graphType" type="{http://www.w3.org/2001/XMLSchema}int" /&amp;gt;
 * &amp;lt;attribute name="sequenceRef"
 * type="{http://www.w3.org/2001/XMLSchema}string" /&amp;gt; &amp;lt;attribute
 * name="groupRef" type="{http://www.w3.org/2001/XMLSchema}string" /&amp;gt;
 * &amp;lt;attribute name="graphColour"
 * type="{http://www.w3.org/2001/XMLSchema}int" /&amp;gt; &amp;lt;attribute
 * name="graphGroup" type="{http://www.w3.org/2001/XMLSchema}int" /&amp;gt;
 * &amp;lt;attribute name="graphHeight"
 * type="{http://www.w3.org/2001/XMLSchema}int" /&amp;gt; &amp;lt;attribute
 * name="id" type="{http://www.w3.org/2001/XMLSchema}string" /&amp;gt;
 * &amp;lt;attribute name="scoreOnly"
 * type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&amp;gt;
 * &amp;lt;attribute name="score"
 * type="{http://www.w3.org/2001/XMLSchema}double" /&amp;gt; &amp;lt;attribute
 * name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" /&amp;gt;
 * &amp;lt;attribute name="centreColLabels"
 * type="{http://www.w3.org/2001/XMLSchema}boolean" /&amp;gt; &amp;lt;attribute
 * name="scaleColLabels" type="{http://www.w3.org/2001/XMLSchema}boolean"
 * /&amp;gt; &amp;lt;attribute name="showAllColLabels"
 * type="{http://www.w3.org/2001/XMLSchema}boolean" /&amp;gt; &amp;lt;attribute
 * name="autoCalculated" type="{http://www.w3.org/2001/XMLSchema}boolean"
 * default="false" /&amp;gt; &amp;lt;attribute name="belowAlignment"
 * type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&amp;gt;
 * &amp;lt;attribute name="calcId"
 * 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 =
  { "annotationElement", "label", "description", "thresholdLine",
      "property" })
@XmlRootElement(name = "Annotation")
public class Annotation
{

  protected List<AnnotationElement> annotationElement;

  @XmlElement(required = true)
  protected String label;

  protected String description;

  protected Annotation.ThresholdLine thresholdLine;

  protected List<Annotation.Property> property;

  @XmlAttribute(name = "graph", required = true)
  protected boolean graph;

  @XmlAttribute(name = "graphType")
  protected Integer graphType;

  @XmlAttribute(name = "sequenceRef")
  protected String sequenceRef;

  @XmlAttribute(name = "groupRef")
  protected String groupRef;

  @XmlAttribute(name = "graphColour")
  protected Integer graphColour;

  @XmlAttribute(name = "graphGroup")
  protected Integer graphGroup;

  @XmlAttribute(name = "graphHeight")
  protected Integer graphHeight;

  @XmlAttribute(name = "id")
  protected String id;

  @XmlAttribute(name = "scoreOnly")
  protected Boolean scoreOnly;

  @XmlAttribute(name = "score")
  protected Double score;

  @XmlAttribute(name = "visible")
  protected Boolean visible;

  @XmlAttribute(name = "centreColLabels")
  protected Boolean centreColLabels;

  @XmlAttribute(name = "scaleColLabels")
  protected Boolean scaleColLabels;

  @XmlAttribute(name = "showAllColLabels")
  protected Boolean showAllColLabels;

  @XmlAttribute(name = "autoCalculated")
  protected Boolean autoCalculated;

  @XmlAttribute(name = "belowAlignment")
  protected Boolean belowAlignment;

  @XmlAttribute(name = "calcId")
  protected String calcId;

  /**
   * Gets the value of the annotationElement 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 annotationElement property.
   * 
   * &lt;p&gt; For example, to add a new item, do as follows: &lt;pre&gt;
   * getAnnotationElement().add(newItem); &lt;/pre&gt;
   * 
   * 
   * &lt;p&gt; Objects of the following type(s) are allowed in the list
   * {@link AnnotationElement }
   * 
   * 
   */
  public List<AnnotationElement> getAnnotationElement()
  {
    if (annotationElement == null)
    {
      annotationElement = new ArrayList<AnnotationElement>();
    }
    return this.annotationElement;
  }

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

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

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

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

  /**
   * Gets the value of the thresholdLine property.
   * 
   * @return possible object is {@link Annotation.ThresholdLine }
   * 
   */
  public Annotation.ThresholdLine getThresholdLine()
  {
    return thresholdLine;
  }

  /**
   * Sets the value of the thresholdLine property.
   * 
   * @param value
   *          allowed object is {@link Annotation.ThresholdLine }
   * 
   */
  public void setThresholdLine(Annotation.ThresholdLine value)
  {
    this.thresholdLine = value;
  }

  /**
   * Gets the value of the property 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 property property.
   * 
   * &lt;p&gt; For example, to add a new item, do as follows: &lt;pre&gt;
   * getProperty().add(newItem); &lt;/pre&gt;
   * 
   * 
   * &lt;p&gt; Objects of the following type(s) are allowed in the list
   * {@link Annotation.Property }
   * 
   * 
   */
  public List<Annotation.Property> getProperty()
  {
    if (property == null)
    {
      property = new ArrayList<Annotation.Property>();
    }
    return this.property;
  }

  /**
   * Gets the value of the graph property.
   * 
   */
  public boolean isGraph()
  {
    return graph;
  }

  /**
   * Sets the value of the graph property.
   * 
   */
  public void setGraph(boolean value)
  {
    this.graph = value;
  }

  /**
   * Gets the value of the graphType property.
   * 
   * @return possible object is {@link Integer }
   * 
   */
  public Integer getGraphType()
  {
    return graphType;
  }

  /**
   * Sets the value of the graphType property.
   * 
   * @param value
   *          allowed object is {@link Integer }
   * 
   */
  public void setGraphType(Integer value)
  {
    this.graphType = value;
  }

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

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

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

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

  /**
   * Gets the value of the graphColour property.
   * 
   * @return possible object is {@link Integer }
   * 
   */
  public Integer getGraphColour()
  {
    return graphColour;
  }

  /**
   * Sets the value of the graphColour property.
   * 
   * @param value
   *          allowed object is {@link Integer }
   * 
   */
  public void setGraphColour(Integer value)
  {
    this.graphColour = value;
  }

  /**
   * Gets the value of the graphGroup property.
   * 
   * @return possible object is {@link Integer }
   * 
   */
  public Integer getGraphGroup()
  {
    return graphGroup;
  }

  /**
   * Sets the value of the graphGroup property.
   * 
   * @param value
   *          allowed object is {@link Integer }
   * 
   */
  public void setGraphGroup(Integer value)
  {
    this.graphGroup = value;
  }

  /**
   * Gets the value of the graphHeight property.
   * 
   * @return possible object is {@link Integer }
   * 
   */
  public Integer getGraphHeight()
  {
    return graphHeight;
  }

  /**
   * Sets the value of the graphHeight property.
   * 
   * @param value
   *          allowed object is {@link Integer }
   * 
   */
  public void setGraphHeight(Integer value)
  {
    this.graphHeight = value;
  }

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

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

  /**
   * Gets the value of the scoreOnly property.
   * 
   * @return possible object is {@link Boolean }
   * 
   */
  public boolean isScoreOnly()
  {
    if (scoreOnly == null)
    {
      return false;
    }
    else
    {
      return scoreOnly;
    }
  }

  /**
   * Sets the value of the scoreOnly property.
   * 
   * @param value
   *          allowed object is {@link Boolean }
   * 
   */
  public void setScoreOnly(Boolean value)
  {
    this.scoreOnly = value;
  }

  /**
   * Gets the value of the score property.
   * 
   * @return possible object is {@link Double }
   * 
   */
  public Double getScore()
  {
    return score;
  }

  /**
   * Sets the value of the score property.
   * 
   * @param value
   *          allowed object is {@link Double }
   * 
   */
  public void setScore(Double value)
  {
    this.score = value;
  }

  /**
   * Gets the value of the visible property.
   * 
   * @return possible object is {@link Boolean }
   * 
   */
  public Boolean isVisible()
  {
    return visible;
  }

  /**
   * Sets the value of the visible property.
   * 
   * @param value
   *          allowed object is {@link Boolean }
   * 
   */
  public void setVisible(Boolean value)
  {
    this.visible = value;
  }

  /**
   * Gets the value of the centreColLabels property.
   * 
   * @return possible object is {@link Boolean }
   * 
   */
  public Boolean isCentreColLabels()
  {
    return centreColLabels;
  }

  /**
   * Sets the value of the centreColLabels property.
   * 
   * @param value
   *          allowed object is {@link Boolean }
   * 
   */
  public void setCentreColLabels(Boolean value)
  {
    this.centreColLabels = value;
  }

  /**
   * Gets the value of the scaleColLabels property.
   * 
   * @return possible object is {@link Boolean }
   * 
   */
  public Boolean isScaleColLabels()
  {
    return scaleColLabels;
  }

  /**
   * Sets the value of the scaleColLabels property.
   * 
   * @param value
   *          allowed object is {@link Boolean }
   * 
   */
  public void setScaleColLabels(Boolean value)
  {
    this.scaleColLabels = value;
  }

  /**
   * Gets the value of the showAllColLabels property.
   * 
   * @return possible object is {@link Boolean }
   * 
   */
  public Boolean isShowAllColLabels()
  {
    return showAllColLabels;
  }

  /**
   * Sets the value of the showAllColLabels property.
   * 
   * @param value
   *          allowed object is {@link Boolean }
   * 
   */
  public void setShowAllColLabels(Boolean value)
  {
    this.showAllColLabels = value;
  }

  /**
   * Gets the value of the autoCalculated property.
   * 
   * @return possible object is {@link Boolean }
   * 
   */
  public boolean isAutoCalculated()
  {
    if (autoCalculated == null)
    {
      return false;
    }
    else
    {
      return autoCalculated;
    }
  }

  /**
   * Sets the value of the autoCalculated property.
   * 
   * @param value
   *          allowed object is {@link Boolean }
   * 
   */
  public void setAutoCalculated(Boolean value)
  {
    this.autoCalculated = value;
  }

  /**
   * Gets the value of the belowAlignment property.
   * 
   * @return possible object is {@link Boolean }
   * 
   */
  public boolean isBelowAlignment()
  {
    if (belowAlignment == null)
    {
      return true;
    }
    else
    {
      return belowAlignment;
    }
  }

  /**
   * Sets the value of the belowAlignment property.
   * 
   * @param value
   *          allowed object is {@link Boolean }
   * 
   */
  public void setBelowAlignment(Boolean value)
  {
    this.belowAlignment = value;
  }

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

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

  /**
   * &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="name" type="{http://www.w3.org/2001/XMLSchema}string" /&amp;gt;
   * &amp;lt;attribute name="value"
   * 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 = "")
  public static class Property
  {

    @XmlAttribute(name = "name")
    protected String name;

    @XmlAttribute(name = "value")
    protected String value;

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

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

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

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

  }

  /**
   * &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="label" type="{http://www.w3.org/2001/XMLSchema}string" /&amp;gt;
   * &amp;lt;attribute name="value"
   * type="{http://www.w3.org/2001/XMLSchema}float" /&amp;gt; &amp;lt;attribute
   * name="colour" type="{http://www.w3.org/2001/XMLSchema}int" /&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 ThresholdLine
  {

    @XmlAttribute(name = "label")
    protected String label;

    @XmlAttribute(name = "value")
    protected Float value;

    @XmlAttribute(name = "colour")
    protected Integer colour;

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

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

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

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

    /**
     * Gets the value of the colour property.
     * 
     * @return possible object is {@link Integer }
     * 
     */
    public Integer getColour()
    {
      return colour;
    }

    /**
     * Sets the value of the colour property.
     * 
     * @param value
     *          allowed object is {@link Integer }
     * 
     */
    public void setColour(Integer value)
    {
      this.colour = value;
    }

  }

}
