//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// Any modifications to this file will be lost upon recompilation of the source schema. 
// Generated on: 2015.01.12 at 06:39:36 PM BRST 
//


package org.iso.mpeg.mpeg7._2004;

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.XmlList;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;


/**
 * <p>Java class for SeriesOfVectorType complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="SeriesOfVectorType">
 *   &lt;complexContent>
 *     &lt;extension base="{urn:mpeg:mpeg7:schema:2004}ScalableSeriesType">
 *       &lt;sequence>
 *         &lt;element name="Raw" type="{urn:mpeg:mpeg7:schema:2004}FloatMatrixType" minOccurs="0"/>
 *         &lt;element name="Min" type="{urn:mpeg:mpeg7:schema:2004}FloatMatrixType" minOccurs="0"/>
 *         &lt;element name="Max" type="{urn:mpeg:mpeg7:schema:2004}FloatMatrixType" minOccurs="0"/>
 *         &lt;element name="Mean" type="{urn:mpeg:mpeg7:schema:2004}FloatMatrixType" minOccurs="0"/>
 *         &lt;element name="Random" type="{urn:mpeg:mpeg7:schema:2004}FloatMatrixType" minOccurs="0"/>
 *         &lt;element name="First" type="{urn:mpeg:mpeg7:schema:2004}FloatMatrixType" minOccurs="0"/>
 *         &lt;element name="Last" type="{urn:mpeg:mpeg7:schema:2004}FloatMatrixType" minOccurs="0"/>
 *         &lt;element name="Variance" type="{urn:mpeg:mpeg7:schema:2004}FloatMatrixType" minOccurs="0"/>
 *         &lt;element name="Covariance" type="{urn:mpeg:mpeg7:schema:2004}FloatMatrixType" minOccurs="0"/>
 *         &lt;element name="VarianceSummed" type="{urn:mpeg:mpeg7:schema:2004}floatVector" minOccurs="0"/>
 *         &lt;element name="MaxSqDist" type="{urn:mpeg:mpeg7:schema:2004}floatVector" minOccurs="0"/>
 *         &lt;element name="Weight" type="{urn:mpeg:mpeg7:schema:2004}floatVector" minOccurs="0"/>
 *       &lt;/sequence>
 *       &lt;attribute name="vectorSize" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" default="1" />
 *     &lt;/extension>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "SeriesOfVectorType", propOrder = {
    "raw",
    "min",
    "max",
    "mean",
    "random",
    "first",
    "last",
    "variance",
    "covariance",
    "varianceSummed",
    "maxSqDist",
    "weight"
})
@XmlSeeAlso({
    SeriesOfVectorBinaryType.class,
    org.iso.mpeg.mpeg7._2004.AudioLLDVectorType.SeriesOfVector.class
})
public class SeriesOfVectorType
    extends ScalableSeriesType
{

    @XmlElement(name = "Raw")
    protected FloatMatrixType raw;
    @XmlElement(name = "Min")
    protected FloatMatrixType min;
    @XmlElement(name = "Max")
    protected FloatMatrixType max;
    @XmlElement(name = "Mean")
    protected FloatMatrixType mean;
    @XmlElement(name = "Random")
    protected FloatMatrixType random;
    @XmlElement(name = "First")
    protected FloatMatrixType first;
    @XmlElement(name = "Last")
    protected FloatMatrixType last;
    @XmlElement(name = "Variance")
    protected FloatMatrixType variance;
    @XmlElement(name = "Covariance")
    protected FloatMatrixType covariance;
    @XmlList
    @XmlElement(name = "VarianceSummed", type = Float.class)
    protected List<Float> varianceSummed;
    @XmlList
    @XmlElement(name = "MaxSqDist", type = Float.class)
    protected List<Float> maxSqDist;
    @XmlList
    @XmlElement(name = "Weight", type = Float.class)
    protected List<Float> weight;
    @XmlAttribute(name = "vectorSize")
    @XmlSchemaType(name = "positiveInteger")
    protected BigInteger vectorSize;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    /**
     * Gets the value of the vectorSize property.
     * 
     * @return
     *     possible object is
     *     {@link BigInteger }
     *     
     */
    public BigInteger getVectorSize() {
        if (vectorSize == null) {
            return new BigInteger("1");
        } else {
            return vectorSize;
        }
    }

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

}
