
package cz.moneta.test.dsl.cebia.iva;

import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlType;


/**
 * <p>Java class for WSVehicleType complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="WSVehicleType"&gt;
 *   &lt;complexContent&gt;
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *       &lt;sequence&gt;
 *         &lt;element name="AdministrativeData" type="{http://samo.cz/iva/}WSAdministrativeDataType" minOccurs="0"/&gt;
 *         &lt;element name="Identification" type="{http://samo.cz/iva/}WSVehicleIdentificationType" minOccurs="0"/&gt;
 *         &lt;element name="Registration" type="{http://samo.cz/iva/}WSVehicleRegistrationType" minOccurs="0"/&gt;
 *         &lt;element name="Variant" type="{http://samo.cz/iva/}WSVehicleVariantType" minOccurs="0"/&gt;
 *         &lt;element name="Gearbox" type="{http://samo.cz/iva/}WSGearboxType" minOccurs="0"/&gt;
 *         &lt;element name="Bodywork" type="{http://samo.cz/iva/}WSBodyworkType" minOccurs="0"/&gt;
 *         &lt;element name="Engine" type="{http://samo.cz/iva/}WSEngineType" minOccurs="0"/&gt;
 *         &lt;element name="FuelTank" type="{http://samo.cz/iva/}WSFuelTankType" minOccurs="0"/&gt;
 *         &lt;element name="Accessories" type="{http://samo.cz/iva/}ArrayOfWSEquipmentType" minOccurs="0"/&gt;
 *         &lt;element name="RegistrationCertificatePart" type="{http://samo.cz/iva/}WSRegistrationCertificatePartII" minOccurs="0"/&gt;
 *       &lt;/sequence&gt;
 *     &lt;/restriction&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "WSVehicleType", propOrder = {
    "administrativeData",
    "identification",
    "registration",
    "variant",
    "gearbox",
    "bodywork",
    "engine",
    "fuelTank",
    "accessories",
    "registrationCertificatePart"
})
public class WSVehicleType {

    @XmlElement(name = "AdministrativeData", nillable = true)
    protected WSAdministrativeDataType administrativeData;
    @XmlElement(name = "Identification", nillable = true)
    protected WSVehicleIdentificationType identification;
    @XmlElement(name = "Registration", nillable = true)
    protected WSVehicleRegistrationType registration;
    @XmlElement(name = "Variant", nillable = true)
    protected WSVehicleVariantType variant;
    @XmlElement(name = "Gearbox", nillable = true)
    protected WSGearboxType gearbox;
    @XmlElement(name = "Bodywork", nillable = true)
    protected WSBodyworkType bodywork;
    @XmlElement(name = "Engine", nillable = true)
    protected WSEngineType engine;
    @XmlElement(name = "FuelTank", nillable = true)
    protected WSFuelTankType fuelTank;
    @XmlElement(name = "Accessories", nillable = true)
    protected ArrayOfWSEquipmentType accessories;
    @XmlElement(name = "RegistrationCertificatePart", nillable = true)
    protected WSRegistrationCertificatePartII registrationCertificatePart;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    public WSVehicleType withAdministrativeData(WSAdministrativeDataType value) {
        setAdministrativeData(value);
        return this;
    }

    public WSVehicleType withIdentification(WSVehicleIdentificationType value) {
        setIdentification(value);
        return this;
    }

    public WSVehicleType withRegistration(WSVehicleRegistrationType value) {
        setRegistration(value);
        return this;
    }

    public WSVehicleType withVariant(WSVehicleVariantType value) {
        setVariant(value);
        return this;
    }

    public WSVehicleType withGearbox(WSGearboxType value) {
        setGearbox(value);
        return this;
    }

    public WSVehicleType withBodywork(WSBodyworkType value) {
        setBodywork(value);
        return this;
    }

    public WSVehicleType withEngine(WSEngineType value) {
        setEngine(value);
        return this;
    }

    public WSVehicleType withFuelTank(WSFuelTankType value) {
        setFuelTank(value);
        return this;
    }

    public WSVehicleType withAccessories(ArrayOfWSEquipmentType value) {
        setAccessories(value);
        return this;
    }

    public WSVehicleType withRegistrationCertificatePart(WSRegistrationCertificatePartII value) {
        setRegistrationCertificatePart(value);
        return this;
    }

}
