//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.3-hudson-jaxb-ri-2.2.3-3- 
// 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: 2011.07.27 at 12:52:20 PM BOT 
//


package com.movilnet.dhl.ship_val_req;

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.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;


/**
 * <p>Java class for anonymous complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType>
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="Request" type="{http://www.dhl.com/datatypes}Request"/>
 *         &lt;element name="RequestedPickupTime" type="{http://www.dhl.com/datatypes}YesNo"/>
 *         &lt;element name="NewShipper" type="{http://www.dhl.com/datatypes}YesNo"/>
 *         &lt;element name="LanguageCode" type="{http://www.dhl.com/datatypes}LanguageCode"/>
 *         &lt;element name="PiecesEnabled" type="{http://www.dhl.com/datatypes}PiecesEnabled"/>
 *         &lt;element name="Billing" type="{http://www.dhl.com/datatypes}Billing"/>
 *         &lt;element name="Consignee" type="{http://www.dhl.com/datatypes}Consignee"/>
 *         &lt;element name="Commodity" type="{http://www.dhl.com/datatypes}Commodity" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="Dutiable" type="{http://www.dhl.com/datatypes}Dutiable" minOccurs="0"/>
 *         &lt;element name="ExportDeclaration" type="{http://www.dhl.com/datatypes}ExportDeclaration" minOccurs="0"/>
 *         &lt;element name="Reference" type="{http://www.dhl.com/datatypes}Reference" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="ShipmentDetails" type="{http://www.dhl.com/datatypes}ShipmentDetails"/>
 *         &lt;element name="Shipper" type="{http://www.dhl.com/datatypes}Shipper"/>
 *         &lt;element name="SpecialService" type="{http://www.dhl.com/datatypes}SpecialService" maxOccurs="10" minOccurs="0"/>
 *         &lt;element name="Place" type="{http://www.dhl.com/datatypes}Place" minOccurs="0"/>
 *         &lt;element name="EProcShip" type="{http://www.dhl.com/datatypes}YesNo" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "request",
    "requestedPickupTime",
    "newShipper",
    "languageCode",
    "piecesEnabled",
    "billing",
    "consignee",
    "commodity",
    "dutiable",
    "exportDeclaration",
    "reference",
    "shipmentDetails",
    "shipper",
    "specialService",
    "place",
    "eProcShip"
})
@XmlRootElement(name = "ShipmentValidateRequest", namespace = "http://www.dhl.com")
public class ShipmentValidateRequest {

    @XmlElement(name = "Request", required = true)
    protected Request request;
    @XmlElement(name = "RequestedPickupTime", required = true)
    protected YesNo requestedPickupTime;
    @XmlElement(name = "NewShipper", required = true)
    protected YesNo newShipper;
    @XmlElement(name = "LanguageCode", required = true)
    protected String languageCode;
    @XmlElement(name = "PiecesEnabled", required = true, defaultValue = "Y")
    protected PiecesEnabled piecesEnabled;
    @XmlElement(name = "Billing", required = true)
    protected Billing billing;
    @XmlElement(name = "Consignee", required = true)
    protected Consignee consignee;
    @XmlElement(name = "Commodity")
    protected List<Commodity> commodity;
    @XmlElement(name = "Dutiable")
    protected Dutiable dutiable;
    @XmlElement(name = "ExportDeclaration")
    protected ExportDeclaration exportDeclaration;
    @XmlElement(name = "Reference")
    protected List<Reference> reference;
    @XmlElement(name = "ShipmentDetails", required = true)
    protected ShipmentDetails shipmentDetails;
    @XmlElement(name = "Shipper", required = true)
    protected Shipper shipper;
    @XmlElement(name = "SpecialService")
    protected List<SpecialService> specialService;
    @XmlElement(name = "Place")
    protected Place place;
    @XmlElement(name = "EProcShip")
    protected YesNo eProcShip;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

}