//
// 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.XmlType;

/**
 * &lt;p&gt;Java class for JalviewUserColours complex type.
 * 
 * &lt;p&gt;The following schema fragment specifies the expected content
 * contained within this class.
 * 
 * &lt;pre&gt; &amp;lt;complexType name="JalviewUserColours"&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="Version"
 * type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&amp;gt;
 * &amp;lt;element name="colour" 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 name="attributeName"
 * type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2"
 * minOccurs="0"/&amp;gt; &amp;lt;/sequence&amp;gt; &amp;lt;attribute
 * name="Name" type="{http://www.w3.org/2001/XMLSchema}string" /&amp;gt;
 * &amp;lt;attribute name="RGB" use="required"
 * type="{http://www.w3.org/2001/XMLSchema}string" /&amp;gt; &amp;lt;attribute
 * name="minRGB" type="{http://www.w3.org/2001/XMLSchema}string" /&amp;gt;
 * &amp;lt;attribute name="noValueColour"
 * type="{www.jalview.org/colours}NoValueColour" default="Min" /&amp;gt;
 * &amp;lt;attribute name="threshType"
 * type="{www.jalview.org/colours}ThresholdType" /&amp;gt; &amp;lt;attribute
 * name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" /&amp;gt;
 * &amp;lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float"
 * /&amp;gt; &amp;lt;attribute name="min"
 * type="{http://www.w3.org/2001/XMLSchema}float" /&amp;gt; &amp;lt;attribute
 * name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean"
 * /&amp;gt; &amp;lt;attribute name="autoScale"
 * type="{http://www.w3.org/2001/XMLSchema}boolean" /&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="filter" 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 name="matcherSet"
 * type="{www.jalview.org/colours}FeatureMatcherSet"/&amp;gt;
 * &amp;lt;/sequence&amp;gt; &amp;lt;attribute name="featureType" 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;attribute name="schemeName"
 * 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 = "JalviewUserColours",
  namespace = "www.jalview.org/colours",
  propOrder =
  { "version", "colour", "filter" })
public class JalviewUserColours
{

  @XmlElement(name = "Version", namespace = "")
  protected String version;

  @XmlElement(namespace = "")
  protected List<JalviewUserColours.Colour> colour;

  @XmlElement(namespace = "")
  protected List<JalviewUserColours.Filter> filter;

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

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

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

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

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

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

  /**
   * Sets the value of the schemeName property.
   * 
   * @param value
   *          allowed object is {@link String }
   * 
   */
  public void setSchemeName(String value)
  {
    this.schemeName = 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;sequence&amp;gt; &amp;lt;element name="attributeName"
   * type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2"
   * minOccurs="0"/&amp;gt; &amp;lt;/sequence&amp;gt; &amp;lt;attribute
   * name="Name" type="{http://www.w3.org/2001/XMLSchema}string" /&amp;gt;
   * &amp;lt;attribute name="RGB" use="required"
   * type="{http://www.w3.org/2001/XMLSchema}string" /&amp;gt; &amp;lt;attribute
   * name="minRGB" type="{http://www.w3.org/2001/XMLSchema}string" /&amp;gt;
   * &amp;lt;attribute name="noValueColour"
   * type="{www.jalview.org/colours}NoValueColour" default="Min" /&amp;gt;
   * &amp;lt;attribute name="threshType"
   * type="{www.jalview.org/colours}ThresholdType" /&amp;gt; &amp;lt;attribute
   * name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" /&amp;gt;
   * &amp;lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float"
   * /&amp;gt; &amp;lt;attribute name="min"
   * type="{http://www.w3.org/2001/XMLSchema}float" /&amp;gt; &amp;lt;attribute
   * name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean"
   * /&amp;gt; &amp;lt;attribute name="autoScale"
   * type="{http://www.w3.org/2001/XMLSchema}boolean" /&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 = { "attributeName" })
  public static class Colour
  {

    @XmlElement(namespace = "")
    protected List<String> attributeName;

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

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

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

    @XmlAttribute(name = "noValueColour")
    protected NoValueColour noValueColour;

    @XmlAttribute(name = "threshType")
    protected ThresholdType threshType;

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

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

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

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

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

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

    /**
     * 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 rgb property.
     * 
     * @return possible object is {@link String }
     * 
     */
    public String getRGB()
    {
      return rgb;
    }

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

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

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

    /**
     * Gets the value of the noValueColour property.
     * 
     * @return possible object is {@link NoValueColour }
     * 
     */
    public NoValueColour getNoValueColour()
    {
      if (noValueColour == null)
      {
        return NoValueColour.MIN;
      }
      else
      {
        return noValueColour;
      }
    }

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

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

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

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

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

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

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

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

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

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

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

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

    /**
     * Sets the value of the autoScale property.
     * 
     * @param value
     *          allowed object is {@link Boolean }
     * 
     */
    public void setAutoScale(Boolean value)
    {
      this.autoScale = 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;sequence&amp;gt; &amp;lt;element name="matcherSet"
   * type="{www.jalview.org/colours}FeatureMatcherSet"/&amp;gt;
   * &amp;lt;/sequence&amp;gt; &amp;lt;attribute name="featureType"
   * 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 = { "matcherSet" })
  public static class Filter
  {

    @XmlElement(namespace = "", required = true)
    protected FeatureMatcherSet matcherSet;

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

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

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

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

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

  }

}
