//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.0 
// See <a href="https://javaee.github.io/jaxb-v2/">https://javaee.github.io/jaxb-v2/</a> 
// Any modifications to this file will be lost upon recompilation of the source schema. 
// Generated on: 2021.03.04 at 09:48:32 AM UTC 
//


package de.ivu.wahl.wus.oasis.eml;

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.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import de.ivu.wahl.wus.oasis.eml.kiesraad.ElectionTree;
import de.ivu.wahl.wus.oasis.eml.kiesraad.RegisteredParties;


/**
 * <p>Java class for anonymous complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType&gt;
 *   &lt;complexContent&gt;
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *       &lt;sequence&gt;
 *         &lt;element ref="{urn:oasis:names:tc:evs:schema:eml}EventIdentifier"/&gt;
 *         &lt;element name="Election"&gt;
 *           &lt;complexType&gt;
 *             &lt;complexContent&gt;
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *                 &lt;sequence&gt;
 *                   &lt;element name="ElectionIdentifier" type="{urn:oasis:names:tc:evs:schema:eml}ElectionIdentifierStructure110a"/&gt;
 *                   &lt;element name="Contest"&gt;
 *                     &lt;complexType&gt;
 *                       &lt;complexContent&gt;
 *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *                           &lt;sequence&gt;
 *                             &lt;element name="ContestIdentifier"&gt;
 *                               &lt;complexType&gt;
 *                                 &lt;complexContent&gt;
 *                                   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *                                     &lt;attribute name="Id" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
 *                                   &lt;/restriction&gt;
 *                                 &lt;/complexContent&gt;
 *                               &lt;/complexType&gt;
 *                             &lt;/element&gt;
 *                             &lt;element name="ReportingUnit"&gt;
 *                               &lt;complexType&gt;
 *                                 &lt;complexContent&gt;
 *                                   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *                                     &lt;sequence&gt;
 *                                       &lt;element name="ReportingUnitIdentifier" type="{urn:oasis:names:tc:evs:schema:eml}ReportingUnitIdentifierStructureKR" minOccurs="0"/&gt;
 *                                     &lt;/sequence&gt;
 *                                   &lt;/restriction&gt;
 *                                 &lt;/complexContent&gt;
 *                               &lt;/complexType&gt;
 *                             &lt;/element&gt;
 *                             &lt;element ref="{urn:oasis:names:tc:evs:schema:eml}VotingMethod"/&gt;
 *                             &lt;element ref="{urn:oasis:names:tc:evs:schema:eml}MaxVotes"/&gt;
 *                             &lt;element name="PollingPlace" type="{urn:oasis:names:tc:evs:schema:eml}PollingPlaceStructure110" maxOccurs="unbounded" minOccurs="0"/&gt;
 *                           &lt;/sequence&gt;
 *                         &lt;/restriction&gt;
 *                       &lt;/complexContent&gt;
 *                     &lt;/complexType&gt;
 *                   &lt;/element&gt;
 *                   &lt;element ref="{http://www.kiesraad.nl/extensions}NumberOfSeats"/&gt;
 *                   &lt;element ref="{http://www.kiesraad.nl/extensions}PreferenceThreshold"/&gt;
 *                   &lt;element ref="{http://www.kiesraad.nl/extensions}ElectionTree"/&gt;
 *                   &lt;element ref="{http://www.kiesraad.nl/extensions}RegisteredParties"/&gt;
 *                 &lt;/sequence&gt;
 *               &lt;/restriction&gt;
 *             &lt;/complexContent&gt;
 *           &lt;/complexType&gt;
 *         &lt;/element&gt;
 *       &lt;/sequence&gt;
 *     &lt;/restriction&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "eventIdentifier",
    "election"
})
@XmlRootElement(name = "ElectionEvent")
public class ElectionEvent {

    @XmlElement(name = "EventIdentifier", required = true)
    protected EventIdentifierStructure eventIdentifier;
    @XmlElement(name = "Election", required = true)
    protected ElectionEvent.Election election;

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

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

    /**
     * Gets the value of the election property.
     * 
     * @return
     *     possible object is
     *     {@link ElectionEvent.Election }
     *     
     */
    public ElectionEvent.Election getElection() {
        return election;
    }

    /**
     * Sets the value of the election property.
     * 
     * @param value
     *     allowed object is
     *     {@link ElectionEvent.Election }
     *     
     */
    public void setElection(ElectionEvent.Election value) {
        this.election = value;
    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType&gt;
     *   &lt;complexContent&gt;
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
     *       &lt;sequence&gt;
     *         &lt;element name="ElectionIdentifier" type="{urn:oasis:names:tc:evs:schema:eml}ElectionIdentifierStructure110a"/&gt;
     *         &lt;element name="Contest"&gt;
     *           &lt;complexType&gt;
     *             &lt;complexContent&gt;
     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
     *                 &lt;sequence&gt;
     *                   &lt;element name="ContestIdentifier"&gt;
     *                     &lt;complexType&gt;
     *                       &lt;complexContent&gt;
     *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
     *                           &lt;attribute name="Id" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
     *                         &lt;/restriction&gt;
     *                       &lt;/complexContent&gt;
     *                     &lt;/complexType&gt;
     *                   &lt;/element&gt;
     *                   &lt;element name="ReportingUnit"&gt;
     *                     &lt;complexType&gt;
     *                       &lt;complexContent&gt;
     *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
     *                           &lt;sequence&gt;
     *                             &lt;element name="ReportingUnitIdentifier" type="{urn:oasis:names:tc:evs:schema:eml}ReportingUnitIdentifierStructureKR" minOccurs="0"/&gt;
     *                           &lt;/sequence&gt;
     *                         &lt;/restriction&gt;
     *                       &lt;/complexContent&gt;
     *                     &lt;/complexType&gt;
     *                   &lt;/element&gt;
     *                   &lt;element ref="{urn:oasis:names:tc:evs:schema:eml}VotingMethod"/&gt;
     *                   &lt;element ref="{urn:oasis:names:tc:evs:schema:eml}MaxVotes"/&gt;
     *                   &lt;element name="PollingPlace" type="{urn:oasis:names:tc:evs:schema:eml}PollingPlaceStructure110" maxOccurs="unbounded" minOccurs="0"/&gt;
     *                 &lt;/sequence&gt;
     *               &lt;/restriction&gt;
     *             &lt;/complexContent&gt;
     *           &lt;/complexType&gt;
     *         &lt;/element&gt;
     *         &lt;element ref="{http://www.kiesraad.nl/extensions}NumberOfSeats"/&gt;
     *         &lt;element ref="{http://www.kiesraad.nl/extensions}PreferenceThreshold"/&gt;
     *         &lt;element ref="{http://www.kiesraad.nl/extensions}ElectionTree"/&gt;
     *         &lt;element ref="{http://www.kiesraad.nl/extensions}RegisteredParties"/&gt;
     *       &lt;/sequence&gt;
     *     &lt;/restriction&gt;
     *   &lt;/complexContent&gt;
     * &lt;/complexType&gt;
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "electionIdentifier",
        "contest",
        "numberOfSeats",
        "preferenceThreshold",
        "electionTree",
        "registeredParties"
    })
    public static class Election {

        @XmlElement(name = "ElectionIdentifier", required = true)
        protected ElectionIdentifierStructure110A electionIdentifier;
        @XmlElement(name = "Contest", required = true)
        protected ElectionEvent.Election.Contest contest;
        @XmlElement(name = "NumberOfSeats", namespace = "http://www.kiesraad.nl/extensions", required = true)
        @XmlSchemaType(name = "positiveInteger")
        protected BigInteger numberOfSeats;
        @XmlElement(name = "PreferenceThreshold", namespace = "http://www.kiesraad.nl/extensions", required = true)
        @XmlSchemaType(name = "nonNegativeInteger")
        protected BigInteger preferenceThreshold;
        @XmlElement(name = "ElectionTree", namespace = "http://www.kiesraad.nl/extensions", required = true)
        protected ElectionTree electionTree;
        @XmlElement(name = "RegisteredParties", namespace = "http://www.kiesraad.nl/extensions", required = true)
        protected RegisteredParties registeredParties;

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

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

        /**
         * Gets the value of the contest property.
         * 
         * @return
         *     possible object is
         *     {@link ElectionEvent.Election.Contest }
         *     
         */
        public ElectionEvent.Election.Contest getContest() {
            return contest;
        }

        /**
         * Sets the value of the contest property.
         * 
         * @param value
         *     allowed object is
         *     {@link ElectionEvent.Election.Contest }
         *     
         */
        public void setContest(ElectionEvent.Election.Contest value) {
            this.contest = value;
        }

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

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

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

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

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

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

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

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


        /**
         * <p>Java class for anonymous complex type.
         * 
         * <p>The following schema fragment specifies the expected content contained within this class.
         * 
         * <pre>
         * &lt;complexType&gt;
         *   &lt;complexContent&gt;
         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
         *       &lt;sequence&gt;
         *         &lt;element name="ContestIdentifier"&gt;
         *           &lt;complexType&gt;
         *             &lt;complexContent&gt;
         *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
         *                 &lt;attribute name="Id" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
         *               &lt;/restriction&gt;
         *             &lt;/complexContent&gt;
         *           &lt;/complexType&gt;
         *         &lt;/element&gt;
         *         &lt;element name="ReportingUnit"&gt;
         *           &lt;complexType&gt;
         *             &lt;complexContent&gt;
         *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
         *                 &lt;sequence&gt;
         *                   &lt;element name="ReportingUnitIdentifier" type="{urn:oasis:names:tc:evs:schema:eml}ReportingUnitIdentifierStructureKR" minOccurs="0"/&gt;
         *                 &lt;/sequence&gt;
         *               &lt;/restriction&gt;
         *             &lt;/complexContent&gt;
         *           &lt;/complexType&gt;
         *         &lt;/element&gt;
         *         &lt;element ref="{urn:oasis:names:tc:evs:schema:eml}VotingMethod"/&gt;
         *         &lt;element ref="{urn:oasis:names:tc:evs:schema:eml}MaxVotes"/&gt;
         *         &lt;element name="PollingPlace" type="{urn:oasis:names:tc:evs:schema:eml}PollingPlaceStructure110" maxOccurs="unbounded" minOccurs="0"/&gt;
         *       &lt;/sequence&gt;
         *     &lt;/restriction&gt;
         *   &lt;/complexContent&gt;
         * &lt;/complexType&gt;
         * </pre>
         * 
         * 
         */
        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "", propOrder = {
            "contestIdentifier",
            "reportingUnit",
            "votingMethod",
            "maxVotes",
            "pollingPlace"
        })
        public static class Contest {

            @XmlElement(name = "ContestIdentifier", required = true)
            protected ElectionEvent.Election.Contest.ContestIdentifier contestIdentifier;
            @XmlElement(name = "ReportingUnit", required = true)
            protected ElectionEvent.Election.Contest.ReportingUnit reportingUnit;
            @XmlElement(name = "VotingMethod", required = true)
            @XmlSchemaType(name = "token")
            protected VotingMethodType votingMethod;
            @XmlElement(name = "MaxVotes", required = true)
            protected String maxVotes;
            @XmlElement(name = "PollingPlace")
            protected List<PollingPlaceStructure110> pollingPlace;

            /**
             * Gets the value of the contestIdentifier property.
             * 
             * @return
             *     possible object is
             *     {@link ElectionEvent.Election.Contest.ContestIdentifier }
             *     
             */
            public ElectionEvent.Election.Contest.ContestIdentifier getContestIdentifier() {
                return contestIdentifier;
            }

            /**
             * Sets the value of the contestIdentifier property.
             * 
             * @param value
             *     allowed object is
             *     {@link ElectionEvent.Election.Contest.ContestIdentifier }
             *     
             */
            public void setContestIdentifier(ElectionEvent.Election.Contest.ContestIdentifier value) {
                this.contestIdentifier = value;
            }

            /**
             * Gets the value of the reportingUnit property.
             * 
             * @return
             *     possible object is
             *     {@link ElectionEvent.Election.Contest.ReportingUnit }
             *     
             */
            public ElectionEvent.Election.Contest.ReportingUnit getReportingUnit() {
                return reportingUnit;
            }

            /**
             * Sets the value of the reportingUnit property.
             * 
             * @param value
             *     allowed object is
             *     {@link ElectionEvent.Election.Contest.ReportingUnit }
             *     
             */
            public void setReportingUnit(ElectionEvent.Election.Contest.ReportingUnit value) {
                this.reportingUnit = value;
            }

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

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

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

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

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

            public void setPollingPlace(List<PollingPlaceStructure110> value) {
                this.pollingPlace = null;
                if (value!= null) {
                    List<PollingPlaceStructure110> draftl = this.getPollingPlace();
                    draftl.addAll(value);
                }
            }


            /**
             * <p>Java class for anonymous complex type.
             * 
             * <p>The following schema fragment specifies the expected content contained within this class.
             * 
             * <pre>
             * &lt;complexType&gt;
             *   &lt;complexContent&gt;
             *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
             *       &lt;attribute name="Id" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
             *     &lt;/restriction&gt;
             *   &lt;/complexContent&gt;
             * &lt;/complexType&gt;
             * </pre>
             * 
             * 
             */
            @XmlAccessorType(XmlAccessType.FIELD)
            @XmlType(name = "")
            public static class ContestIdentifier {

                @XmlAttribute(name = "Id", required = true)
                @XmlSchemaType(name = "anySimpleType")
                protected String id;

                /**
                 * 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;
                }

            }


            /**
             * <p>Java class for anonymous complex type.
             * 
             * <p>The following schema fragment specifies the expected content contained within this class.
             * 
             * <pre>
             * &lt;complexType&gt;
             *   &lt;complexContent&gt;
             *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
             *       &lt;sequence&gt;
             *         &lt;element name="ReportingUnitIdentifier" type="{urn:oasis:names:tc:evs:schema:eml}ReportingUnitIdentifierStructureKR" minOccurs="0"/&gt;
             *       &lt;/sequence&gt;
             *     &lt;/restriction&gt;
             *   &lt;/complexContent&gt;
             * &lt;/complexType&gt;
             * </pre>
             * 
             * 
             */
            @XmlAccessorType(XmlAccessType.FIELD)
            @XmlType(name = "", propOrder = {
                "reportingUnitIdentifier"
            })
            public static class ReportingUnit {

                @XmlElement(name = "ReportingUnitIdentifier")
                protected ReportingUnitIdentifierStructureKR reportingUnitIdentifier;

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

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

            }

        }

    }

}
